AnthropicがModel Context Protocol(MCP)の最大の課題であったツール定義によるコンテキストウィンドウの圧迫問題を解決した。従来、MCPサーバー接続時に全ツール定義が一度にロードされ、大量のトークンを消費していたが、新たに導入されたツール検索機能により、必要なツールのみを動的にロードすることが可能になった。これにより最大85%のトークン削減が実現し、特に多数のツールを持つMCPサーバーにおいて劇的な改善が期待できる。本動画では、正規表現ベースとBM25ベースの2つの検索メカニズムの違い、ツール説明文の最適化手法、そしてMCPクライアントおよびサーバー開発者向けの具体的な実装方法を詳細に解説している。

MCPのコンテキストウィンドウ問題とその解決策
AnthropicがModel Context Protocolの最も大きな問題の一つを解決しました。それはMCPサーバーに接続する際のツール定義の扱い方です。
デフォルトでは、新しいMCPサーバーに接続すると、そのサーバー上で利用可能な全てのツールの定義が読み込まれます。その結果、会話メッセージを一つも送信していないのに、コンテキストのかなりの部分がこれらのツールによって占有されてしまうのです。
この問題が特に深刻なケースもあります。例えば、GitHub MCPはこの現象の良い例です。MCPサーバーとの接続時に約91種類の異なるツールが読み込まれ、約46,000トークンを消費していました。これはOpus 4.5で利用可能なコンテキストウィンドウ全体の約22%にあたります。
これは私が過去の動画で何度も言及してきた大きな問題でしたが、ついにMCPツール検索によって解決されました。これによりMCPが使用するコンテキストを大幅に削減できるようになったのです。
ツール検索の仕組みと動作原理
全てのツール定義を読み込む代わりに、ツール検索機能によってClaudeは必要な時に動的にツールをコンテキストに読み込めるようになりました。
この動画では、この新しいツール検索ツールが具体的に何なのか、そして開発者としてどのように使用するのかをお見せしたいと思います。MCPクライアントを構築している場合も、MCPサーバーを構築している場合も、両方のケースをカバーします。
問題が何なのかについては既に説明しました。多くのツールを持つMCPサーバーに接続すると、コンテキストウィンドウが本当に汚染されてしまうのです。
Anthropicは以前、コード実行の使用を推奨していました。これもトークン数を大幅に削減し、MCPをファイルシステムとして扱うことでツールを探します。今回の作業は、以前のコード実行ワークフローの延長線上にありますが、2つの異なるタイプの検索メカニズムを使用しています。
例えば5から10の異なるMCPサーバーに接続し、それぞれに10から20の異なるツールがある場合、コンテキストウィンドウは通常このような見た目になります。これはコンテキストウィンドウのかなりの割合を占めています。
しかしツール検索ツールを使えば、全てを事前に読み込むのではなく、特定のツールを探して動的に読み込むことになります。
ツール検索の重要な特徴
ただし、いくつか覚えておくべきことがあります。これはMCPツール定義がコンテキストウィンドウの10%以上を占める場合にのみ使用されます。理論的には約85%のトークン削減が可能で、一度に3から5の異なるツールを動的に使用または読み込みます。
ツール検索ツールを使用した後のコンテキストウィンドウはこのような見た目になるはずです。
仕組みはこうです。まずClaudeまたは任意のクライアントは、単一のツールとしてツール検索ツールのみをコンテキストウィンドウに読み込みます。Claudeがクエリを作成すると、システムはツールカタログを検索し、3から5つの関連ツールを見つけようとします。その後、それらの3から5つの関連ツールの完全な定義のみを読み込みます。
2つの検索アプローチ
このアプローチには2つの異なるバリエーションがあります。1つ目は正規表現ベースです。この場合、Claudeはweatherやget star dataのようなパターンを書きます。これらはツールが一貫した命名規則に従っている場合に最適です。
一方、BM25というキーワードベースの検索メカニズムもあります。Claudeは「天気用のツール」や「データベース操作」のような自然言語クエリを書きます。これは関連性ランキングを伴うセマンティック検索です。
ここでは埋め込みを使用していません。主にキーワードベースの検索メカニズムであり、ツール名と説明が多様な場合に優れています。ツール定義が一貫した名前に従っているか、より説明的で名前定義が多様かに応じて、これらのアプローチのいずれかを選択する必要があります。
開発者向け実装ガイド
では、このツールを使用したい場合に、サーバーとクライアントの両方としてツールの実装をどのように考えるべきかについて話しましょう。
開発者としてのあなたの仕事は、ツールを見つけやすくすることです。Claudeがツールを検索する際、適切なものを見つける必要がありますが、どうやって手助けすればよいのでしょうか。
まず考慮すべきはツール説明の最適化です。これがあなたの武器庫の中で最大のレバーです。
変更前と変更後の2つの例を見てください。これらは全く同じアイデアを伝えようとしている2つの説明です。1つ目は繰り返しが多く、冗長で、多くのトークンを使用しています。一方、2つ目ははるかに簡潔です。基本的に「現在の天気、予報、または過去のデータを取得する」となっており、このツールの機能を最初に置き、2番目の部分ではシステムが探す可能性のあるキーワードを入れているだけです。
ツール定義説明のベストプラクティス
ツール定義の説明に関するベストプラクティスは以下の通りです。
1つ目は機能を先頭に置くことです。これが最初の文であるべきです。1から2文に収めてください。それだけです。
fetch、get、retrieveなどの検索可能なキーワードを追加してください。同義語もClaudeがツールを見つけるのに役立ちます。
制約は説明ではなく入力スキーマに入れてください。説明は発見のためのものです。スキーマは検証のためのものです。これは本当に注意を払う必要があることです。
そして5つ目、すべての単語がトークンを消費します。ツール説明の最適化には容赦なく取り組んでください。
知っておくべき別のフィールドがあります。それはサーバー指示です。これはClaudeがツールをどのように使用するかをガイドするシステムプロンプトのようなフィールドです。
この簡単な例を見てください。PR操作の場合、まずPRステータスをチェックしてから、PRを表示または承認します。つまり、Claudeにワークフローを伝えているのです。
ツール検索が有効な場合、ここでの順序は非常に重要です。これによりClaudeは、いつどのツールを検索すべきかを理解できます。
MCPクライアント側の実装手順
クライアント側の開発者として、MCPクライアントを構築している場合、ツール検索を実装する方法は次の通りです。シンプルな4ステッププロセスです。
ステップ1、ベータを有効にする必要があります。APIリクエストのヘッダーにこれを追加してください。このヘッダーがないと、ツール検索は機能しません。現時点では必須です。
ステップ2、ツール検索ツールをツールエリアに追加します。これは使用する追加のツールであり、正規表現ベースまたはBM25ベースのツール検索ツールのいずれかを選択できます。
最も重要なことの1つは、このツールに遅延ロードを設定しないことです。即座に読み込む必要があります。
ステップ3、遅延ロード用にツールをマークします。MCPサーバーが接続された際に即座に読み込みたくないツールに、この特定のキーワードを追加する必要があります。
これによりシステムに「このツールを最初に読み込まないで。Claudeが検索した時に読み込んで」と伝えます。そしてこれがトークン使用量で最大の節約が得られる時です。
ステップ4、必須ツールは読み込まれた状態に保ちます。全てを遅延させるべきではありません。最も頻繁に使用する3から5つのツールは、遅延ロードなしで保持してください。
パターンはこのようになります。必須ツールについては遅延ロードをfalseに設定します。これらは自動的に読み込まれるツールです。そして検索したいツールについては、単純にこの遅延ロードをtrueに設定します。
ここでのバランスは、一般的な操作への即座のアクセスと、その他すべてに対する検索ベースのアクセスです。これは異なるMCPサーバー内の異なるツールに対して行うことができます。
実装チェックリスト
これを使用する場合の簡単な実装チェックリストは以下の通りです。8つの異なるステップがあります。
まずヘッダーを有効にします。次にツール検索ツール、正規表現またはBM25のいずれかを追加します。これはあなたの選択です。
3番目に、非必須ツールに遅延ロードをtrueとしてマークします。3から5つの必須ツールは遅延ロードなしで保持します。
そしてツール説明を最適化します。機能を先頭に置き、キーワードを追加します。
6つ目、サーバー指示を追加します。これによりClaudeがワークフローを理解できます。
7つ目、30以上のツールでテストします。そこで最大の改善が見られるでしょう。
最後の1つは、使用状況を使ってコンテキストを監視する必要があることです。変更前と変更後を追跡する必要があります。
より広く利用可能になったら、これを行う方法について別の動画を作成する予定です。
ツール検索を使用すべき場合
では、いつツール検索を使用すべきでしょうか。10以上のMCPツールがあり、エージェントのコンテキストの10%以上を占めている場合は、間違いなくツール検索ツールの使用を検討すべきです。
3から5つのツールしかない場合、すべてのツールが頻繁に使用される場合、またはレイテンシが絶対的に重要な場合はスキップしてください。検索ベースの探索はレイテンシも増加させるためです。
よくある落とし穴
考慮すべき一般的な落とし穴があります。
1つ目は、ツール検索ツール自体を遅延ロードしないでください。これは目的を台無しにします。
説明を短くしすぎないでください。検索にはキーワードが重要です。なぜなら「get weather」よりも「get current weather forecast or historical data」の方が優れているからです。
3つ目、遅延ロードなしで保持するツールを多くしすぎないでください。何も遅延ロードしなければ、全く利益が得られません。
以上です。これがツール検索ツールです。実装してください。あなたのコンテキストウィンドウが感謝するでしょう。
特定の実装の詳細について質問がある場合は、コメント欄に書いてください。答えられるよう努めます。MCPツールを構築している方、またはMCPツールを使用している方で、このコンテンツが役に立ったと思われた場合は、チャンネル登録をご検討ください。
とにかく、この動画が役に立ったことを願っています。ご視聴ありがとうございました。いつものように、次回お会いしましょう。


コメント