>

Claude Codeユーザー待望「ツール検索ツール」 | MCPトークンを削減して精度を保つ方法

Claude Codeユーザー待望「ツール検索ツール」 | MCPトークンを削減して精度を保つ方法

要約

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ツールを動的に検索・呼び出しする。

動作の流れ

  1. キーワード検索: ユーザーのリクエストに基づいて必要なツールを検索
  2. Direct Selection: 見つけたツールを選択して呼び出し
  3. オンデマンドロード: 使用されたツールのみがコンテキストにロード
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 での正式な設定オプションとして提供されることが期待される。