
MCP は API ではありません。ツールはエージェントではありません。MCPは単なるツールではありません。これが実際に意味するものは次のとおりです。
ほとんどの開発者は、モデル コンテキスト プロトコルを使い慣れた API メンタル モデルにマッピングするため、モデル コンテキスト プロトコルを誤って読みます。この間違いは、エージェントの設計、オブザーバビリティ、そして非決定論的推論が決定論的実行と一致しなければならない「ラストワンマイル」を壊します。この作品は、3 つの一般的な誤解を修正し、実際に機能する具体的なパターンを提供します。
1)誤解#1:「MCPは単なる別のAPIです」
人々が行う主張: MCP 呼び出しは、REST または gRPC の呼び出しのように扱います。
現実: MCP は、LLM ツールの使用、インテント メディエーション、およびコンテキスト交換用に設計されたモデル側プロトコルです。RPC に取って代わるものではありません。多くの場合、内部では API と RPC を使用しますが、その目的は、非決定論的エージェントがそれらを安全かつ効果的に使用できるようにすることです。
混乱が起こる理由
- Teams は、使い慣れていてテスト可能であるため、既定で API の考え方を使用します。
- ほとんどのデモには、HTTP のように見える「ツールを呼び出して結果を取得する」と表示されます。
MCPが実際に与えるもの
- エンドポイントだけでなく、インテントとアフォーダンスを運ぶモデル用のツールインターフェイス。
- 要求/応答を超えたコンテキスト サーフェス: モデルの動作を形作るプロンプト、引き出し、リソース。
- 非決定論的計画と決定論的実行の間の継ぎ目により 、ラストワンマイルを信頼できるものにします。
機能するパターンを設計する
- MCPの背後にあるAPI: 安定したビジネス API を維持します。モデルが推論できる前提条件、成功基準、アフォーダンスを表す MCP ツール定義でそれらをラップします。
- 決定論的な「ラストワンマイル」: ツールの実行は、可能な限り決定論的でべき等として扱います。モデル計画から派生した入力を検証します。フェイルクローズ。
避けるべきアンチパターン
- MCP ツールを、複雑な状態変更とガードレールのないビジネス API として扱います。
- モデルを意識した検証や再試行なしで、厳密なスキーマへの準拠を期待します。
ミニチェックリスト
- 工具の前提条件と事後条件を定義します。
- エージェントが評価できるマシンでチェック可能な結果を返します。
- 計画→ツール→結果をログに記録し、再生と監査を行うことができます。
2) 誤解 #2: 「ツールはエージェントである」
人々が行う主張: 入力と出力を備えたツールはエージェントです。
現実: ツールが実行されます。エージェントは計画、再計画、評価を行います。エージェントは、目標が達成されるまでループします。ツールはそうではありません。
混乱が起こる理由
- Unix メンタル モデル: "ツールを構成すれば、知性が得られます。"
- 最新の LLM デモでは、1 回の呼び出しで「すべてを行う」ように見える場合の境界線が曖昧になります。
エージェントとツールの違い
- エージェンシー: 目標の追跡、再計画、エラーの回復。
- 評価: ステータスコードだけでなく、フィットネス関数と成功基準。
- メモリとコンテキスト: プロンプトとリソースはステップ間で進化します。
機能するパターンを設計する
- ツールの外部の制御ループ: 次に実行するツールとその理由を決定する責任をエージェントループに任せてください。
- 明示的な成功指標: エージェントに測定可能なチェックを行い、停止すべきか、再試行すべきか、または人間にエスカレーションすべきかを確認します。
- MCPを介した人間の引き出し: 信頼度が低い場合、またはあいまいさが高い場合は、MCP プロンプトを使用して、ユーザーにあいまいさの解消を求めます。
避けるべきアンチパターン
- 計画を 1 つのツール呼び出しに詰め込む。
- ツールのレイテンシーのみで「エージェントのパフォーマンス」を測定します。
ミニチェックリスト
- エージェントの目標、制約、停止条件を記述します。
- バックオフとツール固有のエラー処理による再試行を追加します。
- ループ反復ごとにトレースをキャプチャします。
3)誤解#3:「MCPは単なるツールです」
人々が行う主張: MCPは、JSONの入力と出力を持つツール定義と等しくなります。
現実: MCP には、ツールに加えて、 リソース、 プロンプト、 および引き出し が含まれています。これらは、コンテキストが豊富な作業に最適なものです。
混乱が起こる理由
- アーリーアダプターはツールを配線するだけで、仕様の残りの部分は無視しました。
- 多くの例は「API 上の自然言語」のように見えます。
残りを無視すると見逃すもの
- リソース: エージェントがステップ間で読み取り、書き込み、参照できる構造化された成果物。
- プロンプト: システムが添付、テスト、および監査できる、再利用可能なバージョン管理された命令セット。
- 引き出し: ユーザーのみがあいまいさを解決できる構造化されたヒューマン・イン・ザ・ループ要求。
機能するパターンを設計する
- リソースアダプター: ナレッジ ベース、ファイル、チケットを、権限とライフサイクルを持つ MCP リソースにマッピングします。
- プロンプトレジストリ: プロンプトをコードのように扱います。バージョン管理、テスト、ロールバック。
- 人間のチェックポイント: ユーザー入力を引き出すタイミングと、その後ループを再開する方法を定義します。
避けるべきアンチパターン
- MCP をリソースやプロンプトなしで既存のサービス上の「音声レイヤー」として使用します。
- 長いプロンプトをMCPで管理するのではなく、アプリケーション内でハードコーディングします。
ミニチェックリスト
- エージェントが読み取ることができるリソースの種類と書き込み可能なリソースの種類を少なくとも 1 つ公開します。
- ID とバージョンでプロンプトを登録します。
- 信頼度の低いブランチのユーザー誘導フローを定義します。
まとめる: AI を信頼できるものにするアーキテクチャの継ぎ目
- 非決定論的層: モデル計画、ツール選択、再計画、評価。
- 決定論的層: ツール実行、入力検証、べき等性、副作用制御。
- 継ぎ目としての MCP: ツール、リソース、プロンプト、および引き出しは、監視可能なトレースとポリシーを使用して 2 つのレイヤーを接続します。
オブザーバビリティとガバナンス
- トレース計画→リソース更新→ツール→プロンプトを表示します。
- バージョンプロンプトとツール仕様。
- MCP 境界でアクセス、レート制限、承認を適用します。
結論
「API」を考え続けると、脆いワンショットのデモを出荷することになります。ツールを決定論的なエグゼキューターとして扱い、エージェントをプランナーおよび評価者として扱い、MCP (ツール、リソース、プロンプト、引き出し) のすべてを、インテリジェントな動作と信頼性の高いシステムが出会う継ぎ目として使用します。
実装ガイド
APIをインベントリし 、事前/事後条件を宣言するMCPツールでラップします。
- エージェントの目標とフィットネス関数を定義します。停止基準をエンコードします。
- エージェントが必要とするリソースをモデル化します。読み取り/書き込みガードと保持を追加します。
- テストとロールバックを使用してプロンプトレジストリを立ち上げます。
- 信頼度の低いパスに人間による誘出を追加します。
- トレースをインストルメント 化し、監査用の再生可能なセッションを作成します。
- ツールに障害が発生した場合にカオス ドリルを実行し、エージェントが回復またはエスカレーションすることを確認します。
よくある落とし穴とその回避方法
- MCPをRESTのように扱う: ステータスコードだけでなく、成功チェックと評価を追加します。
- ワンショットエージェントコール: 再試行とヒューマンチェックポイントを使用してループを構築します。
- リソースモデルなし: エージェントは永続的なコンテキストなしでスラッシュします。
- プロンプトスプロール: バージョンプロンプトが表示され、A/B テストが実行されます。
- 不透明な操作: トレースがないと、結果をデバッグしたり信頼したりすることはできません。