[論文紹介#257]MCPサーバーの評価報告書

Evaluation Report on MCP Servers

この論文は、モデルコンテキストプロトコル(MCP)サーバーの効果と効率を評価するためのフレームワークMCPBenchを提案し、実験を通じてMCPサーバーの精度向上の可能性を探るものです。

この論文は、MCPサーバーの性能を評価するための新しいフレームワークMCPBenchを提案し、宣言的インターフェイスを活用することで精度を劇的に向上させる可能性を示唆しています。

論文:https://arxiv.org/abs/2504.11094
リポジトリ:https://github.com/modelscope/MCPBench


以下は、弊社AI開発ツール「IXV」を用いてこの論文を要約したものです。見出しや章立てが元論文とは異なる場合があります。

概要

大規模言語モデル(LLMs)の台頭に伴い、2024年末から多くのモデルコンテキストプロトコル(MCP)サービスが登場しました。しかし、MCPサーバーの有効性と効率性は十分に研究されていません。

これらの問題を研究するために、MCPBenchと呼ばれる評価フレームワークを提案します。広く使用されているいくつかのMCPサーバーを選定し、それらの精度、時間、トークン使用量に関する実験評価を実施しました。実験の結果、最も効果的なMCPであるBing Web Searchが64%の精度を達成しました。

重要なことに、宣言的インターフェイスを取り入れることでMCPサーバーの精度を大幅に向上させることができることが分かりました。この研究は、最適化されたMCPの実装に関するさらなる調査の道を開き、最終的にはより良いAI駆動のアプリケーションとデータ取得ソリューションに繋がります。

エグゼクティブサマリー

  1. MCPサーバー間には効果と効率に著しい差があり、MCPの使用は関数呼び出しと比較して顕著な改善を示していない。
  2. MCPサーバーの有効性は、LLMによって構築される必要があるパラメータを最適化することで向上させることができる。

1. 序論

Model Context Protocol (MCP) は、AIモデルがローカルおよびリモートリソースと標準化されたサーバー実装を通して安全に対話できるようにするオープンプロトコルである。数千のMCPが最近数ヶ月で提案され、OpenAIやAlibaba-cloudなどの複数のモデルプラットフォームが彼らのLLM製品でMCPのサポートを発表している。MCPサーバーの有効性と効率性を研究するため、広く使用されているいくつかのMCPサーバーを選択し、MCPBenchを使用して精度、時間、トークン使用量について評価実験を行った。ウェブ検索とデータベース検索の2つのタスクに焦点を当て、すべてのMCPサーバーを同じLLMとプロンプトを使用して制御された環境で比較した。

2. タスクとデータセット

MCPは、計算、メモリ管理、ウェブ検索、データベース対話など複数のタスクを含み、2つのグループに分類できる:

  • データ取得:様々なソースからデータを取得してLLMがタスクを完了するのを支援する。これらのMCPの有効性は、取得したデータの正確性によって決まる。
  • 世界変更:これらのMCPは世界の状態を変更する。その有効性は状態が正常に変更されたかどうかに依存する。

この評価レポートは、データ取得タスクに焦点を当て、具体的には2つのタスクを含む:

1) ウェブ検索

このタスクは質問を入力として受け取る。LLMはそれをキーワードや短い文章に書き換え、通常はインターネットを検索してLLMに結果を返すツールを使用する。バイアスを排除するため、データセットには中国語と英語の両方の言語にわたる様々な分野の複数のデータソースを導入している。

2) データベース検索

データベース検索、またはデータベース対話は、データベースとのデータ検索タスクである。このタスクは質問を入力として受け取り、LLMはデータベースMCPサーバーを通じてデータベースからデータを取得する。様々なソースからデータセットを収集した。

3. MCPサーバーの概要

GitHubとSmithary.AIから、2025年4月に最も多くの呼び出し記録を持つMCPサーバーを選択した。

3.1 ウェブ検索関連MCP

  • Brave Search:Braveの検索APIを利用したウェブおよびローカル検索
  • DuckDuckGo Search Server:DuckDuckGoを通じたウェブ検索機能を提供
  • Tavily MCP Server:Tavilyによる検索エンジン
  • Exa Search:Exaによって設計されたAI用検索エンジン
  • Fire Crawl Search:Firecrawlを使用してウェブデータを抽出
  • Bing Web Search:Microsoft Bing検索APIと統合するためのサーバー
  • BochaAI:グローバルな高品質知識へのアクセスを提供するAI用検索エンジン

