createmcps.com

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

The extension identifier 'audit-log' has no prefix, but extension identifiers require one.
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"
  }
}
The extension identifier uses a reverse-DNS vendor prefix ('com.example/') followed by a valid name.
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