Running @hasmcp/mcp-spec-test against the examples/dice-roller server on MCP spec revision 2025-11-25, the server process exits without responding to any request. As detailed in the companion issue for the newer 2026-07-28 revision: requirements.txt pins only mcp[cli]>=1.2.0 with no ceiling, so a fresh install grabs the newest mcp package (currently v2.1.0), which no longer exposes mcp.server.fastmcp — dice_server.py's from mcp.server.fastmcp import FastMCP fails with ModuleNotFoundError before the server can bind stdio.
Conformance report
MCP 2025-11-25 conformance report
Verdict: not conformant — 5 requirements violated.
|
|
| Target |
sh -c '[ -d /tmp/dice ] || git clone --depth 1 https://github.com/theNetworkChuck/docker-mcp-tutorial /tmp/dice; cd /tmp/dice/examples/dice-roller && pip install --break-system-packages -q -r requirements.txt && python3 dice_server.py' |
| Transport |
stdio |
| Revision tested |
2025-11-25 |
| Revisions supported |
2026-07-28, 2025-11-25 |
| Passed |
2 |
| Failed |
5 |
| Not verified |
13 |
| Cases applied |
20 |
| Duration |
9110ms |
| Generated |
2026-08-24T19:14:27.990Z |
| Tool |
@hasmcp/mcp-spec-test 0.1.1 |
Failed (5)
the server deviates from the spec here
Version negotiation
- a request with no version at all is served on the default
a version-less request must be served, got 0: {"_raw":"server exited"}
0 !== 200
- an unsupported version offered at the handshake is refused or downgraded, not echoed
expected either an error or a protocolVersion, got {"_raw":"server exited"}
Official SDK interop
- a stock official-SDK client completes the handshake
MCP error -32000: Connection closed
- the handshake settles on a revision inside the supported window
initialize must return a protocolVersion, got undefined
- a stock official-SDK client can list tools
MCP error -32000: Connection closed
Not verified (13)
skipped; a skip is not a pass
Capability methods
- tools/list returns schema-conformant tools
cannot determine what the target supports — initialize returned no result (status 0)
- tools/call on an unknown tool is an error, not a crash
cannot determine what the target supports — initialize returned no result (status 0)
- tools/call returns a schema-conformant CallToolResult
cannot determine what the target supports — initialize returned no result (status 0)
- prompts/list returns schema-conformant prompts
cannot determine what the target supports — initialize returned no result (status 0)
- prompts/get returns messages with a role and content
cannot determine what the target supports — initialize returned no result (status 0)
- resources/list returns schema-conformant resources
cannot determine what the target supports — initialize returned no result (status 0)
- resources/templates/list returns schema-conformant templates
cannot determine what the target supports — initialize returned no result (status 0)
- resources/read returns contents for every sampled resource
cannot determine what the target supports — initialize returned no result (status 0)
- resources/read on an unknown uri is an error
cannot determine what the target supports — initialize returned no result (status 0)
- following nextCursor terminates and does not repeat a page
cannot determine what the target supports — initialize returned no result (status 0)
- an invalid pagination cursor is rejected (SHOULD)
cannot determine what the target supports — initialize returned no result (status 0)
Version negotiation
- initialize returns the schema-required fields
no session — initialize returned no result (status 0)
- the handshake settles on the revision under test
no session — initialize returned no result (status 0)
Passed (2)
checked and conformant
server/discover
- the suite is reading a schema that matches the features it selected
Official SDK interop
- the official SDK does not yet implement the newest revision
How to reproduce
With Docker:
docker pull hasmcp/mcp-spec-test:latest
docker run --rm hasmcp/mcp-spec-test -c "sh -c '[ -d /tmp/dice ] || git clone --depth 1 https://github.com/theNetworkChuck/docker-mcp-tutorial /tmp/dice; cd /tmp/dice/examples/dice-roller && pip install --break-system-packages -r requirements.txt && python3 dice_server.py'" --spec-version 2025-11-25
(or, if that image can't run on your platform: git clone https://github.com/hasmcp/mcp-spec-test && cd mcp-spec-test && docker build -t mcp-spec-test . && docker run --rm mcp-spec-test -c "sh -c '[ -d /tmp/dice ] || git clone --depth 1 https://github.com/theNetworkChuck/docker-mcp-tutorial /tmp/dice; cd /tmp/dice/examples/dice-roller && pip install --break-system-packages -r requirements.txt && python3 dice_server.py'" --spec-version 2025-11-25)
Without Docker (npx):
npx @hasmcp/mcp-spec-test@latest -c "sh -c '[ -d /tmp/dice ] || git clone --depth 1 https://github.com/theNetworkChuck/docker-mcp-tutorial /tmp/dice; cd /tmp/dice/examples/dice-roller && pip install --break-system-packages -r requirements.txt && python3 dice_server.py'" --spec-version 2025-11-25
This was generated by an automated conformance sweep. See also #15, the companion issue for the same repo against the newer 2026-07-28 revision (10 violations there vs 5 here — same root cause). The maintainer is welcome to close this if it's not applicable.
Running
@hasmcp/mcp-spec-testagainst theexamples/dice-rollerserver on MCP spec revision 2025-11-25, the server process exits without responding to any request. As detailed in the companion issue for the newer 2026-07-28 revision:requirements.txtpins onlymcp[cli]>=1.2.0with no ceiling, so a fresh install grabs the newestmcppackage (currently v2.1.0), which no longer exposesmcp.server.fastmcp—dice_server.py'sfrom mcp.server.fastmcp import FastMCPfails withModuleNotFoundErrorbefore the server can bind stdio.Conformance report
MCP 2025-11-25 conformance report
Verdict: not conformant — 5 requirements violated.
sh -c '[ -d /tmp/dice ] || git clone --depth 1 https://github.com/theNetworkChuck/docker-mcp-tutorial /tmp/dice; cd /tmp/dice/examples/dice-roller && pip install --break-system-packages -q -r requirements.txt && python3 dice_server.py'Failed (5)
the server deviates from the spec here
Version negotiation
a version-less request must be served, got 0: {"_raw":"server exited"}
0 !== 200
expected either an error or a protocolVersion, got {"_raw":"server exited"}
Official SDK interop
MCP error -32000: Connection closed
initialize must return a protocolVersion, got undefined
MCP error -32000: Connection closed
Not verified (13)
skipped; a skip is not a pass
Capability methods
cannot determine what the target supports — initialize returned no result (status 0)
cannot determine what the target supports — initialize returned no result (status 0)
cannot determine what the target supports — initialize returned no result (status 0)
cannot determine what the target supports — initialize returned no result (status 0)
cannot determine what the target supports — initialize returned no result (status 0)
cannot determine what the target supports — initialize returned no result (status 0)
cannot determine what the target supports — initialize returned no result (status 0)
cannot determine what the target supports — initialize returned no result (status 0)
cannot determine what the target supports — initialize returned no result (status 0)
cannot determine what the target supports — initialize returned no result (status 0)
cannot determine what the target supports — initialize returned no result (status 0)
Version negotiation
no session — initialize returned no result (status 0)
no session — initialize returned no result (status 0)
Passed (2)
checked and conformant
server/discover
Official SDK interop
How to reproduce
With Docker:
(or, if that image can't run on your platform:
git clone https://github.com/hasmcp/mcp-spec-test && cd mcp-spec-test && docker build -t mcp-spec-test . && docker run --rm mcp-spec-test -c "sh -c '[ -d /tmp/dice ] || git clone --depth 1 https://github.com/theNetworkChuck/docker-mcp-tutorial /tmp/dice; cd /tmp/dice/examples/dice-roller && pip install --break-system-packages -r requirements.txt && python3 dice_server.py'" --spec-version 2025-11-25)Without Docker (npx):
This was generated by an automated conformance sweep. See also #15, the companion issue for the same repo against the newer 2026-07-28 revision (10 violations there vs 5 here — same root cause). The maintainer is welcome to close this if it's not applicable.