Running the black-box @hasmcp/mcp-spec-test conformance suite against the simple-tool example server from this repo (via uvx) found 7 spec violations when negotiating the newest supported revision (2026-07-28). The root cause across most failures is that the server does not implement the server/discover method at all (Method not found), which this revision's test suite treats as required; there is also one version-negotiation case where a version-less tools/list is rejected instead of being served on the default revision. For contrast, re-running the same suite pinned to the older 2025-11-25 revision produced zero failures, so this appears specific to 2026-07-28 support (the official SDK client itself doesn't yet implement that newest revision either, per the "Official SDK interop" passes below, so this may simply reflect that 2026-07-28 support is still in progress rather than a regression).
Conformance report
MCP 2026-07-28 conformance report
Verdict: not conformant — 7 requirements violated.
|
|
| Target |
uvx --from 'git+https://github.com/modelcontextprotocol/python-sdk#subdirectory=examples/servers/simple-tool' mcp-simple-tool |
| Transport |
stdio |
| Revision tested |
2026-07-28 |
| Revisions supported |
2026-07-28, 2025-11-25 |
| Passed |
7 |
| Failed |
7 |
| Not verified |
22 |
| Cases applied |
36 |
| Duration |
22604ms |
| Generated |
2026-08-24T09:25:00.186Z |
| Tool |
@hasmcp/mcp-spec-test 0.1.1 |
Failed (7)
the server deviates from the spec here
server/discover
- server/discover is answered without a session or handshake
expected 200, got 0: {"_raw":"no response within 10000ms"}
0 !== 200
- server/discover advertises the versions the server can serve
server/discover unexpected JSON-RPC error: {"code":-32601,"message":"Method not found","data":"server/discover"}
- server/discover is a CacheableResult with usable cache hints
server/discover unexpected JSON-RPC error: {"code":-32601,"message":"Method not found","data":"server/discover"}
- server/discover reports server identity and capabilities
server/discover unexpected JSON-RPC error: {"code":-32601,"message":"Method not found","data":"server/discover"}
- server/discover is stable across calls within its own TTL
server/discover unexpected JSON-RPC error: {"code":-32601,"message":"Method not found","data":"server/discover"}
- server/discover advertises a revision this suite supports
server/discover unexpected JSON-RPC error: {"code":-32601,"message":"Method not found","data":"server/discover"}
Version negotiation
- a request with no version at all is served on the default
a version-less tools/list must be served, not refused: {"code":-32602,"message":"Invalid request parameters","data":""}
Not verified (22)
skipped; a skip is not a pass
Capability methods
- tools/list returns schema-conformant tools
cannot determine what the target supports — server/discover returned no result (status 0)
- tools/call on an unknown tool is an error, not a crash
cannot determine what the target supports — server/discover returned no result (status 0)
- tools/call returns a schema-conformant CallToolResult
cannot determine what the target supports — server/discover returned no result (status 0)
- prompts/list returns schema-conformant prompts
cannot determine what the target supports — server/discover returned no result (status 0)
- prompts/get returns messages with a role and content
cannot determine what the target supports — server/discover returned no result (status 0)
- resources/list returns schema-conformant resources
cannot determine what the target supports — server/discover returned no result (status 0)
- resources/templates/list returns schema-conformant templates
cannot determine what the target supports — server/discover returned no result (status 0)
- resources/read returns contents for every sampled resource
cannot determine what the target supports — server/discover returned no result (status 0)
- resources/read on an unknown uri is an error
cannot determine what the target supports — server/discover returned no result (status 0)
- following nextCursor terminates and does not repeat a page
cannot determine what the target supports — server/discover returned no result (status 0)
- an invalid pagination cursor is rejected (SHOULD)
cannot determine what the target supports — server/discover returned no result (status 0)
Version negotiation
- a version declared in _meta is accepted
cannot determine what the target supports — server/discover returned no result (status 0)
- an unsupported version is rejected with the supported list
cannot determine what the target supports — server/discover returned no result (status 0)
- clientInfo is optional (SHOULD, not MUST)
cannot determine what the target supports — server/discover returned no result (status 0)
Result envelope
- every result carries the required resultType
cannot determine what the target supports — server/discover returned no result (status 0)
- cacheable list results carry the schema-required cache hints
cannot determine what the target supports — server/discover returned no result (status 0)
- results identify the server in _meta
cannot determine what the target supports — server/discover returned no result (status 0)
- a client on an older version receives no newer-revision fields
cannot determine what the target supports — server/discover returned no result (status 0)
subscriptions/listen
- subscriptions/listen acknowledges only the opted-in notification types
cannot determine what the target supports — server/discover returned no result (status 0)
- the acknowledgment carries the subscription id for correlation
cannot determine what the target supports — server/discover returned no result (status 0)
- a listen requesting no notification types is not a subscription to everything
cannot determine what the target supports — server/discover returned no result (status 0)
- a cancelled subscription ends with a conformant teardown result, if it sends one
cannot determine what the target supports — server/discover returned no result (status 0)
Passed (7)
checked and conformant
server/discover
- the suite is reading a schema that matches the features it selected
Result envelope
- schema sanity: the envelope fields match the features selected
Official SDK interop
- the official SDK does not yet implement the newest revision
- a stock official-SDK client completes the handshake
- the handshake settles on a revision inside the supported window
- a stock official-SDK client can list tools
subscriptions/listen
- schema sanity: SubscriptionsListenResult requires _meta and resultType
How to reproduce
With Docker:
docker pull hasmcp/mcp-spec-test:latest
docker run --rm hasmcp/mcp-spec-test -c "uvx --from 'git+https://github.com/modelcontextprotocol/python-sdk#subdirectory=examples/servers/simple-tool' mcp-simple-tool" --spec-version 2026-07-28
Without Docker (npx):
npx @hasmcp/mcp-spec-test@latest -c "uvx --from 'git+https://github.com/modelcontextprotocol/python-sdk#subdirectory=examples/servers/simple-tool' mcp-simple-tool" --spec-version 2026-07-28
This issue was generated by an automated MCP conformance sweep across public MCP server repos. If this turns out to be a false positive (e.g. an artifact of the test container's environment, or the newest spec revision simply not being a target for this SDK yet), feel free to close it — no offense taken.
Running the black-box
@hasmcp/mcp-spec-testconformance suite against thesimple-toolexample server from this repo (viauvx) found 7 spec violations when negotiating the newest supported revision (2026-07-28). The root cause across most failures is that the server does not implement theserver/discovermethod at all (Method not found), which this revision's test suite treats as required; there is also one version-negotiation case where a version-lesstools/listis rejected instead of being served on the default revision. For contrast, re-running the same suite pinned to the older2025-11-25revision produced zero failures, so this appears specific to2026-07-28support (the official SDK client itself doesn't yet implement that newest revision either, per the "Official SDK interop" passes below, so this may simply reflect that2026-07-28support is still in progress rather than a regression).Conformance report
MCP 2026-07-28 conformance report
Verdict: not conformant — 7 requirements violated.
uvx --from 'git+https://github.com/modelcontextprotocol/python-sdk#subdirectory=examples/servers/simple-tool' mcp-simple-toolFailed (7)
the server deviates from the spec here
server/discover
expected 200, got 0: {"_raw":"no response within 10000ms"}
0 !== 200
server/discover unexpected JSON-RPC error: {"code":-32601,"message":"Method not found","data":"server/discover"}
server/discover unexpected JSON-RPC error: {"code":-32601,"message":"Method not found","data":"server/discover"}
server/discover unexpected JSON-RPC error: {"code":-32601,"message":"Method not found","data":"server/discover"}
server/discover unexpected JSON-RPC error: {"code":-32601,"message":"Method not found","data":"server/discover"}
server/discover unexpected JSON-RPC error: {"code":-32601,"message":"Method not found","data":"server/discover"}
Version negotiation
a version-less tools/list must be served, not refused: {"code":-32602,"message":"Invalid request parameters","data":""}
Not verified (22)
skipped; a skip is not a pass
Capability methods
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
Version negotiation
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
Result envelope
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
subscriptions/listen
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
cannot determine what the target supports — server/discover returned no result (status 0)
Passed (7)
checked and conformant
server/discover
Result envelope
Official SDK interop
subscriptions/listen
How to reproduce
With Docker:
Without Docker (npx):
This issue was generated by an automated MCP conformance sweep across public MCP server repos. If this turns out to be a false positive (e.g. an artifact of the test container's environment, or the newest spec revision simply not being a target for this SDK yet), feel free to close it — no offense taken.