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

  1. Create an MCP server that returns an error result:
return {
  content: [{ type: "text", text: "Error: File not found" }],
  isError: true
};
  1. Call the tool from Claude Code
  2. 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.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