A Resource uri is a URI as defined by RFC 3986, with a scheme; a relative reference or free text is invalid. Any scheme is allowed, including custom ones. MCP types the field as a URI, so a value that is not one cannot be projected to a native MCP Resource.
Requirement
Section titled “Requirement”Resource uri is an RFC 3986 URI with a scheme.
Details
Section titled “Details”Rule ID: mcp.resource.uri
Owner: mcp
Surface: Resource · Path: uri
Kind: structural
Requirement level: must
Protocol versions: independent of the MCP protocol version
Document schema locations: #/$defs/resource/properties/uri
Status: internal · Enforcement: internal
Required by
Section titled “Required by”- MCP Description 0.9.0, Sections 10.1.2 and 15
- 10. Resources and Resource Templates: req-resource-uri-syntax
-
- Serialization: req-serialization-value-formats
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 Resource, uri (@format uri)
Examples
Section titled “Examples”Invalid example
Section titled “Invalid example”Source: expected-invalid/invalid-resource-uri.json · Selected: /resources/0/uri
"status page"Invalid example
Section titled “Invalid example”Source: expected-invalid/invalid-resource-uri.json · Selected: /resources/1/uri
"docs/readme.md"Rule Source Code
Section titled “Rule Source Code”resource.yaml at immutable tag v0.9.0-rc.3.