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.

A client has nothing to subscribe to on Sume's hosted MCP server. The server code answers GET /mcp with 405 and allow: POST, declares tools.listChanged: false, and rejects any method outside initialize, ping, tools/list and tools/call. So a subscriptions/listen request would get a method-not-found error.
The spec side is from the MCP 2026-07-28 changelog; the Sume side is from the server source and the MCP quickstart, read 2026-09-30.
What does subscriptions/listen replace?
The changelog says the new method replaces the HTTP GET endpoint and resources/subscribe and resources/unsubscribe. It is described as a single long-lived POST-response stream for server-to-client change notifications that the client opts into, such as toolsListChanged and resourcesListChanged.
What does Sume's endpoint do today?
| Request or field | What the code does |
|---|---|
GET /mcp | 405 with allow: POST |
OPTIONS /mcp | 204 with allow: POST, OPTIONS |
tools/list | Returns { tools } only |
capabilities.tools.listChanged | false |
| Any other method | JSON-RPC method-not-found error |
Do I need to listen for tool changes on Sume?
No. With listChanged: false the server tells the client the tool list will not announce changes, so the client reads tools/list when it connects and again whenever it wants a fresh copy. See how Claude Code handles list-changed with Sume.
How do I find out a job finished without a stream?
Ask for it. The docs have jobs_wait hold at most 55 seconds per call (default 50) and say to retry with the same ids on wait_slice_expired rather than resubmit the paid create. For a push-style alternative, see webhooks vs jobs_wait.
What should my client do?
Do not require a notification channel from Sume. Treat listChanged: false as the contract, poll with jobs_wait or jobs_status, and keep job ids. Which protocol version a client negotiates is a separate question covered in which spec version Sume's server speaks.
Sources
Related posts
More in Developers
- 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.
- Three Responses subagents, one Sume workspace queue
Responses multi_agent runs 3 subagents by default and they share your tools. Sume accepts extra jobs as queued until queue_full; give each create its own key.
- Music API 400 model_not_found: fix an unknown model id
An unknown model on POST /v1/music-router/generate fails with 400 model_not_found and a catalog_url. Use an id from GET /v1/music-router/models or omit model.
- Music API timeout at 30 seconds: poll or webhook instead
A song can outlast Sume's 30-second wait. The wait bounds the HTTP call, not the job, so submit async and poll the status URL, or use a webhook.
Written by Sume