mcpResult() when you intentionally want MCP content blocks, explicit tool errors, or result metadata.
An ordinary object shaped like
{ content, isError } is still application data. It is not interpreted as an MCP result without the helper.
Structured data with narrative
Content types
mcpResult() supports text, image, audio, resource links, embedded text/blob resources, structured JSON, isError, and _meta. Image and audio blocks carry base64 data and a MIME type. Resource links and embedded resources are result content; they do not enable the separate resources methods.
Expected errors
McpStructuredResult<T> when an explicitly typed helper must promise successful structured output.