世界を動かす技術を、日本語で。

MCP仕様書 – 2025年6月18日の変更点

概要

Model Context Protocol(MCP)仕様の最新版における主な変更点を要約。 OAuthやセキュリティ強化、ツール出力の構造化などを含む重要アップデート。 HTTP利用時のプロトコルバージョン指定や、リソースリンク機能の追加。 インターフェースやリクエストスキーマにも複数の拡張を実施。 詳細な変更履歴はGitHubにて確認可能。

Model Context Protocol 仕様の主な変更点(2025-03-26以降)

  • JSON-RPCバッチ処理 のサポート削除(PR #416)
  • ツール出力の構造化 に対応(PR #371)
  • MCPサーバーOAuth Resource Server として分類
    • 対応する Authorization server の検出用に保護リソースメタデータを追加(PR #338)
  • MCPクライアントResource Indicators (RFC 8707)の実装を必須化
    • 悪意あるサーバーによるアクセストークン不正取得の防止(PR #734)
  • 認可仕様 および新設の セキュリティベストプラクティスページ でセキュリティ考慮事項を明確化
  • Elicitation機能 の追加
    • インタラクション中にサーバーがユーザーに追加情報を要求可能(PR #382)
  • ツール呼び出し結果 への リソースリンク 追加(PR #603)
  • HTTP利用時、以降のリクエストで MCP-Protocol-Versionヘッダー による交渉済みプロトコルバージョンの指定を必須化(PR #548)
  • Lifecycle Operation における SHOULD から MUST への仕様強化

その他スキーマ変更

  • 複数のインターフェース型に _metaフィールド を追加し、適切な利用方法を明記(PR #710)
  • CompletionRequestcontextフィールド を追加
    • 事前に解決済み変数を含めた補完リクエストが可能に(PR #598)
  • titleフィールド を追加し、プログラム識別子用のnameと区別
    • 人間向け表示名の指定が可能に(PR #663)

変更履歴の確認方法

  • すべての変更点の詳細は GitHub にて公開
  • 最新のプロトコル改訂以降のフルチェンジログ参照推奨

Hackerたちの意見

認可されたMCPサーバーへのシンプルな道ができたのが嬉しい!MCPコミュニティとAnthropicの皆さん、すごく感謝してます。

MCPサーバーって何のためにあるの?エージェントからRPCを作りたいなら、普通にRPC使えばいいじゃん。

コアの仕様がTypeScriptで書かれてるのが面白いね。OpenAPI仕様とかじゃなくてさ。まあ、納得はできるけど、やっぱり驚きだよね。

なんで驚くの?自分はTypeScriptをよく使うけど、こんな視点を持つなんて考えもしなかったから、言語設計の決定については見落としてる部分があるのかも。

ほとんど無駄な複雑さだけど、バッチ処理がなくなるのは寂しいな。クライアントが自分でレスポンスをバッチ処理できるとしても、「これらのことを全部やってから返事して」って言えるのはちょっと面白かったから。

同意だよ。JSON-RPCのバッチ処理はずっと「お、これはいいな」って思ってた機能だったから、仕様から外れるのは悲しい。でも、君が言ったように、結局は複雑さを増やすだけなんだよね。

MCPの盛り上がりに乗って学んだ一番大きな教訓は、バックエンドソフトウェアを書くならMCPを使う必要はないってこと。アーキテクチャ的に意味がないんだよね。少なくともElixirではそう。APIごとにサーバーを立てるの?バックエンドやってるならそれはちょっとクレイジーに聞こえる。500個のAPIに対して500個のマイクロサービスってことだし。20個のMCPサーバーを使った後、結局、MCPの裏側で動いてる普通の関数呼び出しで十分だって気づいたんだ。それぞれのAPIはサーバーじゃなくてモジュールにできるし、最新のMCP仕様を追いかける必要も、仕様変更で100個以上のマイクロサービスを更新する必要もない。無駄な複雑さだよ。

MCPは、Claudeを使うときにAPIコストをかけずに関数呼び出しを有効にするためのプラグアンドプレイの統合だと思ってた。APIを使ってて急いでないなら、必要ないよね。

クライアントとモデルをつなぐための標準プロトコルって感じだね。ツールコールのためのコンテナだけじゃないんだよ。

APIごとにサーバーが一つ?バックエンドやってるなら、実際それはクレイジーに聞こえるよ。エリクサーには詳しくないけど、以前やってたみたいに複数の異なるAPIやバックエンド、マイクロサービスを組み合わせてモノリスのMCPを作るのを禁止するものってあるの?それに、ツールコールだけでMCPを使っても、いろんなクライアントアプリケーションとの統合は得られないよ。これが私にとってのMCPの「キラーアプリ」なんだ(別のコメントでも触れられてるけど)。MCPにはまだ複雑な気持ちもあるけど、今回はMCPがちょっと勝ってるかな。

「各APIはサーバーじゃなくてモジュールにできる」って、これがMCPの本質だよね。MCPができる前は、みんながそれぞれのAPIに対して独自の関数呼び出しインターフェースを作ってた。今は(少しずつ)標準化されてきてる。

各APIはそれぞれのモジュールにできる それは言語ロックインを意味するから、あんまり望ましくないよね。

Hacker Newsで議論の続きを見る