Code Execution MCP(CE-MCP)は Model Context Protocol の実行モデルの一つであり、 エージェントは自然言語のやりとりを通じてツールを逐次呼び出すのではなく、制御フロー、ツール呼び出し、 データ変換を記述した単一の自己完結した実行可能プログラムを生成し、それを隔離されたランタイム環境内で 実行する。エージェントのコンテキストに戻ってくるのはそのプログラムの最終結果だけなので、タスクの複雑さや ツールエコシステムの規模にかかわらず、コンテキストの消費量はほぼ一定に保たれる。Anthropic や Cloudflare のものを含む主要な業界での導入事例がこの実行パラダイムを採り入れている。CE-MCP は従来の MCP を置き換えるのではなく拡張するものであり、ツールを実行環境内で呼び出し可能な関数として公開する。

用法

このアプローチについての Anthropic 自身の説明である MCP によるコード実行:より効率的なエージェントを構築する は、大規模な 直接ツール呼び出しに伴う 2 つのコストを動機として挙げている。多くの MCP クライアントはすべてのツール定義を あらかじめコンテキストウィンドウに読み込むこと、そしてツールの中間結果がすべて、ときには 2 回、モデルを 経由することである。その解決策は、MCP サーバーをコード API として提示し、エージェントがコード実行環境から それを呼び出すようにすることである。記事が紹介する実装の一つは、ツールごとに 1 つの TypeScript ファイルを 持つファイルツリーを生成し、エージェントはそれを探索して必要な定義だけを読み込む。記事の例では、これにより トークン使用量が 150,000 から 2,000 に削減された。同じ記事はさらなる利点として、大きな結果をモデルに 届く前にコード内でフィルタリングすること、ループや条件分岐を実行環境内で実行すること、機密データを クライアント側でトークン化してモデルのコンテキストに入れないこと、状態や再利用可能なコードをスキルとして 永続化することを挙げ、Cloudflare が「Code Mode」という名前で同様の知見を公表したことも報告している。 また、エージェントが生成したコードを実行するには、サンドボックス化、リソース制限、監視を備えた安全な 実行環境が必要であり、これは直接ツール呼び出しでは避けられる運用上のオーバーヘッドであって、利点と 比較衡量すべきだと注意を促している。

10 の MCP-Bench サーバーと 3 つの GPT-4 モデルバリアントにわたる実証的な比較では、CE-MCP は従来の MCP と比べてトークン使用量、実行時間、対話ターン数を一貫して削減し、しかもほとんどの設定でタスク達成度、 ツール選択の正確さ、パラメータの正確さは同等に保たれることが示された(ツールオーケストレーションからコード実行へ:MCP の設計上の選択に関する研究)。 同じ研究によれば、CE-MCP は構造化されたデータ並列のワークフローを伴う、複雑で複数ツールにまたがるタスクに 最も適している — ツールの使用を並列化し、結果をプログラム的に集約できるためである — 一方、従来の MCP は、 ターン間での段階的な推論や局所的なリトライの恩恵を受ける、コンテキストに敏感なタスク、テキスト量の多い タスク、あるいは反復性の高いタスクで優位を保つ。

その研究はまた、宣言的なツール呼び出しからモデルが生成したコードの実行へ移行すると、システムの セキュリティ態勢が根本的に変わることも見出した。信頼できないツール出力や例外メッセージが実行可能な 意味論へと格上げされるため、MAESTRO 脅威モデリングフレームワークを CE-MCP に適用したところ、ツールの 発見、コード生成と計画、コード実行、結果の返却と検証、ランタイムへの影響という 5 つの実行フェーズに わたって 16 の攻撃クラスが特定された。研究はそのうちいくつかについて、サンドボックスからの脱出を一切 必要とせずに実際に悪用可能であることを検証しており、その中には、誘発された終わらない再生成ループによる サービス拒否や、汚染された例外メッセージによる不正な権限昇格が含まれる。研究は 3 段階の多層防御 アーキテクチャ(実行前の静的検証と意味的ゲーティング、隔離され監視された実行、実行後の意味的ゲーティング)を 提案し、それはテストしたすべての攻撃を阻止したが、これらの防御は、防御を認識している攻撃者に対しては 評価されていないことも指摘している。

関連用語