GitHub Repo
Open WebUIコミュニティ、MCPのエラーメッセージ修正を提案 モデルの再試行時のフィードバックを改善
10月22日のOpen WebUIコミュニティからの報告によると、MCPツールの失敗時にバックエンドがコンテンツ一覧をPythonの文字列表現に変換するため、モデルがエラーを読み取りにくくなっていた。修正案は更新され、テキストを含まないコンテンツへの対応も追加されたが、確認時点ではまだマージされていない。

Open WebUIコミュニティは10月22日、v0.12.3のMCPエラー処理では、サーバーから返されたコンテンツ一覧をそのまま文字列に変換し、モデルの次のコンテキストに渡していると報告した。そのため、ツール失敗時のフィードバックにPythonオブジェクトの表現や余分なフィールドが混在する。報告者は、その結果、モデルが同じ形式の誤ったパラメーターを繰り返し送信する可能性があると観察した。問題報告と修正案は23日も更新され、確認時点ではまだマージされていない。問題報告
報告された発生条件は、モデルが解析可能なJSONを生成するものの、必須のsectioncodeを省略したり、誤った型を渡したりして、内容がツールのschemaに適合しない場合だ。MCPサーバーがisError: trueで応答すると、Open WebUIのMCPClient.call_toolはcontent一覧全体を例外オブジェクトに渡し、外側の処理がstr(e)でエラー結果を文字列化する。そのため、テキストブロック内のメッセージが、引用符やannotations、metaなどのフィールドに埋もれてしまう。再現手順とコード上の処理経路
これは、エージェントが失敗時のフィードバックを利用して次の操作を修正できるかどうかに関わる。MCP仕様では、プロトコルエラーとツール実行エラーを区別しており、後者はisErrorとコンテンツブロックを使って返せる。エンジニアリングの観点では、クライアントがテキストを適切に抽出できなければ、サーバーが有用な理由を返しても、モデルがそれを認識してパラメーターを修正する機会が減る可能性がある。ただし、この問題がタスク全体の成功率に与える影響を示す定量的なテストは、現時点ではない。MCPツール仕様
関連するPR #32942では、サーバーが返したテキストを抽出する方式への変更が提案されている。エラー結果に画像、音声、リソースしか含まれない場合は、フィードバックが空にならないよう、簡潔なエラーメッセージを返す。サーバーが明らかにしていない理由までは補えない。報告にある.NET SDKの例では一般的な失敗メッセージしか返されておらず、クライアント側の形式を修正しても、どのパラメーターが不足しているかを自動的に把握できるわけではない。デプロイ担当チームは、モデルに実際に渡されるツール結果を確認し、提案のマージ、正式リリース、SDK間の検証状況を追跡するとよい。修正案