Claude Code closes ws MCP messages over 16 MiB: Sume sends URLs
Claude Code 2.1.295 closes a websocket MCP connection on a message over 16 MiB. Sume hosted MCP returns media.sume.com URLs for results, not file bytes.

Claude Code 2.1.295 (Oct 8) closes a websocket MCP connection when one message is over 16 MiB. Sume's hosted MCP is an HTTP endpoint at https://mcp.sume.com/mcp, and a finished job points to media on media.sume.com; the video bytes are not inside the tool result.
What is the rule?
The changelog entry is short: ws MCP messages over 16 MiB close the connection.
| Version | Date | Change |
|---|---|---|
| 2.1.295 | Oct 8 2026 | ws MCP messages over 16 MiB close the connection |
Where could a Sume result get big?
The result of jobs_result and the asset tools carries metadata and durable URLs on media.sume.com. A client downloads the file itself. Uploads work the other way: hosted MCP cannot read files from your laptop, so the flow is create an upload URL, PUT the bytes from the client, then complete the asset.
What to avoid in your own server
If you build a websocket MCP server alongside Sume:
- Return a URL, not a base64 body, for anything large.
- Use
include_results: trueonjobs_waitonly for a handful of ids, since each completed id returns its result entry.
Does this affect HTTP servers?
The changelog line names websocket messages only. For a remote HTTP server such as Sume, the 16 MiB rule does not apply; the change in that release that does touch a remote HTTP connection is the backoff after drops in headless mode. Details on result shapes are in Jobs and results.
Sources
Related posts
More in Developers
- Claude Dynamic Workflows events vs Sume's single terminal run event
Anthropic's Oct 9 Dynamic Workflows beta streams workflow_run.* events. Sume sends one terminal webhook per run, no stream. How to fan out and track progress.
- Compare GET /v1/balance micros with a clip total, in integers
Balance comes as USD micros and cents. A 30 s Seedance 720p clip is 17,334,000 micros, 1,733 cents rounded down. Integer compare, plus the expiring-soon fields.
- Contract test for 1:4, 4:1, 1:8, 8:1: pytest on /v1/images/models
A 12-line pytest that fails CI if Sume stops listing the Nano Banana 2.1 strip ratios. It reads GET /v1/images/models, so it generates nothing.
- Video Router body to /v1/videos: frame_images, input_references
Map Video Router image_url, end_image_url and reference_image_urls to /v1/videos frame_images and input_references, with a Node converter.
Written by Sume