Fetching from the wire…
Public story · 2026-08-25 · high
Unhandled tool errors return a generic message instead of the exception text, and structured output needs an explicit flag to keep working.
Why now: The release went up August 24.
The Model Context Protocol's Python SDK stopped forwarding raw exception text to models on August 24, with the release of version 2.1.0. Agents that reason about why a tool failed, then retry differently based on the error text, lose that signal without warning.
Before 2.1.0, that same exception text reached the model directly, information developers often used for debugging or for retry logic downstream. An unhandled exception from a tool, resource, or prompt handler gets logged once at ERROR level on the server. The client sees only Error executing tool <name>, per the SDK's 2.1.0 release notes. To surface real detail to the model, you have to raise ToolError or ResourceError on purpose, since anything else doesn't make it through.
A second change ships in the same release. Tools annotated to return TextContent, EmbeddedResource, Image, or Audio stop advertising an outputSchema and stop returning structuredContent by default. Getting that back means passing structured_output=True.
Each link below shares sources, entities, or timing with this story.
MCP Python SDK uses OpenTelemetry / Shared entity: MCP Python SDK / Same source domain / Shared topic / Earlier coverage
Linked by a graph relationship (MCP Python SDK uses OpenTelemetry); both cover MCP Python SDK; reported by the same outlet (github.com).
Shared entities / Same source domain / Shared topic
Both cover GitHub, Released August; reported by the same outlet (github.com); overlapping topics (august, client, model).
Shared entities / Same source domain / Shared topic / Earlier coverage
Both cover GitHub, Released August; reported by the same outlet (github.com); overlapping topics (august, model).
Shared entities / Same source domain / Earlier coverage / Tension
Both cover GitHub, Released August; reported by the same outlet (github.com); earlier GitHub coverage from 2026-08-04.
Shared entities / Same source domain / Shared topic
Both cover GitHub, True; reported by the same outlet (github.com); overlapping topics (model, tool).
MCP Python SDK uses OpenTelemetry / Shared entity: GitHub / Same source domain / Earlier coverage
Linked by a graph relationship (MCP Python SDK uses OpenTelemetry); both cover GitHub; reported by the same outlet (github.com).
Linked by a graph relationship (MCP Python SDK uses OpenTelemetry); both cover GitHub; reported by the same outlet (github.com).
Linked by a graph relationship (MCP Python SDK uses OpenTelemetry); both cover GitHub; reported by the same outlet (github.com).