MCP Apps _meta.ui.resourceUri: what a Sume tool call shows
MCP Apps tools point at a ui:// resource for the host to render. Sume's hosted MCP lists plain tools, so a host shows the tool result, not an app.

Nothing in the Sume code I read puts _meta.ui.resourceUri on a tool. tools/list returns a tools array and the server dispatches only initialize, ping, tools/list and tools/call. A host that supports MCP Apps therefore treats Sume tools as ordinary tools and shows their results as conversation content, not an iframe.
The MCP Apps facts are from the extension overview; the Sume facts from the server source and MCP tools and gates, read 2026-09-30.
What does an MCP App tool declare?
Per the overview, the tool description carries a _meta.ui.resourceUri field pointing to a ui:// resource, which the host can preload before the tool is called. The host then fetches that resource, an HTML page, and typically renders it in a sandboxed iframe. The resource's _meta.ui can include permissions and csp.
Where does Sume differ?
| Piece | MCP Apps | Sume hosted MCP |
|---|---|---|
| Tool declaration | _meta.ui.resourceUri to a ui:// resource | tools/list returns { tools }; no UI field in the code I read |
| Supported methods | Core MCP plus ui/ methods inside the app | initialize, ping, tools/list, tools/call; others get method-not-found |
| Protocol constant | Extension on top of MCP | MCP_PROTOCOL_VERSION = "2025-11-25" |
| List updates | Host can preload at list time | listChanged: false |
What will I see in an Apps-capable host?
The same thing as in any other client: the tools/call result. Generation tools return job data you read with jobs_wait and jobs_result, as in MCP tool call result structure. The finished artifact is a URL, so previewing it is something the host or you do after the result arrives.
Should I wait for Sume to ship an app UI?
Do not build around one. Nothing in the quickstart or the tools-and-gates page mentions it. Connect as usual with claude mcp add --transport http sume https://mcp.sume.com/mcp, keep idempotency_key on paid calls, and check the docs for changes.
Sources
Related posts
More in Developers
- MCP stream dropped: re-issue with the same idempotency_key
MCP 2026-07-28 says re-issue a broken request with a new request ID. On a paid Sume tool, keep the same idempotency_key so the retry is not a second charge.
- MCP tool name with a dot or underscore: tools.list vs tools_list
Sume MCP tool ids use underscores; a dotted alias such as tools.list is canonicalized on call. Retired aliases map to generate_image and generate_video.
- MCP expectedIssuer with client credentials: Sume uses an API key
MCP TypeScript SDK 2.2.0 adds expectedIssuer to machine-to-machine providers. Sume's OAuth is authorization_code only; headless agents use an API key.
- MCP listTools nextCursor: Sume returns a single page
TypeScript SDK 2.2.0 follows nextCursor in listTools(). Sume's tools/list returns a tools array with no cursor, so the walk ends after one request.
Written by Sume