MAX_MCP_OUTPUT_TOKENS 25,000: size a Sume jobs_wait wave read
Claude Code caps MCP output at 25,000 tokens and saves larger results to a file. How that meets Sume's jobs_wait include_results and a batch jobs_result read.

Keep a Sume wave read small enough to fit Claude Code's MCP output limit, or let it spill to a file on purpose. Claude Code warns when any MCP tool output exceeds 10,000 tokens and limits output to 25,000 tokens by default; set MAX_MCP_OUTPUT_TOKENS to raise the limit, but the warning threshold is fixed. A result over the limit with no image content is saved to a file, and the conversation gets a message naming the path. For Sume, the call most likely to cross that line is jobs_wait with include_results: true on a wave of up to 20 jobs.
The Claude Code numbers are from its MCP documentation, read on 2026-10-03. The Sume behavior is from Jobs and results.
What are Claude Code's output limits?
The page lists them plainly. The environment variable applies to tools that do not declare their own limit; a tool that sets anthropic/maxResultSizeChars in its tools/list entry uses that value for text content instead, up to a hard ceiling of 500,000 characters. Tools that return image data are still subject to MAX_MCP_OUTPUT_TOKENS, and the annotation has no effect on them.
When a text result goes over, Claude reads the file when it needs the content, so nothing is lost; it just costs an extra step. I did not find an annotation in Sume's tool definitions, so assume the plain 25,000-token default applies to Sume tools unless you have changed it.
| Setting | Value | Applies to |
|---|---|---|
| Warning threshold | 10,000 tokens, fixed | Any MCP tool output |
| Default maximum | 25,000 tokens | Tools that declare no limit |
MAX_MCP_OUTPUT_TOKENS | You choose, for example 50000 | Tools that declare no limit; image results too |
anthropic/maxResultSizeChars | Up to 500,000 characters | Text content of the annotated tool only |
How does a Sume wave read meet that limit?
Sume's jobs_wait takes 1 to 20 ids with wait_for of all or any. With include_results: true, every id that completed comes back with its jobs_result answer in results[], so a wave needs no separate read. Results that do not fit in one answer are named in results_omitted.job_ids; read those with one batch jobs_result.
That is Sume's own size handling, and it is separate from the client's. A wave of many finished jobs can still exceed Claude Code's limit even when Sume returns everything it can, in which case Claude saves the answer to a file. Either way the ids are not lost: the job records stay readable by jobs_status and jobs_result.
What should I do in practice?
Pick the cheapest of three moves. For small waves, leave the default and include results. For a wave of videos, wait without results and read ids in smaller groups. For a script you control, raise the variable once rather than per call.
Keep the hold limit in mind while you do this: jobs_wait holds at most 55 seconds per call (default 50), and on wait_slice_expired you retry with the same ids and never resubmit the create.
# a larger ceiling for this one session
MAX_MCP_OUTPUT_TOKENS=50000 claude
# then, in the prompt:
# wait for these job ids with include_results true; if results_omitted lists ids,
# read them with one jobs_result callWhat if a result also contains images?
The Claude Code page says image data stays subject to the token limit, and raising the environment variable is the only option for those results. Check what your own call returns before changing the limit, and prefer reading image-heavy results in smaller groups.
How do I tell the limit was hit?
Claude Code replaces an over-limit text result with a message that names the saved file path. If you see that message after a jobs_wait, the call itself succeeded and the jobs are done; only the display was redirected. Read the file, or ask for the ids in two smaller waves.
Do not retry the wait because the answer looks missing. A retry re-reads the same ids, which is harmless, but a retry of the create would be a second paid render.
Sources
Related posts
More in Developers
- MCP 401 challenge: the WWW-Authenticate header Sume returns
What a client sees when it calls Sume's MCP endpoint with no token: the WWW-Authenticate challenge, its resource_metadata URL and scope, and the spec.
- MCP Python SDK 2.3 max_sse_event_size vs Sume's 256 KiB result cap
MCP Python SDK 2.3.0 adds max_sse_event_size. Sume caps a tool result at 256 KiB, so a normal Sume result fits well under any sane SSE limit.
- MCP TypeScript SDK 2.3 maxToolInputElements: Sume tool arguments
MCP TypeScript SDK 2.3.0 adds maxToolInputElements on McpServer. A server-side cap on array size; here is how it relates to Sume's tool arguments.
- MAI-Transcribe-2-Streaming '2x faster': measure your caption delay
Microsoft says words appear 2x faster than its closest competitor. Measure your own delay from speech to caption with a p50 and p95 script before you switch.
Written by Sume