MCP:ツールでエージェントを拡張する

Model Context Protocol がどうツール統合を標準化するか——サーバー、トランスポート、そして自作グルーコードに勝つ場面。

intermediate · Claude / GPT-5
#MCP#ツール#統合

解決する統合の問題

MCP 以前、エージェントはデータソースごとに専用の糊コードを要しました。N エージェント × M ツールの接続です。統合のたびに探索・認証・結果整形を再発明していました。

MCP が標準化するのは ラストワンマイル です。サーバーがツール・リソース・プロンプトを単一プロトコルで公開し、クライアントは均一に消費します。ツール作者の実装は一度きりです。

ホスト(エージェントアプリ) → MCP クライアント → MCP サーバー → データ/API

サーバーはローカル(stdio)でもリモート(HTTP)でも構いません。クライアントは気にしません。プロトコルは同じだからです。

サーバーが公開する 3 つのプリミティブ

プリミティブ制御者比喩
Toolsモデル呼び出せる関数
Resourcesアプリ読めるファイル/文脈
Promptsユーザー用意されたテンプレート

この区別が重要です。ツールはモデルが起動し、プロンプトはユーザーが起動します。 取り違えると、ユーザーが手動で起動すべきワークフローをモデルが勝手に実行するサーバーになります。

良いツール定義を書く

原則はあらゆる関数呼び出しスキーマと同じですが、プロトコル上の賭けは大きい。説明の悪いツールは、接続する すべての クライアントで誤用されます。

トランスポート:stdio か HTTP か

stdio ——ホストの子プロセスとして起動。シンプル、通信なし、ローカル権限を継承。ローカルファイル/システムアクセスや単ユーザー開発に最適。

HTTP(ストリーム対応) ——共有リモートサービス。マルチユーザー、資格情報の集中管理、SaaS API に必須。ちゃんとした認証(OAuth)、レート制限、テナント分離が必要。

後で共有資格情報が必要になるものに stdio を選ぶと、必ず書き直しになります。早く決めてください。

セキュリティの現実確認

MCP サーバーを接続することは、それが動くマシンの権限を与える ことです。サードパーティ製サーバーは、実行を選んだ実行可能コードそのものとして扱ってください。事実そうだからです。

MCP が過剰になるとき

エージェントが 1 つ、データソースも 1 つなら、素直に関数を書けば十分です。プロトコルの利得は クライアント間の再利用 か 多数の統合 から生まれます。単一目的のスクリプトに MCP を被せるのは、見返りのない儀式です。

次に当てはまるときに採用します:そのツールを複数エージェントアプリで使いたい。保守している統合が何本もあってどんどん乖離している。専用ドキュメントなしで他者に使ってほしい。