Cursor keeps on validating MCP structuredContent for "isError":true

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

MCP server is explicitly skipping response validation when error response is returned (“isError”:true)

I tried to get raw MCP response and it’s correct but for some reason Curor is still trying to validate output

Steps to Reproduce

here is an example:

-------- Raw HTTP body --------
event: message
data: {"result":{"content":[{"type":"text","text":"{\"cause\":[\"ddd\"],\"message\":\"checking how errors are returned\"}"}],"structuredContent":{"cause":["ddd"],"message":"checking how errors are returned"},"isError":true},"jsonrpc":"2.0","id":2}

and here is log from Cursor:

2026-05-13 10:32:33.971 [error] Error calling tool 'demo': MCP error -32602: Structured content does not match the tool's output schema: data must have required property 'data', data must NOT have additional properties, data must NOT have additional properties MCP error -32602: Structured content does not match the tool's output schema: data must have required property 'data', data must NOT have additional properties, data must NOT have additional properties

here is an raw example from MCP server if I return “incorrect data” and isError is not set to false. You will see that validation is already done so Cursor should not do anything extra

event: message
data: {"result":{"content":[{"type":"text","text":"MCP error -32602: Output validation error: Invalid structured content for tool user_getMyDetails: [\n  {\n    \"expected\": \"object\",\n    \"code\": \"invalid_type\",\n    \"path\": [\n      \"data\"\n    ],\n    \"message\": \"Invalid input: expected object, received undefined\"\n  }\n]"}],"isError":true},"jsonrpc":"2.0","id":2}

Expected Behavior

as bare minimums Cursor should respect isError flag and skip validation

ideally I don’t expect cursor to do any output validation as it’s a built in feature of MCP server SDK - typescript-sdk/src/server at v1.29.0 · modelcontextprotocol/typescript-sdk · GitHub

Operating System

MacOS

Version Information

Version: 3.3.30
VSCode Version: 1.105.1
Commit: 3dc559280adc5f931ade8e25c7b85393842acf30
Date: 2026-05-09T18:28:42.332Z
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Darwin arm64 25.4.0

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey there,
This is a known bug. Our team is aware and tracking a fix. No workaround exists on your side other than ensuring error responses don’t include structuredContent (which defeats the purpose of structured errors).

We’ll follow up here as soon as the fix ships.

Any updates on this? Would be great for Cursor to support structured responses