要約
Claude Code が、MCPツールをオンデマンドでロードする実験的機能「ツール検索ツール」を追加した。ENABLE_TOOL_SEARCH=true という環境変数一つで、MCPツール定義によるトークン消費を最大85%削減できる。本記事では、この機能の使い方と効果を実際の検証結果とともに解説する。
対象読者: Claude Codeユーザー、複数のMCPサーバーを利用している方
検証環境: Claude Code CLI(2025年12月時点)
この記事を読むことで得られるメリット
この記事を読むことで以下のことが分かる:
- MCPツール定義がコンテキストを圧迫する問題の背景
- ENABLE_TOOL_SEARCH=true の設定方法
- ツール検索ツール(MCPSearch)の動作原理
- 実際のトークン削減効果(Before/After比較)
- 使用時の注意点と制限事項

この記事を読むのにかかる時間
約6分
環境
- MacOS Apple M4 Max Sequoia 15.1
- Claude Code CLI
背景:MCPツール定義がコンテキストを圧迫する問題
Claude Code は従来、セッション開始時にすべてのMCPツール定義をコンテキストウィンドウに事前読み込みしていた。これが深刻なトークン消費問題を引き起こしている。
実際のトークン消費例
よく利用されているMCPサーバーを複数登録した状態で、コンテキスト使用状況を確認すると以下のようになる。
Manage MCP servers
6 servers
❯ 1. claude-in-chrome ✔ connected
2. context7 ✔ connected
3. nilto ✔ connected
4. notion ✔ connected
5. serena ✔ connected
Notionのツールが最も多く、約5.8kトークンを消費している。/context コマンドで確認すると、MCPツールだけでなんと 37% ものコンテキストを消費していることがわかる。
> /context
Context Usage
⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ claude-opus-4-5-20251101 · 140k/200k tokens (70%)
⛁ System prompt: 3.9k tokens (1.9%)
⛁ System tools: 15.9k tokens (8.0%)
⛁ MCP tools: 74.5k tokens (37.3%) ← ここが問題
⛁ Memory files: 654 tokens (0.3%)
⛁ Messages: 99 tokens (0.0%)
⛶ Free space: 60k (29.9%)
⛝ Autocompact buffer: 45.0k tokens (22.5%)
Context rot(コンテキストの腐敗)問題
この問題は「Context rot(コンテキストの腐敗)」と呼ばれ、LLMのパフォーマンス低下の一因となることが研究で指摘されている。コンテキストウィンドウの大部分をツール定義で占有してしまうと、実際のタスクに使える領域が減少し、回答の質が低下する可能性がある。
ENABLE_TOOL_SEARCH=true の使い方
環境変数を設定してClaude Codeを起動するだけで、ツール検索機能が有効化される。
ENABLE_TOOL_SEARCH=true claude
有効化後のコンテキスト確認
有効化後、/context コマンドでコンテキスト使用状況を確認すると、MCPツール定義がコンテキストに含まれなくなっていることが確認できる。
> /context
Context Usage
⛁ ⛁ ⛀ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ claude-opus-4-5-20251101 · 66k/200k tokens (33%)
⛁ System prompt: 3.9k tokens (1.9%)
⛁ System tools: 16.6k tokens (8.3%)
⛁ Memory files: 654 tokens (0.3%)
⛁ Messages: 8 tokens (0.0%)
⛶ Free space: 134k (66.9%) ← 大幅に増加
⛝ Autocompact buffer: 45.0k tokens (22.5%)
MCP tools · /mcp (loaded on-demand) ← オンデマンドロードに変更
Available
└ mcp__tavily-mcp__tavily-search
└ mcp__tavily-mcp__tavily-extract
...
ツールに関する最低限のメタデータは取得しているため、MCP Tools セクションには引き続きツール一覧が表示され、利用可能なツールの確認は可能だ。ステータスが loaded on-demand となっているのがポイントである。
トークン消費の比較
状態 | MCPツールトークン | 合計トークン | Free space |
|---|---|---|---|
Before(従来方式) | 74.5k (37.3%) | 140k (70%) | 60k (29.9%) |
After(ツール検索有効) | 0k (0%) | 66k (33%) | 134k (66.9%) |
削減効果: MCPツール定義のトークン消費が実質ゼロになり、約74kトークン(全体の37%)を節約できる。
ツール検索ツールの動作
ツール検索が有効な場合、Claude は MCPSearch(...) という新しいツールを使用して、必要なMCPツールを動的に検索・呼び出しする。
動作の流れ
- キーワード検索: ユーザーのリクエストに基づいて必要なツールを検索
- Direct Selection: 見つけたツールを選択して呼び出し
- オンデマンドロード: 使用されたツールのみがコンテキストにロード
MCPSearch(Search MCP tools: "select:mcp__xxxxxx")
実際のタスク実行時、Claudeは最初にキーワード検索でツールを探し、見つけたツールを Direct Selection で呼び出す流れになる。使用されたツールのみがコンテキストにロードされるため、大幅なトークン節約が実現する。
公式APIでのTool Search Tool仕様
Anthropicは2025年11月24日のエンジニアリングブログで、APIレベルでのTool Search Toolをパブリックベータとしてリリースした。
公式の統計によると、以下のような効果が報告されている。
指標 | 効果 |
|---|---|
トークン削減率 | 85%(従来の72Kトークン → 約8.7Kトークン) |
Opus 4 精度向上 | 49% → 74%(MCP評価での改善) |
Opus 4.5 精度向上 | 79.5% → 88.1%(MCP評価での改善) |
トークン削減だけでなく、ツールの選択精度も向上するという点が重要だ。コンテキストに不要なツール定義がないことで、モデルが適切なツールを選択しやすくなる。
実際の検証で確認できるトークン削減
読者がこの機能を試す際、以下の手順で効果を確認できる。
検証手順
Step 1: Before測定
通常起動(claude)で /context を実行し、MCPツールのトークン数を記録する。
claude
> /context
# MCP tools の行を確認
Step 2: After測定
ENABLE_TOOL_SEARCH=true claude で起動し、同様に /context を確認する。
ENABLE_TOOL_SEARCH=true claude
> /context
# MCP tools が loaded on-demand になっていることを確認
Step 3: タスク実行後の確認
MCPツールを使うタスクを実行し、Loadedセクションに表示されるトークン数を確認する。実際に使用したツールのみがロードされていることがわかる。
注意点と制限事項
この機能にはいくつかの制限がある。
実験的機能である
公式ドキュメントには ENABLE_TOOL_SEARCH の記載がなく、予告なく変更される可能性がある。本番環境での利用は慎重に判断する必要がある。
適している利用シーン
MCPサーバーを多数利用しているユーザーほど効果が大きい。
まとめ
ENABLE_TOOL_SEARCH=true は、MCPサーバーを多数利用しているClaude Codeユーザーにとって非常に有効な機能である。
主なメリット
- トークン消費の大幅削減: MCPツール定義のトークン消費を実質ゼロに
- 精度の向上: ツール選択の精度が向上(Opus 4.5で79.5%→88.1%)
- 設定が簡単: 環境変数一つで有効化
使用開始方法
ENABLE_TOOL_SEARCH=true claude
設定方法は環境変数一つで、リスクも低いため、MCPサーバーを複数利用しているユーザーは今すぐ試してみる価値がある。今後、settings.json での正式な設定オプションとして提供されることが期待される。