diff --git a/tools/mcp_tool.py b/tools/mcp_tool.py index 1ff42e77b2..c055e44f90 100644 --- a/tools/mcp_tool.py +++ b/tools/mcp_tool.py @@ -1253,7 +1253,16 @@ def _make_tool_handler(server_name: str, tool_name: str, tool_timeout: float): for block in (result.content or []): if hasattr(block, "text"): parts.append(block.text) - return json.dumps({"result": "\n".join(parts) if parts else ""}) + text_result = "\n".join(parts) if parts else "" + + # Preserve structured_content (structuredContent) if present + structured = getattr(result, "structured_content", None) + if structured is not None: + return json.dumps({ + "result": text_result, + "structuredContent": structured, + }) + return json.dumps({"result": text_result}) try: return _run_on_mcp_loop(_call(), timeout=tool_timeout)