- AI開発
- エージェント設計 tags:
- MCP
- Code Execution
- Model Context Protocol
- AIエージェント
- コンテキスト最適化
- Claude
- ChatGPT
- Gemini
MCP Code Execution徹底解説:Code execution with MCPでトークンコストを最大98.7%削減するエージェント設計¶
この記事の対象者
- MCPを使ってAIエージェントを開発しているエンジニア
- エージェントのコスト・レイテンシ問題に直面している方
- 2025年のエージェント設計トレンドをキャッチアップしたい方
この記事のポイント¶
- 従来のMCPツールコール方式の限界と問題点を理解できる
- Code execution with MCPの仕組みとアーキテクチャを把握できる
- Anthropicの検証で最大98.7%削減を達成した実装パターンを学べる
- 既存MCPエージェントから移行する具体的なステップが分かる
MCP Code Executionとは何か?(Code execution with MCPの概要)¶
MCP(Model Context Protocol)は、AIエージェントに外部ツールを接続する標準プロトコルです。Anthropicが2025年に提案した「Code execution with MCP」は、ツールを直接呼ぶのではなく、TypeScript/JavaScriptコードを実行してツールと対話する新しい設計パターンです。
Anthropicの公式検証では、代表的なワークフローにおいて、トークン使用量を150,000トークンから2,000トークンへ削減(98.7%削減)し、時間とコストの両方で劇的な改善を示しました。
従来のMCPツールコールが抱えるボトルネック¶
従来のツールコール中心の設計では、以下の2つの致命的な問題が発生します。
問題1:コンテキストウィンドウの浪費¶
全ツールの定義をコンテキストに事前ロードすると、リクエストを読む前に数十万トークンを処理します。数千のツールにアクセスする場合、ツール定義だけで膨大なコストが発生し、レスポンス時間が遅延します。
問題2:中間結果の重複転送¶
ツール間でデータをやり取りする際、すべての結果がモデルを経由します。例えば2時間の会議の文字起こしを処理する場合、操作間で転送されるたびに追加で50,000トークンを消費します。
トークン消費の実例
複数のツールをチェーンした場合、同じデータが何度もコンテキストを通過し、処理効率が低下するだけでなく、エラーの機会も増えます。
Code execution with MCPのアーキテクチャ¶
Anthropicが提案した新しいアプローチは、ファイルシステムベースの検出パターンとコード実行環境を組み合わせた設計です。
アーキテクチャの基本設計¶
従来の方式では、全ツール定義を構造化メタデータとしてコンテキストにロードしていました。Code Executionでは、ツール定義をファイルツリーとして配置します。
servers/
├── google-drive/getDocument.ts
├── salesforce/updateRecord.ts
└── slack/sendMessage.ts
エージェントは必要なツールを探索し、必要な定義だけをオンデマンドでロードします。全ツール仕様を事前にロードする必要がなくなります。
実行環境の隔離とセキュリティ¶
TypeScript/JavaScriptコードは、ネットワークやリソースを制限可能なサンドボックス内で実行されます。MCPサーバーとのやり取りは、サンドボックスから提供されるTypeScript API経由で行う想定です。
セキュリティ設計
実装次第では、インターネット遮断や厳格な出入口制御を組み合わせることで、より高いセキュリティを確保できます。サンドボックス設計には、リソース制限・監視・ネットワーク分離などの要件を組み込むことが推奨されます。
プライバシー保護の仕組み¶
中間結果はサンドボックス内に留まり、ログやreturnで明示的に指定しなければモデルには共有されません。これにより、機密データが自動的にトークン化されるリスクを低減できます。
トークンコスト98.7%削減の内訳¶
Anthropicの公式検証では、以下のような削減メカニズムが確認されています。
削減の仕組み¶
- ツール定義の遅延ロード: 必要なツールのみを探索・ロードすることで、事前ロードによる数十万トークンの消費を回避
- 実行環境内でのデータ処理: フィルタリング・変換を実行環境内で完結させ、不要な情報をコンテキストから除外
- 制御フローの最適化: ループや条件分岐を環境内で実行し、モデルとの往復を削減
副次的なメリット¶
エージェントが結果をファイルに書き込めるため、再開可能なワークフローとスキルライブラリを構築できます。
ループや条件分岐を環境内で実行することで、モデルとの往復が減り、"最初のトークンまでの時間"が短縮されます。
中間データがモデルを通過しないため、機密情報のトークン化リスクが低減します。
実装パターンの具体例¶
従来のツールコール方式と比較すると、実装の違いが明確になります。
従来の方式(非推奨)¶
# 全ツール定義をコンテキストにロード
tools = load_all_tools() # 数十万トークン消費
response = agent.invoke(prompt, tools=tools)
Code Execution方式(推奨)¶
// 必要なツールのみ探索してロード
const doc = await import('./servers/google-drive/getDocument');
const result = await doc.getDocument('doc-id');
// フィルタリングして必要な情報だけ返す
return result.summary;
このアプローチにより、コンテキストに含める情報を最小限に抑えられます。
Claude / ChatGPT / Geminiでの活用イメージ¶
MCP Code Executionは、複数のLLMクライアントで採用が進んでいます。
対応状況¶
- Claude Code: AnthropicのClaude Code環境で、Code execution with MCPパターンが推奨されています
- ChatGPT Developer Mode: OpenAIのChatGPT Developer ModeがMCPクライアント機能を公式提供
- Gemini CLI: GoogleのGemini CLIがFastMCP連携に対応し、MCP+Code Executionパターンを利用可能
2025年の有力な標準候補
OpenAIのChatGPT Developer ModeやGoogleのGemini CLIなど、主要LLMクライアントがMCPクライアント機能を公式に提供し始めています。MCP+Code Executionパターンは、2025年時点で有力な標準候補として急速に広まりつつあります。
導入ステップと設計上の注意点¶
既存のMCPエージェントからCode Executionへ移行する具体的なステップを示します。
ステップ1:既存MCPツール定義の棚卸し¶
現在のエージェントが使用しているツールを整理します。
- ツールの数(10個未満 / 10-100個 / 100個以上)
- 使用しているMCPサーバー(Google Drive / Salesforce / Slack など)
- ツール定義の粒度(ツール名のみ / スキーマ詳細まで)
ステップ2:MCP+Code Execution対応クライアントの選定¶
以下のいずれかのクライアントを前提に設計します。
- Claude Code: Anthropicの公式環境、Code execution with MCPパターンを標準サポート
- Serena: オープンソースのMCPクライアント実装
- Gemini CLI: Google公式のCLIツール、FastMCP連携対応
- ChatGPT Developer Mode: OpenAI公式、MCPクライアント機能搭載
ステップ3:MCPツール定義→TypeScript APIファイルのジェネレータ設計¶
既存のMCPサーバーのツール定義から、TypeScript APIファイルを生成するスクリプトを準備します。
// 生成例:servers/google-drive/getDocument.ts
export async function getDocument(docId: string) {
// MCP経由でGoogle Driveへアクセス
const response = await mcp.call('google-drive', 'getDocument', { docId });
return response;
}
ステップ4:1つのワークフローで「ツール直叩き vs Code Execution」のトークン消費比較¶
実際のワークフロー(例:ログ集約バッチ、CRM更新フロー)で、両方式のトークン消費を計測します。
段階的移行
すべてのツールを一度に移行するのではなく、トークン消費が多いワークフローから優先的にCode Executionへ移行することで、リスクを抑えながら効果を確認できます。
よくある質問(FAQ)¶
MCP Code Executionは従来のFunction Callingと何が違いますか?¶
従来のFunction Callingは、全ツール定義を事前にコンテキストへロードします。MCP Code Executionは、必要なツールだけをオンデマンドでロードし、実行環境内でデータ処理を完結させるため、コンテキスト消費が大幅に削減されます。
Anthropicが示した98.7%削減は、どのような前提条件のワークフローですか?¶
Anthropic公式ブログでは、「代表的なワークフロー」として150,000トークン→2,000トークンへの削減例が示されています。具体的なワークフローの詳細は公開されていませんが、ツール数が多く、中間データのやり取りが頻繁なケースで特に効果が高いとされています。
Claude以外(ChatGPT、Gemini)でもMCP Code Executionは使えますか?¶
はい。ChatGPT Developer ModeとGemini CLIは、それぞれMCPクライアント機能を公式にサポートしており、Code execution with MCPパターンを利用できます。ただし、実装の詳細やサンドボックス仕様は各プロダクトで異なる可能性があります。
セキュリティ面で注意すべきポイントは何ですか?¶
サンドボックス設計において、以下の要素を考慮する必要があります:
- ネットワーク制限: インターネット遮断や、特定のMCPサーバーのみへのアクセス許可
- リソース制限: CPU・メモリ・ディスクI/Oの上限設定
- 監視とログ: コード実行のログ記録と異常検知
- タイムアウト設定: 長時間実行の防止
次のステップ¶
MCP Code Executionは、エージェント設計の新しいパラダイムです。従来のツールコール中心の設計から、コード実行+オンデマンドツールロードへシフトすることで、コストとレイテンシの両方を劇的に改善できます。
すでにMCPを使っている場合は、ツール定義をTypeScript APIとして再設計し、Code Executionへ移行することを検討してください。新規プロジェクトでは、最初からCode Execution前提で設計することで、スケーラブルなエージェントシステムを構築できます。