2026年におけるMCP認証
Model Context Protocol (MCP) は、エージェントとサーバー間の通信方法を一変させました。当初は計算機のようなローカルツールから始まりましたが、現在はリモートサーバー上で動作しています。この変化により、認証が必須要件となりました。
MCPサーバーにOAuthを追加しようとするなら、常に変化し続ける対象(moving target)であることを覚悟してください。仕様は数ヶ月ごとに更新されます。また、エージェントによって適用されるルールのバージョンも異なります。
以下に、MCP認証の現状をまとめます。
コアとなる転換
あなたのMCPサーバーは、認可サーバー(authorization server)ではありません。リソースサーバー(resource server)です。
以前の仕様では、サーバー側でトークンやログインを処理することが強制されていました。これにより、サーバーは肥大化し、スケーリングが困難になっていました。Aaron Parecki氏やChristian Posta氏といった専門家はこの問題を指摘し、MCPサーバーはトークンの検証(validate)のみを行うべきだと主張しました。
現在、標準的なフローは以下の通りです:
• 認証されていないリクエストには401エラーが返される。 • エラーにより、クライアントはリソースのメタデータをどこで取得すべきかを知る。 • クライアントは適切な認可サーバー(OktaやKeycloakなど)を見つける。 • クライアントはトークンを取得し、それをMCPサーバーに提示する。 • サーバーはトークンを検証し、ツールを実行する。
断片化の問題
標準規格は存在するものの、エージェントごとに実装方法が異なります。
• Claude Desktop: 完全なOAuthフローを実行する。 • Claude API: 独自のベアラートークン(bearer token)の受け渡しを要求する。 • ChatGPT: 登録にCIMDを使用し、最新の仕様をサポートしている。 • Gemini: Google Cloud IAMとAPIキーを使用する。 • VS Code: GitHubおよびEntraプロバイダーをサポートしている。
つまり、あるエージェント向けに構築されたサーバーが、別のエージェントでは動作しない可能性があるということです。ベンダーによっては完全なログインフローを要求する場合もあれば、トークンを自前で管理することを求める場合もあります。
開発者のための3つの教訓
リソースサーバーモデルをターゲットにする。アイデンティティプロバイダー(identity provider)になろうとしないでください。RFC 9728を使用してメタデータを提供し、audience(対象者)を検証してください。
二つの世界をサポートする。「独自のトークンを持ち込む(bring your own token)」形式のAPIコールと、完全なOAuthフローの両方に対応できるようにサーバーを構築してください。
絶え間ないアップデートを想定する。仕様はまだ進化の過程にあります。OAuth 2.1はまだドラフト段階であり、MCPプロトコルもまだ確立の途上にあります。
現在、MCPサーバーの構築は困難です。ルールは急速に変化しています。柔軟性を保ち、リソースサーバーモデルを堅持すれば、こうした変化を乗り越えられるでしょう。
オプションの学習コミュニティ: https://t.me/GyaanSetuAi
