Cover CIMD-only client authorization with no DCR endpoint
メンテナーはふだん 7 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 58/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- typescript
調査の方向性
src/scenarios/client/auth/helpers/createAuthServer.ts の 726 行目付近と、2025-11-25 用の既存の stateful auth/basic-cimd シナリオから始めます。disableDynamicRegistration がメタデータと POST /register にどのような影響を与えるかを追跡し、シナリオを実行して、登録が利用できない一方で、CIMD 認可、トークン交換、認証済み MCP リクエストが正常に完了することを確認します。
索引モデルが issue の本文から書いたものです。
説明
Is your feature request related to a problem? Please describe.
auth/basic-cimd advertises client_id_metadata_document_supported: true and checks that the client presents the scenario's fixed CIMD URL as its client_id, but it still advertises and serves Dynamic Client Registration. auth/pre-registration removes the advertised endpoint only while supplying static credentials.
The suite therefore does not cover this combination:
- CIMD supported
- No
registration_endpoint - No pre-registered credentials
- Successful authorization, token exchange, and protected MCP request using the CIMD URL as
client_id
Issue #34 was closed before this combination was covered.
At SHA 81eb1c3, createAuthServer.ts:726 mounts POST /register unconditionally. Consequently, disableDynamicRegistration removes registration_endpoint from metadata but does not make registration unavailable.
Runtime proof at SHA 81eb1c3: with disableDynamicRegistration: true, a POST /register returns 201 and records the client-registration check. I can provide the full reproduction on request.
Describe the solution you'd like
Tighten the existing stateful auth/basic-cimd scenario for specification version 2025-11-25 so that:
- The authorization server advertises CIMD without a registration endpoint.
POST /registeris unavailable.- Any attempted dynamic registration is reported as a conformance failure.
- The client presents the scenario's fixed CIMD URL as its
client_id. - The token exchange completes using that
client_id. - An authenticated MCP call completes with a valid bearer token.
The shared helper correction would also change the pre-registration and WIF scenarios: a misbehaving client that POSTs /register would receive 404 instead of being silently registered. Their intended clients use supplied credentials and remain green.
Describe alternatives you've considered
The alternative is to target the 2026-07-28 stateless path. The bundled runAuthClient() also needs a separate 2026 stateless-lifecycle fix; that broader reference-client change is outside this issue.
Additional context
This gap was found during live interoperability testing of an mcp-sso authorization server over public HTTPS, using real identity-provider grants and protected MCP tool calls. Against the same CIMD-only server configuration, Claude Code 2.1.220 and the ChatGPT connector completed authorization using a URL-shaped client ID, while Codex 0.146.0 and 0.147.0-alpha.1 stopped after authorization-server discovery with Dynamic client registration not supported. The Codex reproduction and request logs are recorded in openai/codex#13200.
That product difference prompted the conformance-suite audit: the existing suite was green because auth/basic-cimd still made DCR available, so it did not exercise the configuration that distinguished these clients.
I propose targeting the existing 2025-11-25 scenario. CIMD-only was already valid there: clients and authorization servers SHOULD support CIMD, DCR is a MAY retained for backwards compatibility, and the client priority order ranks CIMD above DCR.
This covers a valid, previously untested combination without asserting the 2026 DCR deprecation retroactively, and keeps the change to one reviewable unit. Happy to sequence it differently if the maintainers prefer.
- 主要言語
- TypeScript
- スター
- 130
- フォーク
- 107
- 平均マージ
- 8日 19時間
- マージ済み PR(30日)
- 2
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
modelcontextprotocol/conformance のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
modelcontextprotocol/conformance#531 · コメント 1 件 ·
メンテナーはふだん 7 日以内に返信
-
server-stateless: 500 ms whole-request deadline in no-log-without-loglevel reports slow servers as failures対応中かも @birbprophet が 7 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
modelcontextprotocol/conformance#530 ·
メンテナーはふだん 7 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
modelcontextprotocol/conformance#519 ·
メンテナーはふだん 7 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
modelcontextprotocol/conformance#315 · コメント 1 件 ·
メンテナーはふだん 7 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
modelcontextprotocol/conformance#312 · コメント 1 件 ·
メンテナーはふだん 7 日以内に返信
modelcontextprotocol/conformance の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
openzim/mwoffliner#2933 ·
メンテナーはふだん 1 日以内に返信
-
Use the README category name for website links and submissions対応中かも @dajiaohuang が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
birobirobiro/awesome-shadcn-ui#647 ·
メンテナーはふだん 2 日以内に返信
-
check:passed streams:add
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
Urigo/accounter-fullstack#4604 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信