From bb8b56c7de52c2a2bf8b0590f3e4f8d97d7d78bb Mon Sep 17 00:00:00 2001 From: Zamil Majdy Date: Tue, 10 Feb 2026 20:31:37 +0400 Subject: [PATCH] fix(mcp): Validate JSON-RPC response is a dict before accessing keys Add isinstance check after response.json() to prevent TypeError/ AttributeError if an MCP server returns a non-object JSON response. --- autogpt_platform/backend/backend/blocks/mcp/client.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/autogpt_platform/backend/backend/blocks/mcp/client.py b/autogpt_platform/backend/backend/blocks/mcp/client.py index 79f3d0421d..050349dbcc 100644 --- a/autogpt_platform/backend/backend/blocks/mcp/client.py +++ b/autogpt_platform/backend/backend/blocks/mcp/client.py @@ -149,6 +149,11 @@ class MCPClient: f"MCP server returned non-JSON response: {e}" ) from e + if not isinstance(body, dict): + raise MCPClientError( + f"MCP server returned unexpected JSON type: {type(body).__name__}" + ) + # Handle JSON-RPC error if "error" in body: error = body["error"]