MCP tool errors are not displayed when isError: true
Resolved 💬 3 comments Opened Apr 27, 2026 by schizoidcock Closed Apr 30, 2026
Description
When an MCP server returns a tool result with isError: true, the error content is not displayed to the user. Only a red circle indicator appears, but the actual error message is hidden.
Steps to Reproduce
- Create an MCP server that returns an error result:
return {
content: [{ type: "text", text: "Error: File not found" }],
isError: true
};
- Call the tool from Claude Code
- Observe that the red error indicator appears but the error message is not visible
Expected Behavior
The error message ("Error: File not found") should be displayed to the user, similar to how built-in tool errors are shown.
Actual Behavior
- Red circle indicator appears (correctly indicating an error)
- Error message content is completely hidden
- User has no way to see what the error was
Workaround
Removing isError: true from the response makes the content visible, but then the indicator is green instead of red, which incorrectly suggests success.
Environment
- Claude Code version: 2.1.x (latest)
- OS: Windows 11
- MCP server: Custom TypeScript server
Additional Context
This issue affects all MCP tools that properly report errors using the isError field. The error content is being sent correctly (Claude can see it and respond to it), but the UI does not render it for the user.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