【AI】Claude APIのTool Search Toolで大量のツールを扱う方法

当ページのリンクには広告が含まれています。
いずみ

こんな悩みを解決できる記事を書きました!

僕は現役フリーランスエンジニア(歴年)で、資格は個保有しています。

Claude APIに登録するツール数が増えすぎて困っている」とお考えではありませんか?

MCPサーバーを複数接続していると、ツール定義だけでコンテキストウィンドウを大量に消費してしまいます。

ツール数が増えるほど、Claudeが適切なツールを選べなくなる問題も起きます。

Tool Search Toolを使えば、ツール定義を最初から全部読み込ませず、必要なタイミングで検索・取得させることが可能です。

いずみ

設定はシンプルなので、サクッと解説します。

ということで、本記事ではClaude APIのTool Search Toolで大量のツールを扱う方法を解説します。

スクロールできます
【当サイト】おすすめフリーランスエージェント3選
エージェント評価ポイント公式サイト
レバテックフリーランス

5.0
業界最大級のエージェント。
高単価案件が豊富。
公式
Midworks

4.8
満足度調査で
3年連続3冠を達成。
公式
ITプロパートナーズ

4.6
週2〜3向けの案件が豊富。公式
執筆者/監修者
  • フリーランスエンジニア(保有資格個、企業と直接契約
  • ブログ・アフィリエイト歴7年(2018年〜)
  • ブランドせどりで月利50万円⇨脱サラ
  • 投資(仮想通貨・FX)歴7年(2018年〜)
  • X(旧Twitter)フォロワー約1,900人
  • 運営者情報はこちら
いずみです
目次

Claude APIのTool Search Toolで大量のツールを扱う方法

早速ですが、Claude APIのTool Search Toolで大量のツールを扱う方法を解説します。

Tool Search Toolとは

Tool Search Toolは、数百から数千個のツールをコンテキストに全部載せず、Claudeに検索させてオンデマンドで読み込ませる仕組みです。

GitHub・Slack・Sentry・Grafana・Splunkのような複数のMCPサーバーを繋ぐと、ツール定義だけで数万トークンを消費してしまうケースがあります。

Tool Search Toolを使うと、Claudeが処理中のリクエストで本当に必要な数個のツールだけを検索して読み込むため、消費トークンを大幅に削減できます。

ツール選択の精度が落ちる問題も改善します。

利用可能なツールが30〜50個を超えたあたりから、Claudeが適切なツールを選びにくくなる傾向があります。

Tool Search Toolで絞り込んだ候補だけを提示すれば、ツール数が数千個規模でも選択精度を保てます。

いずみ

MCPサーバーを何個も繋いでいる人ほど恩恵が大きい機能ですね。

regex方式とBM25方式の違い

Tool Search Toolには2つの方式があります。

  • tool_search_tool_regex_20251119: Claudeが正規表現パターンを組み立てて検索する方式
  • tool_search_tool_bm25_20251119: Claudeが自然言語のクエリで検索する方式

regex方式はweatherget_.*_dataのようなパターンで検索する仕組みで、大文字小文字は区別されません。

BM25方式は検索キーワードをそのまま自然文で渡せるため、ツール名の命名規則を意識せずに使えます。

どちらもツール名・説明文・引数名・引数の説明文をまとめて検索対象にします。

実装(コード付き)

Pythonから実装してみます。

STEP
ツール定義にdefer_loadingを設定する

まず、初回から読み込ませたくないツールにdefer_loading: trueを追加します。

Tool Search Tool自体にはdefer_loadingを設定しないよう注意してください。

tools = [
    {
        "type": "tool_search_tool_regex_20251119",
        "name": "tool_search_tool_regex",
    },
    {
        "name": "get_weather",
        "description": "指定した場所の現在の天気を取得する",
        "input_schema": {
            "type": "object",
            "properties": {
                "location": {"type": "string"},
                "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
            },
            "required": ["location"],
        },
        "defer_loading": True,
    },
    {
        "name": "search_files",
        "description": "ワークスペース内のファイルを検索する",
        "input_schema": {
            "type": "object",
            "properties": {
                "query": {"type": "string"},
                "file_types": {"type": "array", "items": {"type": "string"}},
            },
            "required": ["query"],
        },
        "defer_loading": True,
    },
]
STEP
リクエストを送信する

作成したtools配列をそのままmessages.createに渡します。

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-5",
    max_tokens=2048,
    messages=[{"role": "user", "content": "サンフランシスコの天気を教えて"}],
    tools=tools,
)

