createmcps.com

MCP-DSC-005

Results carry io.modelcontextprotocol/serverInfo in _meta

“Servers SHOULD include the following io.modelcontextprotocol/* field in every result's _meta, unless specifically configured not to do so, to identify themselves without relying on any prior connection state.” — spec anchor

How to fix this

Add `io.modelcontextprotocol/serverInfo` to the `_meta` object of every result. It identifies your server without the client having to rely on connection state, which this revision removed.

Example: failing and passing

The result's _meta does not carry io.modelcontextprotocol/serverInfo, so the server does not identify itself.
Violates MCP-DSC-005 · JSON
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "resultType": "complete",
    "supportedVersions": ["2026-07-28"],
    "capabilities": {"tools": {}},
    "ttlMs": 3600000,
    "cacheScope": "public"
  }
}
The result's _meta carries io.modelcontextprotocol/serverInfo with the server's name and version.
Complies with MCP-DSC-005 · JSON
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "resultType": "complete",
    "supportedVersions": ["2026-07-28"],
    "capabilities": {"tools": {}},
    "_meta": {"io.modelcontextprotocol/serverInfo": {"name": "ExampleServer", "version": "1.0.0"}},
    "ttlMs": 3600000,
    "cacheScope": "public"
  }
}

How the validator checks this

Probe P1.1, against a streamable-http server on the modern protocol. What it reports:

pass
Result _meta carries io.modelcontextprotocol/serverInfo
warn
Result _meta is missing io.modelcontextprotocol/serverInfo (SHOULD, not MUST)

Quoted from the probe that runs this check, so it cannot drift from what the validator actually reports.

This rule is checked deterministically: a fail here is a certain violation, not an inference.

Checked in the same request as MCP-DSC-001, MCP-DSC-002, MCP-DSC-003, MCP-DSC-004, MCP-STL-003, MCP-RES-001, MCP-RES-002, MCP-RES-005.

Check your own server against MCP-DSC-005

Probe P1.1 checks MCP-DSC-005 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-004Extension identifiers use a valid non-reserved reverse-DNS prefix