概要
https://qiita.com/masayan1126/items/cb980c8a2890dd34c4d5
詳細内容
## Claude Codeユーザー待望「ツール検索ツール」 | MCPトークンを削減して精度を保つ方法
https://qiita.com/masayan1126/items/cb980c8a2890dd34c4d5
Claude CodeにおいてMCPツールの定義をオンデマンドで読み込む実験的機能「ツール検索ツール」を有効化し、トークン消費を大幅に削減する方法を解説する。
**Content Type**: ⚙️ Tools
**Language**: ja
**Scores**: Signal:4/5 | Depth:4/5 | Unique:3/5 | Practical:5/5 | Anti-Hype:4/5
**Main Journal**: 81/100 | **Annex Potential**: 77/100 | **Overall**: 80/100
**Topics**: [[Claude Code, MCP, トークン削減, コンテキスト最適化, ENABLE_TOOL_SEARCH]]
本記事は、Claude Codeのユーザーが直面する大きな課題の一つである、MCP(Model Context Protocol)ツールの定義によるコンテキストウィンドウの占有問題を、隠された実験的機能によって解決する方法を解説している。
Claude Codeはデフォルト設定では、セッション開始時に接続されているすべてのMCPツールの定義をコンテキストに事前ロードする。これは便利な反面、NotionやGoogle Searchなどの豊富な機能を持つMCPサーバーを複数利用すると、ツール定義だけで数万トークンを消費してしまう。筆者の具体的な検証例では、6つのサーバーを接続した状態でコンテキスト全体の37.3%(約74,500トークン)がツール定義で埋まっており、本来のコード解析や対話に使用できる領域が大幅に制限されている実態が示されている。この状態は「Context rot(コンテキストの腐敗)」と呼ばれ、LLMが重要な情報を読み飛ばしたり、指示の遵守率が低下したりする原因となる。
著者が推奨する解決策は、環境変数 `ENABLE_TOOL_SEARCH=true` を設定した状態で `claude` コマンドを実行することだ。この機能を有効にすると、MCPツールの定義はコンテキストから除外され、代わりに「MCPSearch」というツールが導入される。LLMはユーザーの要望に応じてこの検索ツールを使い、必要なMCPツールを動的に見つけ出してオンデマンドでロードするようになる。このアプローチにより、検証環境ではMCPツールによるトークン消費が実質ゼロになり、フリースペースが60kから134kへと倍増した。
また、単なる節約にとどまらず、Anthropicのエンジニアリングブログの引用を交え、ツールの選択精度そのものが向上する点も強調されている。コンテキストが不要な定義でノイズまみれにならないため、モデルが「今、本当に必要なツール」を正しく選別できるようになる。Opus 4.5では精度が約8%向上するというデータもあり、複雑なタスクほど恩恵が大きい。
注意点として、本機能は現時点で公式ドキュメントに記載のない実験的機能であることが挙げられている。将来的な仕様変更の可能性はあるものの、環境変数一つで開発効率とコストパフォーマンス、そして回答精度のすべてを劇的に改善できるため、複数のMCPを日常的に利用するエンジニアにとって、今すぐ試すべき極めて実用性の高い情報となっている。