Problem
McpAdapter initializes the MCP client without declaring UI/Apps capabilities:
this.mcpClient = new Client({
name: 'scope3-sdk',
version: SDK_VERSION,
}, {
capabilities: {
tools: {},
},
});
Without declaring the io.modelcontextprotocol/ui extension capability, the MCP server has no way to know that this client supports MCP Apps. Servers that gate UI metadata (like _meta.ui.resourceUri) behind capability negotiation will not include it in responses to this client.
Proposed Solution
Add the MCP Apps extension capability to the client initialization:
this.mcpClient = new Client({
name: 'scope3-sdk',
version: SDK_VERSION,
}, {
capabilities: {
tools: {},
},
});
// Declare MCP Apps support
// Uses @mcp-ui/client's UI_EXTENSION_CAPABILITIES or manual declaration
The exact capability key depends on the current MCP Apps spec — likely io.modelcontextprotocol/ui with config { mimeTypes: ["text/html;profile=mcp-app"] }.
Related
Depends on #128 — declaring the capability is only useful if consumers can actually access the raw CallToolResult and MCP App resources.
Problem
McpAdapterinitializes the MCP client without declaring UI/Apps capabilities:Without declaring the
io.modelcontextprotocol/uiextension capability, the MCP server has no way to know that this client supports MCP Apps. Servers that gate UI metadata (like_meta.ui.resourceUri) behind capability negotiation will not include it in responses to this client.Proposed Solution
Add the MCP Apps extension capability to the client initialization:
The exact capability key depends on the current MCP Apps spec — likely
io.modelcontextprotocol/uiwith config{ mimeTypes: ["text/html;profile=mcp-app"] }.Related
Depends on #128 — declaring the capability is only useful if consumers can actually access the raw
CallToolResultand MCP App resources.