MCP spec conformance: 5 requirements violated (via @hasmcp/mcp-spec-test) — spec 2025-11-25
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 52/100
Research direction
Start with examples/qr-server/server.py and reproduce the reported command using the Docker or npx instructions with spec version 2025-11-25. Check whether the process exits before the MCP handshake and determine whether this is a genuine server problem or an environment, network, or uv remote-script artifact. Done means the server completes the handshake and the conformance failures are resolved or confirmed as false positives.
Written by the indexing model from the issue text.
Description
Running the automated @hasmcp/mcp-spec-test conformance suite against the examples/qr-server/server.py stdio server, this time pinned to spec revision 2025-11-25, found the same underlying issue as with the newer revision: the server process exits before completing the MCP handshake. Under this revision that surfaces as 5 failed requirements (versus 10 under 2026-07-28), since fewer handshake-dependent cases apply at this revision. As with the other report, this may be an environment/dependency artifact of running uv run against a remote script URL inside the test container rather than a genuine server bug — flagging for a maintainer to confirm.
Conformance report
MCP 2025-11-25 conformance report
Verdict: not conformant — 5 requirements violated.
| Target | uv run https://raw.githubusercontent.com/modelcontextprotocol/ext-apps/HEAD/examples/qr-server/server.py --stdio |
| 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 | 10394ms |
| Generated | 2026-08-24T09:21:52.168Z |
| 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 "uv run https://raw.githubusercontent.com/modelcontextprotocol/ext-apps/HEAD/examples/qr-server/server.py --stdio" --spec-version 2025-11-25
Without Docker (npx):
npx @hasmcp/mcp-spec-test@latest -c "uv run https://raw.githubusercontent.com/modelcontextprotocol/ext-apps/HEAD/examples/qr-server/server.py --stdio" --spec-version 2025-11-25
This report was generated as part of an automated conformance sweep across public MCP server repos. The server also supports spec revision 2026-07-28, which showed a different (larger) set of failures and is reported separately. If this turns out to be a false positive specific to the test container's environment (e.g. missing uv/network access to fetch the remote script, or a uv run <url> invocation quirk rather than a real handshake bug), feel free to close this — happy to help re-verify with more detail if useful.
- Dominant language
- TypeScript
- Stars
- 2.9k
- Forks
- 387
- Avg merge
- 2h 54m
- Merged PRs (30d)
- 7
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from modelcontextprotocol/ext-apps
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
modelcontextprotocol/ext-apps#786 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
modelcontextprotocol/ext-apps#767 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
modelcontextprotocol/ext-apps#742 · 1 comment ·
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
modelcontextprotocol/ext-apps#711 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
modelcontextprotocol/ext-apps#706 ·
All issues in modelcontextprotocol/ext-apps
Similar issues
-
VerificationGate: ATTRIBUTION quote guard never matches a normal quotation (\b around the quote) Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
danielmiessler/LifeOS#2234 ·
-
T: Bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
-
Mend: dependency security vulnerability untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 70/100