Skip to content

MCP spec conformance: 10 requirement(s) violated (via @hasmcp/mcp-spec-test) #32

Description

@hasmcp-dev

We ran @hasmcp/mcp-spec-test, a black-box MCP protocol conformance suite, against uvx docker-mcp. The server process appears to crash/close its connection immediately during the protocol handshake, so even a stock official MCP SDK client can't complete initialize. We suspected this might just be because our container had no Docker socket to talk to, but re-running with /var/run/docker.sock mounted through produced the identical result, so a missing Docker socket doesn't appear to be the explanation. This reproduced consistently across both spec revisions the server negotiates (2026-07-28 and 2025-11-25), so one issue covers both re-runs below.

Conformance report

Revision 2026-07-28

Verdict: not conformant — 10 requirements violated.

Target uvx docker-mcp
Transport stdio
Revision tested 2026-07-28
Revisions supported 2026-07-28, 2025-11-25
Passed 4
Failed 10
Not verified 22
Cases applied 36
Duration 33427ms
Tool @hasmcp/mcp-spec-test 0.1.1

Failed (10) — all downstream of the server closing the connection during handshake:

  • server/discover is answered without a session or handshake — no response within 10000ms
  • server/discover advertises the versions the server can serve
  • server/discover is a CacheableResult with usable cache hints
  • server/discover reports server identity and capabilities
  • server/discover is stable across calls within its own TTL
  • server/discover advertises a revision this suite supports
  • a request with no version at all is served on the default — no response within 10000ms
  • a stock official-SDK client completes the handshake — MCP error -32000: Connection closed
  • the handshake settles on a revision inside the supported window
  • a stock official-SDK client can list tools — MCP error -32000: Connection closed

Revision 2025-11-25

Verdict: not conformant — 5 requirements violated.

Target uvx docker-mcp
Transport stdio
Revision tested 2025-11-25
Passed 2
Failed 5
Not verified 13
Cases applied 20
Duration 5877ms

Failed (5) — same root cause, and here the server explicitly reports as exited:

  • a request with no version at all is served on the default — {"_raw":"server exited"}
  • an unsupported version offered at the handshake is refused or downgraded, not echoed — {"_raw":"server exited"}
  • a stock official-SDK client completes the handshake — MCP error -32000: Connection closed
  • the handshake settles on a revision inside the supported window
  • a stock official-SDK client can list tools — MCP error -32000: Connection closed

How to reproduce

With Docker:

docker pull hasmcp/mcp-spec-test:latest
docker run --rm --platform linux/amd64 hasmcp/mcp-spec-test -c "uvx docker-mcp"

Without Docker (npx):

npx @hasmcp/mcp-spec-test@latest -c "uvx docker-mcp"

Add --spec-version 2025-11-25 (or 2026-07-28) to test one revision at a time.

This issue was filed by an automated MCP conformance sweep. It's entirely possible this is a false positive specific to our test container/environment (e.g. some other missing dependency at startup) rather than a real bug — please feel free to close it if it doesn't reproduce on your end or isn't applicable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions