Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】I open-sourced a linter for MCP tool descriptions

2026年10月08日に「Dev.to」が公開したITニュース「I open-sourced a linter for MCP tool descriptions」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

AIエージェントが使用するツールの説明文の品質をチェックするリンター「Forecall」がオープンソース化された。AIがツールを適切に選ぶため、「いつ使うか」など、より詳細な情報が記述されているかスコア化し、改善点を指摘する。これにより、AIのツール誤選択を防ぎ、効率的な開発を支援する。

ITニュース解説

近年、AI技術は急速に進歩し、単に質問に答えるだけでなく、特定のタスクを実行するために外部のツールを利用する「AIエージェント」が登場している。例えば、カレンダーに予定を登録したり、データベースから情報を検索したりといった具体的な作業を、AIが自律的に判断して実行する仕組みだ。このようなAIエージェントが適切に機能するためには、利用可能なツールが「いつ、どのように使われるべきか」を正確に理解する必要がある。

しかし、現在多くのツールが提供する説明文は、人間が読むことを前提に書かれている場合が多い。例えば、プログラム開発者がソースコードのコメントやドキュメントを読むように、既にツールの存在や文脈を知っている人間に向けて記述されているのだ。しかし、初めて出会う膨大な数のツールの中から最適なものを選ぼうとするAIエージェントにとっては、こうした人間向けの記述では情報が不足してしまうという問題がある。AIエージェントは、ただツールの名前や大まかな説明が書かれているだけでは不十分で、「このツールはどのような状況で使うべきか」「何が入力として必要で、何が結果として返ってくるのか」「似た機能を持つ他のツールとどう使い分けるのか」といった、より具体的な情報が必要となる。もしこれらの情報が不明瞭だと、AIエージェントは間違ったツールを選んでしまったり、タスクを効率的に実行できなかったりする可能性がある。

このような課題を解決するために開発されたのが「Forecall」というツールだ。Forecallは、AIエージェントが利用するツールの説明文が、どれだけ分かりやすく、かつ情報が充実しているかを自動的にチェックする「リンター」と呼ばれる役割を果たす。リンターとは、コードやテキストの品質を自動で分析し、問題点や改善点を指摘してくれるツールのことだ。Forecallは、現在オープンソースとして公開されており、誰でも自由に利用できる。

Forecallの使い方は非常にシンプルだ。まず、npx forecall dumpというコマンドを使って、評価したいサーバーからAIエージェントが利用するツールの情報(名前、説明、入力スキーマなど)を取得し、JSON形式のファイルに保存する。次に、保存したファイルをnpx forecall lintコマンドでForecallに渡すと、ツールの説明文を分析し、詳細なレポートを出力してくれる。

例えば、ある公式サーバーのツールをForecallで分析した結果、平均スコアが100点満点中43.8点と低い評価になった事例がある。このサーバーには9つのツールがあり、その中に「delete_entities」と「delete_relations」という紛らわしい2つのツールが含まれていた。Forecallのレポートでは、これらのツールが「似たような説明で、どちらをいつ使うべきか不明瞭である」と指摘された。具体的には、名前の類似性が33%、説明の類似性が62%と高く、AIエージェントがどちらを使うべきか迷いやすいことが示されている。また、「delete_relations」ツールに関しては、目的が不明確、いつ使うべきかの記述がない、説明が短すぎる、といった具体的な問題点が指摘され、それぞれがMajor(主要な問題)として挙げられている。このような指摘は、AIエージェントが誤った操作をしてしまうリスクに直結するため、改善が強く求められる。

Forecallは、ツールの説明文を以下の6つの観点から評価し、それぞれに点数をつけて合計100点満点でスコアを算出する。

一つ目は「目的」で20点満点だ。ツールの具体的な機能が、名前を繰り返すだけでなく明確に説明されているかを確認する。 二つ目は「いつ使うか」で20点満点だ。特定の状況での使用条件や、似た機能を持つ他のツールとの明確な使い分けが記述されているかを評価する。 三つ目は「引数」で25点満点だ。ツールに渡す各引数の説明が詳細で、データ型が適切に定義され、必須項目かどうかが明記されているかを見る。 四つ目は「戻り値」で15点満点だ。ツールを実行した結果として何が返ってくるのか、その形式や内容が具体的に説明されているかをチェックする。 五つ目は「制約と副作用」で10点満点だ。ツールを実行する上での前提条件、認証の必要性、使用回数制限(レートリミット)、そして実行によってシステムにどのような影響(副作用)があるかなどが記述されているかを評価する。 六つ目は「例」で10点満点だ。実際にツールをどのように呼び出すかの具体的な使用例が示されているかを確認する。

これらの個別ツールの評価に加えて、Forecallはサーバー全体の問題も指摘する。例えば、ツールが多すぎること、互いに紛らわしいツールが多いこと、あるいは複数のツールが同じような長文の段落で説明されていることなどだ。すべての指摘事項にはコードと重要度が割り当てられており、開発者は一つずつ優先度に応じて改善を進めることができる。

Forecallは開発プロセスに組み込むことも可能だ。例えば、ソフトウェアの品質を継続的にチェックするCI/CD(継続的インテグレーション・継続的デリバリー)パイプラインに導入できる。--fail-under 60のようなオプションを指定すれば、ツールの平均スコアが60点を下回った場合にテストを失敗させ、自動的に品質の低下を防ぐことができる。また、レポートをJSON形式で出力することも可能で、他のシステムと連携して分析を行うことも容易だ。

セキュリティ面でも配慮がなされている。Forecallの分析はオフラインで実行され、lintコマンド自体がインターネットに接続することはない。ネットワーク通信を行うのはdumpコマンドのみで、これも指定されたサーバーからツール情報を取得する際に限られる。取得された情報に、認証情報や環境変数などの機密情報が含まれることはなく、プライバシーが保護される設計になっている。

ただし、Forecallのスコアはあくまでツール記述のテキストやスキーマに基づいた形式的な評価である点には注意が必要だ。例えば、「ブラウザを閉じる」といった非常にシンプルで直感的な機能を持つツールの記述は、短いためにスコアが低くなることがあるが、実際にはAIモデルが正しく利用できる場合もある。逆に、高いスコアが出たからといって、AIモデルが必ずしも最適なツールを選択するという保証もない。Forecallは、AIエージェントにとってより分かりやすいツール記述を作成するための「手がかり」や「指針」として活用し、改善すべき点を見つけるツールだと理解することが重要だ。

Forecallのチームは、実際にこのリンターを多くのサーバーに適用し、興味深い事実を発見している。最もよく利用される46のサーバーに含まれる1118個のツールのうち、実に69%にあたる769個のツールが「いつ使うべきか」という最も重要な情報を記述していなかったという。この調査結果は、Forecallのようなツールの必要性を強く裏付けるものだ。

Forecallの評価ルールはまだバージョン1であり、さらに改善の余地がある。開発チームは利用者からのフィードバックを歓迎しており、例えば「紛らわしいと指摘された2つのツールがあった場合、それぞれの説明文の中で相手のツールの名前を挙げて、違いを明確にするべきだ」という提案が既に取り入れられる予定だ。このような対話を通じて、ForecallはAIエージェントのためのより高品質なツール記述の実現に貢献していくことが期待される。

関連コンテンツ

関連IT用語