MCP tools/list ttlMs and cacheScope: what is safe to cache?
The 2026-07-28 MCP spec adds ttlMs and cacheScope to tools/list. Sume's tool list depends on the session's scopes, which is why caching it per session matters.

In the 2026-07-28 MCP revision, tools/list responses carry ttlMs and cacheScope, which tell a client how long a list may be reused and how widely. For Sume, the list you get is the one visible to your session: mutating and paid tools are hidden until the session has mcp:write or an API key. A cached list should therefore never be shared across sessions with different scopes.
What do ttlMs and cacheScope do?
The MCP release post says tools/list, prompts/list, resources/list and resources/read carry ttlMs and cacheScope. It gives the field names and where they appear; this page does not restate value semantics beyond that, so read the spec for the accepted values before you implement a cache.
Why does the Sume list differ by session?
Sume's tools_list tool lists every tool visible in this session, with safety metadata. Under OAuth mcp:read only, the session sees read-only tools; with mcp:write or an API key it sees the full hosted set. So two people on the same endpoint can legitimately see different lists.
| Session auth | Visible tools |
|---|---|
| OAuth mcp:read only | Read-only tools |
| OAuth mcp:read and mcp:write | Full hosted tool set |
| API key | Full hosted tool set |
How should a client cache it?
Key any cache by the credential or session, not by the URL alone, and drop it when the scopes change, for example after the user grants Write. The docs also tell agents to discover the live contract with tools_list and tools_schema rather than assume, so a stale list is the main risk. Sume's docs do not say the hosted server sends ttlMs or cacheScope today, so do not depend on them being present.
What does a stale list break?
A client holding a read-only list will not offer generate_image; one holding a write list may offer it to a session that now lacks the scope, and the call returns insufficient_scope. See tools and gates for the full split.
What if I do not cache at all?
Not caching is a valid choice. tools_list is a read-only tool, and the quickstart suggests calling it once after connecting to verify the session. A client that refreshes the list at session start and after any scope change stays correct without depending on cache fields.
The one thing to avoid is treating the first list as permanent. If Write is granted later, the visible set grows, and if the session is replaced by one with only read access, it shrinks.
Does the tool list ever differ from the docs?
Yes, and the docs say so: they tell agents to discover the live contract with tools_list and tools_schema and not to assume parity with the HTTP API. Live tool ids use underscores, such as tools_list and generate_image, and dotted aliases also work.
For a cache, that means the list is data about one session at one moment. Store it with the session identity, refresh it after a reconnect, and treat a call that returns insufficient_scope as a signal to refetch rather than as a bug.
Sources
Related posts
More in Developers
- Unsupported MCP protocol version: the 400 from Sume's server
Sume's MCP endpoint answers an MCP-Protocol-Version it does not support with HTTP 400 and code -32600. Here is what the 2026-07-28 spec tells a client to do.
- MiniMax H3 4-second clips: MiniMax says 4, Sume says 5
MiniMax lists 4–15 seconds for H3, but Sume's docs and pricing code start at 5 seconds. Send 5 or more, and trim to 4 afterwards if you need it.
- MiniMax H3 768p: why 720p is refused and what to send instead
MiniMax H3 renders natively at 768p, not 720p. Sume refuses resolution 720p on H3 and H3 Max and tells you to use 768p. The accepted values per id.
- MiniMax H3 aspect ratios: 21:9 to 9:16, and when adaptive works
MiniMax H3 makes six aspect ratios, from 21:9 to 9:16. Which ones Sume accepts, where adaptive is allowed, and how frame images set the ratio.
Written by Sume