Skip to content
{mcpdesc}

Use a valid Resource Template expression

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.

A Resource Template uriTemplate is a valid RFC 6570 URI template.

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

Reported once per Resource Template, whether or not it has examples; example checks that need the parsed template are skipped.

Source: expected-invalid/malformed-uri-template-without-examples.json · Selected: /resourceTemplates/0

{
"uriTemplate": "file:///{path",
"name": "file_by_path"
}

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"
}
]
}
}
}
}

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"
]
}
}
}
}
}

resource.yaml at immutable tag v0.9.0-rc.3.