この記事は人力で書きました。
主にAIエージェントとツールの接続を標準化するのに使われているModel Context Protocol。
急速に普及が進んでいますが、その仕様は絶賛策定中です。
前回の改版2025/3/26から約3ヶ月、先週6/18に大きなアップデートがありました。
そのうち大きな変更点を9つ、ピックアップしてまとめます。
基本プロトコル
ライフサイクル
1. 運用フェーズの遵守事項を義務化
ネゴシエートしたときの「MCPバージョン尊重」と「成功した機能のみ使用」がSHOULDからMUSTに強められました。
トランスポート
2. 標準入出力でJSON-RPCのバッチ対応が廃止
stdioでサポートされていたJSON-RPCのバッチ呼び出しが削除されました。
3. HTTPヘッダー内でMCPバージョン指定が義務化
HTTPでネゴシエートしたプロトコルバージョンを、後続リクエストヘッダーで指定することが必要になりました。
認可
4. MCPサーバーをOAuthリソースサーバーとして定義
MCPサーバーがOAuth 2.0の「リソースサーバー」として明確に定義され、認可サーバーと責任が分離されました。
他にも、OAuth 2.0の「保護されたリソースメタデータ」に対応したり、認証フローでWWW-Authenticateヘッダーの使用が必須になっています。
5. MCPクライアントにリソースインジケーターの実装を義務化
MCPクライアントは、OAuth 2.0のリソースインジケーターの実装が必要になりました。よからぬサーバーにアクセストークンを取得されることが防げます。
セキュリティ
6. セキュリティのベストプラクティスを掲載
ベスプラページが新設されました!これは嬉しいですね。
認可に関する攻撃ケースを深掘りしています。
クライアント側の機能
エリシテーション(新機能)
7. ユーザーに追加情報を確認するプリミティブが登場
新しいプリミティブの登場です。elicit(引き出す)という言葉ですね。
MCPサーバーが情報不足のとき、MCPクライアントにユーザーへの追加確認を要求できるようになります。
AWSでいうBedrockエージェントの「ユーザー入力」機能ですね。
サーバー側の機能
ツール
8. 出力の構造化に対応
これはかなり嬉しい人が多いのでは?
ツールの実行結果をJSONでも返せるようになりました。MCPホスト側でフレームワーク等による実装の手間が減るといいですね。
9. 呼び出し結果にリソースリンクを含められるように
必須ではありませんが、「リソース」プリミティブへのリンクをツールが返せるようになりました。
おまけ
来週、MCPの入門書を出版します!予約してね✌️