MCP-DSC-004
Extension identifiers use a valid non-reserved reverse-DNS prefix
“Extension identifiers MUST follow the _meta key naming rules, with a mandatory prefix.” — spec anchor
How to fix this
Prefix every extension identifier in `_meta` with a reverse-DNS domain you control, such as `com.example/myFeature`. The `io.modelcontextprotocol/` prefix is reserved for fields the specification defines.
Example: failing and passing
Violates MCP-DSC-004 · JSON
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"resultType": "complete",
"supportedVersions": ["2026-07-28"],
"capabilities": {"tools": {}, "extensions": {"audit-log": {}}},
"ttlMs": 3600000,
"cacheScope": "public"
}
}Complies with MCP-DSC-004 · JSON
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"resultType": "complete",
"supportedVersions": ["2026-07-28"],
"capabilities": {"tools": {}, "extensions": {"com.example/audit-log": {}}},
"ttlMs": 3600000,
"cacheScope": "public"
}
}Check your own server against MCP-DSC-004
Probe P1.1 checks MCP-DSC-004 in the same request as 8 other rules, so one run shows your server's result for this rule next to the rest. Validate a server or read how the validator works.
Background on this topic: server/discover explained.
Other Discovery and capabilities rules
- MCP-DSC-001server/discover is implemented
- MCP-DSC-002DiscoverResult advertises supported protocol versions
- MCP-DSC-003Advertised versions include a currently-supported revision
- MCP-DSC-005Results carry io.modelcontextprotocol/serverInfo in _meta