Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

MCP spec conformance: 8 requirements violated (via @hasmcp/mcp-spec-test) — spec 2026-07-28

オープン
#190 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 5 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
活発
技術スタック
python
領域
api, backend

調査の方向性

weather-server-python/weather.py から始め、仕様リビジョン 2026-07-28 に対して @hasmcp/mcp-spec-test を使用してレポートを再現します。例でサポートされている動作を、一覧にある server/discover、version-negotiation、tools/list の失敗と比較し、この例がそのリビジョンを対象としているか確認します。該当する適合性の失敗が解消され、スイートが関連する違反を報告しなくなれば完了です。

索引モデルが issue の本文から書いたものです。

説明

Running the black-box @hasmcp/mcp-spec-test conformance suite against the weather-server-python example in this repo (spec revision 2026-07-28), the server fails 8 conformance checks. The biggest cluster is that server/discover is not implemented at all (returns Method not found), which cascades into 22 other checks being skipped because the suite can't determine server capabilities without it. Separately, a version-less tools/list request is refused instead of being served on the default revision, and a stock official-SDK client gets an "invalid result" error trying to list tools. This may simply reflect that server/discover and strict version-negotiation are newer parts of the 2026-07-28 revision that this example server predates — flagging in case it's useful, and happy to have this closed if it's not applicable.

Conformance report

MCP 2026-07-28 conformance report

Verdict: not conformant — 8 requirements violated.

Target sh -c '\[ -d /tmp/qr \] || git clone --depth 1 https://github.com/modelcontextprotocol/quickstart-resources /tmp/qr; cd /tmp/qr/weather-server-python && uv run weather.py'
Transport stdio
Revision tested 2026-07-28
Revisions supported 2026-07-28, 2025-11-25
Passed 6
Failed 8
Not verified 22
Cases applied 36
Duration 11239ms
Generated 2026-08-24T09:29:15.318Z
Tool @hasmcp/mcp-spec-test 0.1.1

Failed (8)

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","data":"server/discover"}
  • 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":""}
Official SDK interop
  • a stock official-SDK client can list tools
    MCP error -32603: Handler returned an invalid result

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 an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • tools/call on an unknown tool is an error, not a crash
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • tools/call returns a schema-conformant CallToolResult
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • prompts/list returns schema-conformant prompts
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • prompts/get returns messages with a role and content
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • resources/list returns schema-conformant resources
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • resources/templates/list returns schema-conformant templates
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • resources/read returns contents for every sampled resource
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • resources/read on an unknown uri is an error
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • following nextCursor terminates and does not repeat a page
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • an invalid pagination cursor is rejected (SHOULD)
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
Version negotiation
  • a version declared in _meta is accepted
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • an unsupported version is rejected with the supported list
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • clientInfo is optional (SHOULD, not MUST)
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
Result envelope
  • every result carries the required resultType
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • cacheable list results carry the schema-required cache hints
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • results identify the server in _meta
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • a client on an older version receives no newer-revision fields
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
subscriptions/listen
  • subscriptions/listen acknowledges only the opted-in notification types
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • the acknowledgment carries the subscription id for correlation
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • a listen requesting no notification types is not a subscription to everything
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}
  • a cancelled subscription ends with a conformant teardown result, if it sends one
    cannot determine what the target supports — server/discover returned an error: {"code":-32601,"message":"Method not found","data":"server/discover"}

Passed (6)

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
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 "sh -c '[ -d /tmp/qr ] || git clone --depth 1 https://github.com/modelcontextprotocol/quickstart-resources /tmp/qr; cd /tmp/qr/weather-server-python && uv run weather.py'" --spec-version 2026-07-28

Without Docker (npx):

npx @hasmcp/mcp-spec-test@latest -c "sh -c '[ -d /tmp/qr ] || git clone --depth 1 https://github.com/modelcontextprotocol/quickstart-resources /tmp/qr; cd /tmp/qr/weather-server-python && uv run weather.py'" --spec-version 2026-07-28

This issue was generated by an automated MCP spec conformance sweep across public MCP server repos. If this doesn't apply here (e.g. an environment artifact of the test container, or this example intentionally targets an older spec revision), feel free to close it.

主要言語
TypeScript
スター
1.2k
フォーク
688
平均マージ
2日 18時間
マージ済み PR(30日)
21

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

modelcontextprotocol/quickstart-resources のほかの issue

modelcontextprotocol/quickstart-resources の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。