3.2 ウェブ検索関連関数呼び出し

比較のために、いくつかの関数呼び出しも含めた:

  • Qwen Web Search:Qwen-Max-0125が提供するSDKを使用したオンライン検索
  • Quark Search:天気、為替レート、時事など不明な情報の検索に特に役立つ検索エンジン

3.3 データベース検索関連MCP

  • XiYan MCP Server:XiyanSQLをテキストからSQLへのLLMとして使用し、データベースからの自然言語クエリによるデータ取得をサポート
  • MySQL MCP Server:MySQLデータベースとの安全な対話を容易にする実装
  • PostgreSQL MCP Server:PostgreSQLデータベースへの読み取り専用アクセスを提供するサーバー

4. 評価基準

4.1 精度

回答の正確性を評価するために、LLMベースの採点者によって評価される。DeepSeek-v3を採点者として使用し、各サンプルの精度は採点者が「True」と返す場合は1、そうでなければ0とする。全体的な精度はすべてのサンプルの平均である。

4.2 時間消費

LLMとMCPサーバーの両方のレイテンシを含むエンドツーエンドの時間消費を収集する。この基準はMCPの効率性を反映している。

4.3 トークン消費

実験中に使用されるプリフィル(プロンプト)と完了トークンを記録する。トークン消費は発生するコストに影響を与える。

4.4 その他のセットアップ

シンガポールのサーバー上でデュアルコアCPUと2GBのRAMを使用して実験を実行。評価フレームワークとしてMCPBenchを使用。タイムアウトは30秒に設定。ウェブ検索用とデータベース検索用に特定のシステムプロンプトを使用。

5. 比較分析

5.1 質問1:MCPサーバーは実際に効果的かつ効率的か?

実験結果から以下の観察が得られる:

  1. 有効性の差は著しい。有効なサンプルの精度に基づくと、最高精度はBing Web Search(64%)で、DuckDuckGoは最低の10%であり、54パーセントポイントの差がある。
  2. 効率性の差はさらに顕著。有効なサンプルの平均消費時間について、最速はBing Web SearchとBrave Searchで15秒未満を要するのに対し、最も遅いExa Searchは231秒を要する。
  3. トークン消費は類似している。有効なサンプルの出力トークン数に基づくと、消費は一般的に150から250トークンの間であり、モデルが一貫して不必要な説明なしに簡潔な回答を提供していることを示している。

5.2 質問2:MCPは関数呼び出しと比較して高い精度を提供するか?

関数呼び出し(Qwen Web Search)と上記のMCPサーバーのパフォーマンスを比較した。両方の関数呼び出し(Qwen Web SearchとQuark Search)は競争力のある精度と時間消費を示している。Qwen Web Searchの精度は55.52%で、Exa Search、DuckDuckGo、Tavily、Brave Searchの精度を上回っている。

5.3 質問3:パフォーマンスを向上させるには?

データベース検索タスクを考慮して、この質問に対処した。MySQL MCPサーバーはデータベース接続の単純なカプセル化を実装している。このシンプルなカプセル化はMCPとして機能するが、SQLクエリ文の構築という最も困難な部分をLLMに割り当てている。

この課題を軽減するために、宣言的インターフェース方法を導入した。主なアイデアはMCPの構造的パラメータを宣言的インターフェースに置き換えることである。実験では、XiYan MCPサーバーと呼ばれる更新版を開発し、SQLの代わりに自然言語を使用した。これにより、MySQL MCPサーバーと比較して2パーセントポイントの精度向上が見られた。PostgreSQL実験では、最適化により22ポイントの向上が見られた。

結論

様々なModel Context Protocol(MCP)サーバーの評価は、有効性と効率性の両方において著しい差異を浮き彫りにしている。MCPはツール使用の構造化において明確な利点を提供するが、関数呼び出しなどの非MCP手法と比較して一貫して顕著な改善を示していない。

重要なのは、MCPサーバーの精度はLLMが構築する必要があるパラメータを最適化することで大幅に向上させることができるということである。例えば、XiYan MCPサーバーでSQLベースのクエリから自然言語処理に移行することで、精度が著しく向上し、テキストからSQLへのモデルを組み込むことで22パーセントポイントの向上が可能であることが示された。