> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mcphub.app/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP Apps

> 通过 MCPHub 路由透明代理交互式 MCP Apps，包括多服务器分组

## 概述

MCPHub 支持将 [MCP Apps](https://github.com/modelcontextprotocol/ext-apps) 作为透明代理转发。它会转发关联 UI 的工具元数据、仅 App 可用的工具、`ui://` 资源和上游列表变更通知。MCPHub 仪表板本身不负责渲染 App UI。

无需增加 MCPHub 配置开关。下游 Host 声明 `io.modelcontextprotocol/ui` 扩展，并支持 `text/html;profile=mcp-app` MIME 类型时，该能力会自动启用。旧版客户端在初始化时声明，新版 `2026-07-28` 客户端在每次请求的 `params._meta["io.modelcontextprotocol/clientCapabilities"]` 中声明。参见 [协议兼容矩阵](/zh/api-reference/mcp-http#协议兼容矩阵)。

## 路由要求

请求路由解析到至少一个已连接的 MCP 上游服务器时，MCP Apps 透明代理才会启用：

* `/mcp/{server}`
* `/mcp/{group}`，分组内可以有一个或多个对调用方可见的 MCP 服务器
* `/mcp`，且调用方至少能看到一个 MCP 服务器

`$smart` 路由仍按普通 MCP 路由工作。在该路由上，MCPHub 会：

* 隐藏 `_meta.ui.visibility: ["app"]` 等仅 App 可用的工具
* 移除 Apps 专属的 `_meta.ui` 和旧版 `_meta["ui/resourceUri"]` 字段
* 拒绝直接调用仅 App 可用的工具
* 拒绝读取未列出的 `ui://` 资源

## 工具名称

普通 MCPHub 路由使用带服务器前缀的工具名称，例如 `weather::forecast`，分隔符取决于您的配置。

符合条件且仅包含一个已连接服务器的 MCP Apps 路由会保留上游原始工具名，例如 `forecast`。这样 App iframe 发起的调用无需改写即可直接转发。

包含多个已连接服务器的 Apps 路由继续使用带服务器前缀的名称，避免同名工具冲突；Apps 元数据和仅 App 可用的工具仍会透传。此类路由上的组件应读取工具列表或宿主上下文中的带前缀名称，不应假定可使用原始名称。

## UI 资源

MCP Apps 服务器可以不在 `resources/list` 中列出仅供 UI 使用的资源。在符合条件的 Apps 路由上，MCPHub 支持读取未列出的 `ui://` URI：

* 单服务器路由直接将请求转发给该上游。
* 多服务器路由无法预先确定未列出的 URI 属于哪个上游，因此依次探测路由内已连接的候选服务器，返回首个成功响应。

普通已列出资源仍然可以读取，但在不符合条件的路由上会移除 Apps 专属元数据。

## 动态列表

MCPHub 会订阅上游的 `tools/list_changed`、`resources/list_changed` 和 `prompts/list_changed` 通知。收到通知后，它会刷新缓存、为模型可见工具更新 Smart Routing 向量索引，并通知已连接的下游客户端。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.