GitHub Repo
Open WebUIコミュニティ、FastMCPのリスト結果がモデルに重複して渡される問題へのMCP修正案を提出
10月18日のOpen WebUIコミュニティ報告によると、FastMCPツールがリストを返す際、同じデータがテキストと構造化コンテンツの両方でモデルのコンテキストに重複して渡される可能性がある。同日、修正PRが提案されたが、まだマージされていない。実際のトークン数とコストへの影響は、ワークロードごとに測定する必要がある。

Open WebUIコミュニティは10月18日、MCPの互換性に関する問題を報告した。独立したFastMCPパッケージで作成したツールがリストを返すと、同じ結果がモデルに2回渡される可能性があるという。報告者はv0.12.3と当時のdevイメージで再現し、最小構成のツールとバックエンドでの処理結果を提示した。同日、別のコントリビューターが修正PRを提出した。問題報告
問題の鍵は、同じデータが2通りの形式で表される点にある。MCP仕様では、ツールはJSONオブジェクトをstructuredContentで返すことができ、後方互換性のために、シリアライズしたJSONをテキストブロックにも含めることが推奨されている。そのためクライアントは、両方に同じ内容が含まれているかを判定し、重複を避けるとともに、テキストに表れていない構造化データは保持する必要がある。MCPツール仕様
報告で使われたFastMCPツールは、2つの色文字列だけを返していた。テキストブロックには配列全体が含まれ、構造化フィールドでは同じ配列がresultに格納されていた。Open WebUIの既存の重複排除ロジックは、リストの各要素がそれぞれ1つのテキストブロックを占める形式を認識していた。そのため、配列全体が単一のブロックに入るケースを見落とし、構造化データ側の複製を追加していた。報告では、名称が似ていても同じ挙動だと見なさないよう、独立したFastMCPパッケージと公式Python SDKも区別している。再現手順の詳細
PR #32726は、テキストにすでに含まれているリストを1回だけ渡しつつ、テキストに含まれない構造化データは引き続き渡すことを目指している。提案ではツール結果のトークン消費が2〜3倍になる可能性が示されているが、これは特定の結果における膨張率であり、会話全体や請求額が同じ割合で増えると推定することはできない。確認時点でPRはオープンのままで、マージまたはデプロイの記録はなかった。修正提案
検索結果、データ行、ファイル一覧を繰り返し取得するエージェントでは、重複データによってコンテキストの使用量が増えると推測できる。特に長いターンのタスクでは確認する価値がある。エンジニアリングチームは、ツールの生のレスポンスと、実際にモデルへ送られるメッセージを比較できる。今後は、この修正が正式リリースに取り込まれるか、また要約と構造化データそれぞれに固有の情報が保持されるかを確認したい。現時点では、独立した性能測定はない。