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.