print(response)

リクエスト送信直後の時点で、Claudeのコンテキストに入っているのはTool Search Toolだけです。

get_weathersearch_filesの定義は、検索で見つかるまで読み込まれません。

STEP
レスポンスのブロックを確認する

Claudeがツールを検索すると、レスポンスにserver_tool_usetool_search_tool_resultのブロックが含まれます。

{
  "type": "server_tool_use",
  "id": "srvtoolu_01ABC123",
  "name": "tool_search_tool_regex",
  "input": {"pattern": "weather", "limit": 10}
}

検索がヒットすると、続けてtool_referenceを含む結果ブロックが返ります。

APIがtool_referenceを完全なツール定義に自動展開してくれるため、展開処理を自前で書く必要はありません。

srvtoolu_で始まるIDに対しては、tool_resultを返さないよう注意してください。

STEP
発見したツールを実行する

Claudeは検索で見つけたツールに対して、通常のtool_useブロックで呼び出しを行います。

実行結果は、通常のツール利用と同じ形式でtool_resultとして返します。

tool_result = {
    "type": "tool_result",
    "tool_use_id": "toolu_01XYZ789",
    "content": "San Francisco: 18C, cloudy",
}

次のリクエストでは、直前のアシスタントの返答をそのまま含めた上で、同じtools配列を送信します。

会話履歴の中でtool_referenceは毎回展開されるため、一度見つけたツールを後続のターンで再検索する必要はありません。

いずみ

展開処理を自分で書かなくていいのは地味にありがたいポイントです。

MCPサーバーのツールに適用する

MCPコネクタ経由のツールでは、個別のツール定義にdefer_loadingを設定しません。

代わりに、mcp_toolsetエントリのdefault_configにまとめて設定するか、サーバー内の個別ツールごとにconfigsで設定します。

MCPコネクタ経由の設定方式であれば、接続しているMCPサーバーが増えても、コード側の変更を最小限に抑えられます。

使う際に気をつけたいポイント

Tool Search Toolを使う上で、いくつか注意点があります。

  • よく使う3〜5個のツールはdefer_loadingを付けず、常に読み込んだ状態にしておく
  • 検索でヒットしやすいよう、ツール名と説明文に具体的なキーワードを含める
  • サービスやリソースごとにgithub_slack_のような命名規則を統一する
  • 全ツールをdefer_loading: trueにすると400エラーになるため、Tool Search Tool自体は対象外にする

ツール数が10個未満で、かつ毎回のリクエストで全ツールを使う場合は、Tool Search Toolを導入せず通常のツール呼び出しのままで十分です。

いずみ

ツールが増えて選択ミスが目立ってきたら、導入を検討するくらいの温度感でいいと思います。

スクロールできます
【当サイト】おすすめフリーランスエージェント3選
エージェント評価ポイント公式サイト
レバテックフリーランス

5.0
業界最大級のエージェント。
高単価案件が豊富。
公式
Midworks

4.8
満足度調査で
3年連続3冠を達成。
公式
ITプロパートナーズ

4.6
週2〜3向けの案件が豊富。公式

【厳選】フリーランスエンジニアにおすすめなエージェント3選

フリーランスエンジニアになるにはエージェントから案件をもらう必要があります。

僕が実際に利用しているおすすめエージェントを紹介しますね。

いずみ

エージェントは必ず複数登録してください。

担当者によっては「全然案件紹介してくれない…」みたいなこともあるので…

僕は実際に5つのエージェントを使い回していますよ。

フリーランスを始めるなら「

