OpenAI Agents Python MCP non-text content as JSON: Sume results
openai-agents-python v0.20.0 serializes non-text MCP blocks as JSON. Sume tool results are text blocks, with media delivered as URLs inside the JSON.

openai-agents-python v0.20.0 now serializes non-text MCP content blocks as JSON instead of Python repr. Sume does not depend on that path: its MCP tool results are a single text block, and generated media comes back as a URL inside that text, so the upgrade changes nothing about how you read Sume output.
The release line is from the openai-agents-python release notes; the result shape is from Sume's MCP server code and Jobs and results, read 2026-10-01.
What does the Sume result look like?
In the server code a successful call returns { content: [{ type: "text", text }], isError: false }, where text is the JSON-stringified record. Failures use the same single text block with isError: true. No image or audio blocks are involved.
Where do the media files go?
Finished artifacts carry a durable URL under https://media.sume.com/artifacts/... in the job result, as the docs show. For an asset, the tools list names assets_download_url as a read tool. So your agent receives a link as text and fetches the file itself.
| Property | Value |
|---|---|
| Content block type | text only |
| Media delivery | URL in the JSON, media.sume.com |
| Output limit | MCP_OUTPUT_MAX_BYTES = 256 KiB (256 * 1024) |
| Over the limit | mcp_output_too_large error result |
What should I check in my agent?
Parse the text as JSON and read the URL field; do not expect inline bytes. Keep reads narrow so results stay under the 256 KiB budget. For long renders, wait on jobs rather than polling; see waiting for long video jobs over MCP.
Sources
Related posts
More in Developers
- OpenAI Agents Python MCP backoff ceiling vs Sume retry-after
Set the MCP retry backoff ceiling low enough that a Sume 429 with retry-after is honored first, and never retry a paid create without its idempotency key.
- Does an OpenAI API key expire? Expiry dates and key rotation
OpenAI project keys can now carry an expiration date and orgs can cap lifetime. Sume documents no expiry field: rotate by minting a replacement key.
- OpenAI async tool calling for long-running render jobs
OpenAI's async tool calling lets the model keep working while your tool runs. For a slow Sume render, return the job id fast, then wait in slices.
- OpenAI image-encoding fix: rerun workflows with the right key
OpenAI fixed an image-encoding bug and advised retrying affected workflows. On Sume, a replayed idempotency key returns the original; use a new key to rerun.
Written by Sume