【ITニュース解説】How many tools should an MCP server have?
2026年09月14日に「Dev.to」が公開したITニュース「How many tools should an MCP server have?」について初心者にもわかりやすく解説しています。
ITニュース概要
MCPサーバーのツール数は約30個が適切だ。ツールが多すぎると説明文が似通い、AIモデルがツールを識別しにくくなる。重要なのは、各ツールの説明で、そのツールが他のツールとどう違うかを明確にすることだ。
ITニュース解説
MCPサーバー上で管理するツールの数について、最適な規模はどれくらいかという疑問は、多くの開発者が抱える課題である。この疑問に答えるため、大規模な調査が行われた。この調査では、約5,000の公開MCPサーバーから、合計8万を超えるツールと27万を超えるパラメータの定義が分析された。その結果、ツールの数が約30を超えると、AIモデルがツールを区別しにくくなる傾向があることが明らかになった。サーバーそのものが故障するわけではなく、自動で処理を振り分けるAIシステムが、適切なツールを選べなくなるという問題が生じるのだ。
この問題の鍵は、各ツールの説明文に含まれる「識別力」にある。具体的には、そのツールにしか使われない「独特な言葉の割合」がどれだけあるかが重要になる。この割合がゼロに近いツール、つまり他のツールと共通の言葉ばかりで説明されているツールは、AIモデルがツール名だけで判断せざるを得なくなり、適切なツールを特定できなくなる可能性が高まる。
調査データは、ツール数が増えるほどこの問題が悪化することを示している。ツール数が1~3個のサーバーでは、ほとんど識別力の低い説明は存在しないが、ツール数が31~60個になると、約16%のツールに独特な言葉が全く含まれなくなる。そして、61個以上のツールを持つサーバーでは、約3分の1ものツールが他のツールと区別できない説明文になってしまうという驚くべき結果が出ている。この悪化は、単純にツールが増えることによる偶然の重複だけでなく、ツール数が約30個あたりから、開発者がツール説明を個別に書くのをやめ、テンプレートから生成し始めることが大きな要因であると指摘されている。テンプレートは、意図せずして似たような説明文を量産してしまい、結果的にAIモデルがツールの違いを認識しにくくなるのだ。例えば、あるサーバーでは275個すべてのツールに同じ51語の共通説明ブロックが付け加えられており、これでは個々のツールの違いをAIモデルが把握することは非常に困難になる。
ここで重要なのは、「正しく書かれた説明」と「識別できる説明」は必ずしも同じではないという点だ。Gmailサーバーの例を挙げると、「ドラフトメールを削除する」や「ラベルを一覧表示する」といったツールの説明は、個々のツールとしては非常に明確で正しい英語で書かれている。しかし、「削除」「ドラフト」「メール」「Gmail」「リスト」「ラベル」「メールボックス」といった言葉は、そのサーバー内の他のツールでも頻繁に使われる共通語である。そのため、これらの説明は「何をこのツールができるか」は伝えるが、「このツールが他のツールとどう違うか」という、AIモデルが選択時に必要とする決定的な情報を提供できていない。AIモデルにとっての「良い説明」とは、個々の正しさだけでなく、そのツールを他のツールから明確に区別できる対比的な情報が含まれていることを意味する。
また、ツールの説明の問題とは別に、ツールのパラメータ自体も約20~25%が全く説明されていない状況が確認されている。この問題はサーバーのツール数に関わらず発生しており、ツールの説明の重複問題とは独立して修正が必要である。たとえツールの説明が完璧でも、パラメータが不明瞭では、AIモデルは正しい処理を行うことができない。
では、ツールの数が多くなった場合、サーバーを分割すべきなのだろうか。調査では、単にツールの数が特定の値を超えたからといって、すぐにサーバーを分割すべきではないと結論づけている。重要なのは、ツールの説明に「実際の重複」が生じているかどうかの見極めである。たとえば、40個のツールを持つサーバーでも、それらすべてが異なる機能や対象を扱っているならば問題なく機能する場合がある。一方で、12個のツールしかないサーバーでも、「検索」のバリエーションが多数あるような場合は、ツールの見直しや分割が必要かもしれない。
この判断の目安として、すべてのツール説明を一つのブロックとして読み上げ、AIモデルがこれを受け取る状況を想定して自問すると良い。その上で、もし似たようなリクエストがあった場合に、どのツールを選ぶべきか、迷わずに判断できるかを試す。開発者の記憶や外部のドキュメントに頼らず、純粋にツールリストだけで判断することが肝要だ。
もし判断に迷いが生じた場合、問題解決のためのアプローチとして主に三つの選択肢がある。一つ目は、説明文を改善することだ。明確さだけでなく、「これは他のツールとどう違うか」という「対比」の視点を持って説明を書き直す。すべてのツールに共通の長い前文が付いている場合、それはかえって識別の妨げになる可能性もある。二つ目は、類似する複数のツールを統合することだ。例えば、複数の「検索」ツールを、一つの検索ツールと「スコープ」などのモードを指定するパラメータで機能選択させる形に集約する。これにより、AIモデルの選択が「どのツールか」から「どの値か」へと変わり、選択肢を限定しやすくなる。そして三つ目は、サーバーを分割することだ。ツールの機能が明確に異なる複数のドメインに属する場合に有効な手段だが、サーバーの管理対象が増えるという側面も考慮が必要となる。
最後に、この調査は、ツール定義の静的な分析に基づいているため、実際にAIモデルがどのくらいの頻度で誤作動を起こすかまでは不明であるという限界も認識しておくべきだ。ツール名が非常に明確な場合、説明の重複があっても問題なく機能する可能性もある。実際のAIの振る舞いを評価するには、稼働中のモデルからのフィードバックが必要となるため、これは今後の研究課題である。また、パラメータの記述不足の件も、「クエリ:クエリ」のように実質的な情報を提供しない説明も「記述済み」とカウントされているため、実際の情報不足はさらに深刻かもしれない。