Summary
Please expose a typed, supported SDK surface (and docs) for invoking MCP operations out of band — i.e. without a model turn — so consumers can implement MCP Apps (SEP-1865): server-provided tool UIs.
What's needed
To render an MCP App, the host needs, for a connected MCP server:
- Call a tool out of band — invoke an MCP tool directly and get its
CallToolResult (no model turn).
- Read a resource —
resources/read (and ideally resources/list) to fetch the App's ui:// bundle.
- List tools with full metadata —
tools/list including inputSchema and _meta (esp. _meta.ui.resourceUri), which the App UI needs.
Sampling is not needed.
Current gap
The bundled CLI already appears to implement these over the control channel (mcp_call, mcp_message), but they aren't on the public Query interface (0.3.x), and mcpServerStatus().tools[] omits inputSchema / _meta — so there's no supported way to detect or drive an App.
A typed Query API for the above three (plus documentation) would unblock MCP Apps support. Thanks!
Summary
Please expose a typed, supported SDK surface (and docs) for invoking MCP operations out of band — i.e. without a model turn — so consumers can implement MCP Apps (SEP-1865): server-provided tool UIs.
What's needed
To render an MCP App, the host needs, for a connected MCP server:
CallToolResult(no model turn).resources/read(and ideallyresources/list) to fetch the App'sui://bundle.tools/listincludinginputSchemaand_meta(esp._meta.ui.resourceUri), which the App UI needs.Sampling is not needed.
Current gap
The bundled CLI already appears to implement these over the control channel (
mcp_call,mcp_message), but they aren't on the publicQueryinterface (0.3.x), andmcpServerStatus().tools[]omitsinputSchema/_meta— so there's no supported way to detect or drive an App.A typed
QueryAPI for the above three (plus documentation) would unblock MCP Apps support. Thanks!