modelcontextprotocol / modelcontextprotocol/php-sdk

[Client] Add OAuth 2025-03-26 metadata backcompat fallback

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

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

auth Client enhancement improves spec compliance
主要言語
PHP
スター
1.6k
フォーク
173
平均マージ
2日 49分
マージ済み PR(30日)
23

説明

Context

Older MCP servers (spec revision 2025-03-26) do not publish /.well-known/oauth-protected-resource. The client must fall back to discovering OAuth metadata directly from the MCP server origin's /.well-known/oauth-authorization-server and, if missing, from the issuer derived by URL convention.

Scope

  • Order of operations when WWW-Authenticate lacks resource_metadata:
    1. Try /.well-known/oauth-protected-resource at MCP server origin.
    2. Try /.well-known/oauth-authorization-server at MCP server origin.
    3. Fall back to OIDC discovery (/.well-known/openid-configuration).
  • Track protocol revision negotiated during initialize; only enable fallback chain when the server announced 2025-03-26.

Conformance scenarios unblocked

auth/2025-03-26-oauth-metadata-backcompat, auth/2025-03-26-oauth-endpoint-fallback.

Dependencies

Blocked by: #317, #318.

Acceptance

  • Unit tests covering all fallback branches.
  • Conformance: 2 baseline scenarios pass.

cc @soyuka

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

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

調査の方向性

まず、PHP クライアントの initialize ネゴシエーションと、resource_metadata が存在しない場合の WWW-Authenticate の処理を追跡します。revision 2025-03-26 を条件として、MCP origin と issuer から導出される URL に対する順序付きの Discovery 分岐を実装し、テストします。blocker #317 と #318 の解決後に、ユニットテストの分岐と auth/2025-03-26-oauth-metadata-backcompat および auth/2025-03-26-oauth-endpoint-fallback の conformance シナリオを確認します。

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

評価

技術スタック
php
領域
api, authentication
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
明確に書かれている
初心者へのやさしさ
52/100

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

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