Every Resource Template must contain a valid RFC 6570 URI template, even if it has no examples. Correct malformed braces, operators, or variable syntax before checking concrete expansions. The validator does not retrieve the resulting URI.
Requirement
Section titled “Requirement”A Resource Template uriTemplate is a valid RFC 6570 URI template.
Details
Section titled “Details”Rule ID: mcp.resource-template.uri-template
Owner: mcp
Surface: ResourceTemplate · Path: uriTemplate
Kind: embedded-standard
Requirement level: must
Protocol versions: independent of the MCP protocol version
Status: internal · Enforcement: internal
Required by
Section titled “Required by”- MCP Description 0.9.0, Section 10.2.1
- 10. Resources and Resource Templates: req-resource-template-uri-template
Based on
Section titled “Based on”- Tier 1 — MCP schema.ts and normative specification text: MCP 2024-11-05 to 2026-07-28 schema.ts, interface ResourceTemplate, uriTemplate (“A URI template (according to RFC 6570)”)
- Tier 2 — Normative referenced standards: RFC 6570, URI Template
Reported once per Resource Template, whether or not it has examples; example checks that need the parsed template are skipped.
Examples
Section titled “Examples”Invalid example
Section titled “Invalid example”Source: expected-invalid/malformed-uri-template-without-examples.json · Selected: /resourceTemplates/0
{ "uriTemplate": "file:///{path", "name": "file_by_path"}Invalid example
Section titled “Invalid example”Source: expected-invalid/malformed-resource-template-example.json · Selected: /resourceTemplates/0
{ "uriTemplate": "test://items/{id", "name": "malformed_template", "examples": { "concrete": { "uri": "test://items/123", "result": { "resultType": "complete", "contents": [ { "uri": "test://items/123", "text": "item" } ] } } }}Invalid example
Section titled “Invalid example”Source: expected-invalid/invalid-completion-example-semantics.json · Selected: /resourceTemplates/0
{ "protocolVersions": [ "2026-07-28" ], "uriTemplate": "repo://{owner/{repository}/issues/{issue}", "name": "broken_template", "completionExamples": { "bad-template": { "argument": { "name": "issue", "value": "12" }, "result": { "resultType": "complete", "completion": { "values": [ "120" ] } } } }}Rule Source Code
Section titled “Rule Source Code”resource.yaml at immutable tag v0.9.0-rc.3.