案件数マージン率単価
約88,000件非公開
初心者福利厚生申し込み
無料
Good Point
  • 業界最大級の案件数。
  • 業界トップクラスの高単価報酬、低マージン(平均年収862万円)。
  • 案件参画中のフォローの充実。

※詳細は「【業界最大手】レバテックフリーランスとは?メリットや利用手順を解説!」を参照。

は業界最大手のフリーランスエージェントです。

とにかく案件数が多いので、とりあえず登録しておけば間違いないエージェントです!

いずみ

僕もはじめてフリーランスの案件を貰ったのはです。

保有している案件数が多いので、業務経験がなくても何かしらの案件は紹介してもらえますよ(僕はJavaの経験3年でも案件を貰えました)。

手厚い保障を重視したいなら「

案件数マージン率単価
約10,000件非公開
初心者福利厚生申し込み
無料
Good Point
  • 手厚い保障で正社員並みの安心感。
  • 還元率60%超え&単価公開でクリアな契約。
  • 給与保障制度(審査あり)。

は手厚い保障が特徴のフリーランスエージェントです。

フリーランスを目指しているけど不安な方や保障を重視したい方におすすめです。

いずみ

僕も何度か案件を紹介してもらいました。

自分のスキルに合った案件を紹介してもらえましたし、電話のやり取りも非常に丁寧でした。

週2〜3日の案件探しなら「

案件数マージン率単価
約5,000件非公開
初心者福利厚生申し込み
経験者向け無料
Good Point
  • IT案件に特化したフリーランスエージェント。
  • 週2〜3日の案件が豊富。
  • リモート案件が多く、直エンドなので単価も高い。

※詳細は「【週2・3案件】ITプロパートナーズとは?メリットや利用手順を解説!」を参照。

はIT案件に特化したフリーランスエージェントです。

週2〜3日から参画できる案件が豊富なので、起業したい人にもおすすめです。

いずみ

週2〜3日の案件はある程度スキルがないと紹介してもらえない印象です。

とはいえ、週5の案件ももちろんありますし、僕が利用した時は迅速・丁寧に対応していただきました!

よくある質問

regex方式とBM25方式はどちらを選べばいいですか?

ツール名や説明文にはっきりしたパターンがある場合はregex方式が向いています。

命名規則が揺れていたり、自然な言葉で探したい場合はBM25方式のほうが扱いやすいです。

どのくらいのツール数からTool Search Toolを検討すべきですか?

公式ドキュメントでは、ツールが10個以上、またはツール定義が1万トークンを超える場合が目安とされています。

複数のMCPサーバーを束ねて200個以上のツールを扱う構成でも効果を発揮します。

Tool Search Toolを使うと料金は増えますか?

Tool Search Tool自体は個別課金されるサーバーツールではありません。

検索によって読み込まれたツール定義は、通常のツール定義と同じく入力トークンとしてカウントされます。

まとめ

今回は、Claude APIのTool Search Toolで大量のツールを扱う方法について解説しました。

以下が本記事のまとめになります。

まとめ
  • Tool Search Toolは、大量のツール定義を検索してオンデマンドで読み込む仕組み。
  • ツールにdefer_loading: trueを付けるだけで導入でき、コンテキスト消費とツール選択精度を改善できる。
まとめ
いずみ

最後までお読みいただき、ありがとうございました!

スクロールできます
【当サイト】おすすめフリーランスエージェント3選
エージェント評価ポイント公式サイト
レバテックフリーランス

5.0
業界最大級のエージェント。
高単価案件が豊富。
公式
Midworks

4.8
満足度調査で
3年連続3冠を達成。
公式
ITプロパートナーズ

4.6
週2〜3向けの案件が豊富。公式
  • クソおすすめ本
¥4,480 (2024/06/01 23:28時点 | Amazon調べ)
いずみ

海外のエンジニアがどういった思考で働いているかが理解できます。

海外に行く気はないけど海外エンジニアの動向が気になる雑魚エンジニアにおすすめです(本当におすすめな本しか紹介しないのでご安心を)。

この記事が気に入ったら
フォローしてね!

シェアしてね!
  • URLをコピーしました!
目次