本記事の内容は2026/01/19時点のものになります。
この記事について
先日Xにて、「Claude CodeにてTool Searchという機能が使えるようになった」という情報を見つけました。
Tool Searchについて調べて/利用してわかったことを本記事にて共有しようと思います。
本記事の内容に誤りや補足などがあれば、コメント頂けますと幸いです。
Tool Searchとは?
一言で言うと、MCPツールを利用する際にコンテキストトークンの消費を最小限に抑えるためのツールです。
MCPによるコンテキストトークン浪費問題
MCPを利用する際に、問題点として挙げられていたのがMCPツールを登録することによるコンテキストトークンの消費でした。
Claude Codeはセッション開始時に登録されているすべてのツール定義を事前に読み込みます。つまり、登録されているMCPツールの数によって一定のコンテキストトークンを消費することになります。
MCPサーバーを大量に登録している場合、このコンテキストトークンの消費によるClaude Codeへの影響は顕著になります。具体的な影響として、
- コンテキストウィンドウ(1回の会話セッションにおいて保持可能なコンテキスト量=メモリ容量)が減る
- 意図したツールが呼び出されなくなりやすい
手元のClaude Codeにて/contextと打ち込むと、現在のコンテキスト利用状況を確認できます。
私の環境にて、会話セッションを開始した直後に/contextを実行すると以下のように表示されます。
MCP toolsとしてトークンがすでに16.4k(コンテキストウィンドウの8.2%)も消費されていることがわかります。
ちなみに登録しているMCPもそこまで数は多くない状態でこれです。そのため、登録するMCPの数によってはコンテキストウィンドウの30%以上のトークンを消費してしまうようなケースもあります。
Tool Searchの仕組み
Claude CodeにてTool Searchを有効にすると、会話セッション開始時にClaude Codeは1つMCPツールを除き、ツール定義を読み込まなくなります。その、1つだけ読み込まれるツールがTool Search Toolです。このツールによって必要な時に動的にツール定義を読み込むようになります。
つまりTool Searchを有効にすると、ツール読み込みが静的から動的に変わります。
(特定のツールのみを静的読み込みにするということも可能なようです。詳細は後述するdefer-loadingにて。)
実際に使う
settings.jsonに以下を追加します。
"env" : {
"ENABLE_TOOL_SEARCH": "true"
}
これで、会話セッションを開き、/contextを確認すると
真ん中ら辺の「MCP tools」と書かれた右端に「loaded on-demand」と付いています。
このように、Tool Searchが有効になっていると、「loaded on-demand」と表示されます。
また先ほどは16.4kとなっていたMCP Toolsがなくなっています。その分、コンテキストウィンドウの使用済みトークンも20%から11%となっており、ウィンドウの余剰が大きくなっていることがわかります。
私の環境では5つのMCPサーバーを登録しており、50以上のMCPツールが登録されています。
Tool Searchを有効にした状態でも、問題なくMCPツールの呼び出しができておりました。
もうちょい調べる
機能自体はまだベータリリース
Anthropic has released beta features specifically designed to address this: Tool Search Tool and Programmatic Tool Calling.
defer_loadingによる動的呼び出しの無効化 (Claude Codeではまだ使えなさそう)
Allow tools to be marked with defer_loading: true so they remain discoverable without consuming context tokens at session start. Claude would discover relevant tools on-demand via a search mechanism.
defer_loadingをtrueにしたツールはTool Searchによる動的呼び出しの対象外にできるという記載があります。
Claudeのドキュメントにも以下のような記載があります。
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "anthropic-beta: advanced-tool-use-2025-11-20" \
--header "content-type: application/json" \
--data '{
"model": "claude-sonnet-4-5-20250929",
"max_tokens": 2048,
"messages": [
{
"role": "user",
"content": "What is the weather in San Francisco?"
}
],
"tools": [
{
"type": "tool_search_tool_regex_20251119",
"name": "tool_search_tool_regex"
},
{
"name": "get_weather",
"description": "Get the weather at a specific location",
"input_schema": {
"type": "object",
"properties": {
"location": {"type": "string"},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
},
"defer_loading": true
},
{
"name": "search_files",
"description": "Search through files in the workspace",
"input_schema": {
"type": "object",
"properties": {
"query": {"type": "string"},
"file_types": {
"type": "array",
"items": {"type": "string"}
}
},
"required": ["query"]
},
"defer_loading": true
}
]
}'
MCPサーバーごとにdefer_loadingを設定できるような記述です。
ただまだこちらのdefer_loadingはAPIしか対応していないように思われます(おそらく)。
なので、Claude CodeではまだMCPサーバーごとに静的/動的呼び出しを制御することは出来なさそうです。(まあ、ベータリリースだし)
トレードオフ
Like any architectural decision, enabling the Tool Search Tool involves trade-offs. The feature adds a search step before tool invocation, so it delivers the best ROI when the context savings and accuracy improvements outweigh additional latency.
一概にTool Searchを有効にすれば良いという訳ではなく、動的呼び出しと静的呼び出しはトレードオフであると言うことを理解せよとのことです。
Claude Codeがツールを利用する際、動的呼び出しは、静的呼び出しに比べて「ツールの検索」と言うステップが余分に必要になります。このステップにより、Claude Codeのレイテンシが増加します。
また、ツールが少数(MCPツールの数が10個以下程度)であれば、Claude Codeのツール選択の精度をかえって悪くする可能性もあります。
そのため、ツールの数によってはTool Searchを有効にしないという選択も視野に入れるべきです。
まとめ
- Tool SearchはMCPツールを利用する際にコンテキストトークンの消費を最小限に抑えるためのツール
- 2026/1時点ではベータリリース(defer_loadingはまだ使えなさそう)
- settings.jsonに
"ENABLE_TOOL_SEARCH": "true"だけで有効化可能 - トレードオフ(コンテキスト消費/レイテンシ/精度)は意識した上で利用すべき


