MCP Python SDK idle session 404: what it means for Sume jobs
Python SDK 2.2 closes stateful sessions idle for 30 minutes, then 404s. Sume's hosted MCP is POST-only; re-poll jobs_wait with the same ids, never resubmit.

The 30-minute idle 404 is a behavior of stateful servers built with the Python SDK, and nothing in the Sume code I read produces it: the hosted endpoint takes POST /mcp calls and dispatches each by method. If a client of yours hits a 404 and re-initializes, your Sume jobs are unaffected. Keep the job ids and read them again.
SDK facts are from the Python SDK 2.2.0 release notes; Sume facts from the server source and Jobs and results, read 2026-09-30.
What does the SDK change?
The notes say a stateful session with nothing in flight for 30 minutes is closed; the client's next request gets a 404 and it must initialize again. They give session_idle_timeout=None, max_sessions=None on mcp.run(transport="streamable-http", ...) to turn the limits off.
What does a Sume client see instead?
| Topic | Python SDK 2.2.0 (stateful) | Sume hosted MCP |
|---|---|---|
| Idle handling | Closed after 30 minutes, then 404 | No idle timer in the cited code |
| HTTP methods | Streamable HTTP | POST /mcp; GET returns 405 |
| Protocol constant | Legacy spec <=2025-11-25 noted | MCP_PROTOCOL_VERSION = "2025-11-25" |
| Long work | Session must stay alive | jobs_wait slices of at most 55s |
How do I wait on a long Sume job?
Each remote HTTP call holds at most 55 seconds (default 50). On wait_slice_expired, call jobs_wait again with the same ids. The docs say never to resubmit the paid create. That loop does not depend on any one connection staying open; see jobs_wait for long video jobs.
What if my own Python MCP server sits in front?
Then the 30-minute rule applies to that server, not to Sume. Either handle the 404 by initializing again, or set the timeout options the notes list. Calls to Sume from inside your tools still need a stable idempotency_key so a retry does not spend twice; see what stateless MCP means.
Sources
Related posts
More in Developers
- MCP server/discover against Sume's hosted endpoint
The 2026-07-28 MCP spec adds server/discover. Sume's hosted server does not implement it and answers -32601; read initialize and tools/list instead.
- MCP server notify when work finished: Sume webhooks vs jobs_wait
The MCP roadmap lists push delivery for finished work. On Sume today, MCP agents wait in bounded jobs_wait slices; HMAC webhooks are a REST job feature.
- MCP subscriptions/listen: Sume has no push stream to join
MCP's 2026-07-28 spec adds subscriptions/listen for change notifications. Sume's hosted MCP answers POST only and declares listChanged false.
- Merchant Center conversational attributes: draft them as JSON
Conversational attributes add richer context to product listings. Draft them per SKU as schema-bound JSON from a Sume Format run, then review before upload.
Written by Sume