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

tier-check: final 2026-07-28 is still treated as draft and legacy scenarios score by default

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

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

@pcarleton がすでに取り組んでいます。

2026年9月6日 から。

  • #495 @pcarleton による — オープン

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
48/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
typescript

調査の方向性

src/types.ts から始めて、dated、draft、latest、negotiable の各バージョンの処理を追跡し、次にスキーマのルーティングについて scripts/sync-schema.ts と src/spec-types/SOURCE を調べます。issue に記載された明示的およびデフォルトの tier チェックのケースを再現します。完了の条件は、final-2026 のシナリオが評価され、削除されたシナリオがデフォルトで除外され、変更不可能な最終スキーマが使用される一方で、以前のプロファイルを引き続き選択できることです。

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

説明

Summary

The current conformance main (49103de6ed70804e940637bf3e9e29e4a3f54e64) predates the final MCP 2026-07-28 release (modelcontextprotocol@5f5440bb26a62e2cf3440b92da5a667efa03b267) and still classifies 2026-07-28 as the draft protocol version rather than a dated release.

That makes current Tier checks misleading in two directions:

  1. An explicit --spec-version 2026-07-28 run does not score the complete final profile.
  2. A default run scores removed legacy scenarios that are outside the SDK's target spec profile.

This was reproduced against leehack/mcp_dart@629a85c511913e30945568c6c27702da6760a3bc with @modelcontextprotocol/conformance built from 49103de6ed70804e940637bf3e9e29e4a3f54e64.

Current behavior

src/types.ts currently has dated versions ending at 2025-11-25, LATEST_SPEC_VERSION = '2025-11-25', and DRAFT_PROTOCOL_VERSION = '2026-07-28'.

For an explicit final-2026 run:

  • The client executes 32 applicable scenarios, but the 17 introduced in 2026-07-28 are marked informational. Only 15 scenarios affect pass_rate.
  • The server's default active suite excludes scenarios introduced in 2026-07-28. It runs 20 scenarios instead of the 37 applicable non-pending scenarios (40 applicable, 3 pending).
  • The output can therefore report Tier 1 without assessing all final-2026 requirements.

For a default run with no --spec-version:

  • Client tier-check invokes --suite all.
  • Two optional March 2025 OAuth backcompat scenarios with removedIn: '2025-06-18' enter the scored denominator.
  • Those scenarios are also run with the latest default wire version rather than a version inside their applicability window.
  • In this reproduction, required current-profile scenarios passed, but those two removed scenarios reduced the displayed client rate from 100% to 18/20 (90%) and the aggregate result from Tier 1 to Tier 2.

The Tier policy says scores should use the SDK's target specification and exclude legacy backcompat unless the SDK claims it: https://modelcontextprotocol.io/community/sdk-tiers

Schema drift

src/spec-types/SOURCE currently pins pre-final spec commit 71e306956a4959c9655e5036be215d41986596e6, and scripts/sync-schema.ts vendors only the older dated schemas plus mutable draft.

The final 2026-07-28 schema includes changes completed before the final tag, including the SubscriptionsListenResultResponse envelope from modelcontextprotocol/modelcontextprotocol#3158. Final-2026 validation should use an immutable vendored schema/2026-07-28, not the pre-final draft snapshot.

Expected behavior

  • Treat 2026-07-28 as a dated, latest, Tier-scoring release.
  • Make the default Tier conformance target the latest dated release, while retaining explicit older-profile assessment.
  • Exclude removed legacy scenarios and extensions from the default target profile; keep them selectable for intentional compatibility/extension testing.
  • Include all applicable, non-pending final-2026 client and server scenarios in the scored assessment.
  • Vendor and route final-2026 wire validation to the immutable final schema.
  • Preserve a useful draft target even while the spec repository's draft wire protocolVersion is temporarily identical to the latest final date.

Proposed implementation direction

One coherent change could:

  1. Add 2026-07-28 to the dated versions and make it latest.
  2. Represent whether there is a distinct unreleased draft separately from the draft wire identifier, deduplicating the version timeline and negotiable versions while both identifiers match.
  3. Keep the draft suites empty until a distinct unreleased draft exists, so final-introduced scenarios become active and scored.
  4. Default tier-check conformance to LATEST_SPEC_VERSION instead of the aggregate all suite.
  5. Vendor schema/2026-07-28 at the final tag and route dated validation to it.

The important design question is whether maintainers prefer this small has distinct draft model or a larger separation between CLI spec targets (draft versus dated releases) and wire protocolVersion values. I am happy to implement the agreed direction with inventory, tier-output, schema-routing, and backward-profile regression tests.

主要言語
TypeScript
スター
131
フォーク
111
平均マージ
17日 14分
マージ済み PR(30日)
1

環境構築

はじめの一歩

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

modelcontextprotocol/conformance のほかの issue

modelcontextprotocol/conformance の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

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

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