Add opt out for mirroring structuredContent into Content automatically

OL
3mo ago
+83-14

Implements the pre-SEP opt-out discussed in #1332.

A tool with an output_schema currently always serializes its structured output into a content text block alongside structuredContent, doubling large payloads. The spec states this duplication is a SHOULD, not a MUST.

This adds a per-tool opt-out, threaded convert_result → Tool → tool_manager → add_tool/@tool: mirror_structured_content=False sends structuredContent only, with empty content. Default True preserves current behavior. Docs updated (docs/servers/structured-output.md); new test follows the in-memory Client(server) pattern.

AI disclosure: implemented with Claude Code assistance and I reviewed it.