Skip to content

MCP spec conformance: 7 requirement(s) violated (via @hasmcp/mcp-spec-test) — spec 2026-07-28 #135

Description

@hasmcp-dev

When tested against MCP spec revision 2026-07-28, this server fails 7 conformance requirements: it doesn't implement the server/discover method at all (every call returns a JSON-RPC -32601 Method not found error), and its initialize handshake settles on the legacy protocol version 2024-11-05 even when a client offers a revision inside the currently-supported window (2026-07-28 or 2025-11-25). The single missing server/discover method cascades into 22 additional cases being skipped as "not verified" rather than actually checked, since the suite relies on it to figure out what else it can safely probe. The server tested against the older revision 2025-11-25 fails only 1 requirement (the same handshake-version issue) — that's covered in a separate issue filed alongside this one, since the violation counts genuinely differ by revision.

Conformance report

MCP 2026-07-28 conformance report

Verdict: not conformant — 7 requirements violated.

Target npx -y @coding-solo/godot-mcp
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 4874ms
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
    server/discover unexpected JSON-RPC error: {"code":-32601,"message":"Method not found"}
  • server/discover advertises the versions the server can serve
    server/discover unexpected JSON-RPC error: {"code":-32601,"message":"Method not found"}
  • server/discover is a CacheableResult with usable cache hints
    server/discover unexpected JSON-RPC error: {"code":-32601,"message":"Method not found"}
  • server/discover reports server identity and capabilities
    server/discover unexpected JSON-RPC error: {"code":-32601,"message":"Method not found"}
  • server/discover is stable across calls within its own TTL
    server/discover unexpected JSON-RPC error: {"code":-32601,"message":"Method not found"}
  • server/discover advertises a revision this suite supports
    server/discover unexpected JSON-RPC error: {"code":-32601,"message":"Method not found"}

Official SDK interop

  • the handshake settles on a revision inside the supported window
    a client offering 2025-11-25 was answered with 2024-11-05, outside the supported window (2026-07-28, 2025-11-25)

Not verified (22)

skipped; a skip is not a pass — all stem from server/discover returning an error, so the suite couldn't determine what else to test.

Capability methods

  • tools/list returns schema-conformant tools
  • tools/call on an unknown tool is an error, not a crash
  • tools/call returns a schema-conformant CallToolResult
  • prompts/list returns schema-conformant prompts
  • prompts/get returns messages with a role and content
  • resources/list returns schema-conformant resources
  • resources/templates/list returns schema-conformant templates
  • resources/read returns contents for every sampled resource
  • resources/read on an unknown uri is an error
  • following nextCursor terminates and does not repeat a page
  • an invalid pagination cursor is rejected (SHOULD)

Version negotiation

  • a version declared in _meta is accepted
  • an unsupported version is rejected with the supported list
  • clientInfo is optional (SHOULD, not MUST)

Result envelope

  • every result carries the required resultType
  • cacheable list results carry the schema-required cache hints
  • results identify the server in _meta
  • a client on an older version receives no newer-revision fields

subscriptions/listen

  • subscriptions/listen acknowledges only the opted-in notification types
  • the acknowledgment carries the subscription id for correlation
  • a listen requesting no notification types is not a subscription to everything
  • a cancelled subscription ends with a conformant teardown result, if it sends one

Passed (7)

checked and conformant

  • server/discover: the suite is reading a schema that matches the features it selected
  • Version negotiation: a request with no version at all is served on the default
  • Result envelope: schema sanity: the envelope fields match the features selected
  • Official SDK interop: the official SDK does not yet implement the newest revision
  • Official SDK interop: a stock official-SDK client completes the handshake
  • Official SDK interop: 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 "npx -y @coding-solo/godot-mcp"

(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 "npx -y @coding-solo/godot-mcp")

Without Docker (npx):

npx @hasmcp/mcp-spec-test@latest -c "npx -y @coding-solo/godot-mcp" --spec-version 2026-07-28

This issue was generated by an automated conformance sweep across public MCP server repos. The maintainer is welcome to close this if it's not applicable — this is a newer, optional-in-practice discovery method and a version-negotiation nuance, not a crash affecting normal usage.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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