選択プロセス
複数のMCPサーバーが接続されている状態でAIアシスタントに質問すると、モデルはまずツールを使うべきかどうかを判断し、使うとすればどのツールを呼び出すかを決める必要があります。この判断は、サーバー接続時に読み込まれるツールの説明文、ユーザーのリクエスト、各ツールの能力に対するモデルの理解に基づいて行われます。
モデルは本質的に、あなたのリクエストを利用可能なツールの説明文にパターンマッチングしています。「プロジェクトディレクトリにどんなファイルがあるか」と尋ねたときに、「指定したディレクトリ内のファイルを読み取り検索する」と説明されたファイルシステムツールがあれば、対応関係は明白です。しかし「プロジェクトに関する情報を見つけて」のような曖昧な質問の場合、モデルはファイルシステムツール、Web検索ツール、データベースツールのどれもが関連し得るなかから、選択を迫られます。
判断に影響する要素
ツールの説明文が最大の影響要素です。何をするツールか、どんな場面で使うべきか、何ができないかを明確に書いた説明文があれば、モデルは精度の高い選択ができます。「汎用データツール」のような曖昧な説明では、モデルが手がかりを掴めません。
パラメータスキーマも選択に影響します。タスクに必要なものとツールのパラメータが密接に一致していれば、そのツールが選ばれる可能性は高まります。「sql_query」というパラメータを必要とするツールは、ユーザーがデータに関する質問をしたときに強くマッチします。「file_path」を必要とするツールは、特定のファイルについての質問に強くマッチします。
モデル自身の学習も役割を果たしています。モデルは訓練データから、リクエストの種類とツールの種類の関連付けを学んできました。データベース関連の質問はデータベースツールの利用を、ファイル関連の質問はファイルシステムツールの利用を、それぞれ誘発しやすくなります。こうして学習された関連付けが出発点を提供し、ツールの説明文がそれを補強したり上書きしたりします。
選択がうまくいかないとき
ツール選択の誤りには、誤ったツールを使うパターンと、本来使うべき場面でツールを使わないパターンの2つがあります。誤ったツール選択は、たいていツールの説明文が曖昧であることが原因です。2つのツールがどちらももっともらしくリクエストを処理できそうに見える場合、モデルが間違った方を選ぶ可能性が出てきます。
曖昧なツール説明への対処は、より具体的にすることです。「情報を検索する」ではなく「ローカルファイルシステムでパターンに一致するファイルを検索する」と書きましょう。「データを取得する」ではなく「接続されたPostgreSQLデータベースに対して読み取り専用のSQLクエリを実行する」と書きましょう。具体性が曖昧さを減らし、選択精度を高めます。
ツールが全く使われない場合は、モデルがそのリクエストをツール利用が必要なものと認識できなかったケースが多くあります。ユーザーの言い回しがツール説明文と十分に近くない場合に発生します。リクエストの言葉をツールの用語に近づけて言い換えると、たいてい解消します。
選択を改善するための設定
あなたが使うMCPサーバーを管理できる立場であれば、ツール説明文の最適化は最も効果の高い改善策の1つです。それぞれのツールの説明文、名前、パラメータスキーマを見直してみましょう。「文脈なしにこの説明だけを読んで、自分はいつこのツールを使うべきか正確に分かるだろうか?」と自問してみるのです。
否定的な記述(このツールを使うべきでない場面)を加えるのも有効です。「本番データベースに対するSQLクエリにはこれを使ってください。ファイル操作やWeb検索には使わないでください」と書けば、モデルに明確な境界線を示せます。
類似ツールが複数接続されている場合(例: 異なる2つのデータベースサーバー)は、それらを明確に差別化しましょう。「顧客データを持つPostgreSQL本番データベース」と「ローカルのSQLite分析データベース」のように書けば、「データベースツール1」「データベースツール2」よりもはるかに区別しやすくなります。