加载中...
返回AI 编程实战
AI 编程知识库 · AI 编程实战 · MCP 系统性进阶

MCP Apps 2026:对话中的交互式 UI

MCP Apps 概念图


从「纯文本对话」到「交互式操作系统」

传统 MCP 的困境

如果你经常使用 AI 对话,一定遇到过这样的体验:

AI 帮你生成了一份数据报表,结果是一大串 Markdown 表格,看起来费劲,想筛选特定数据?自己处理。 AI 帮你分析销售趋势,只能描述「销售额上升了 30%」,但没有图表。 AI 帮你创建 GitHub Issue,返回一段 JSON,你还得复制去 GitHub 网站填写。

这就是传统 MCP 的困境:

工具调用只能返回:

  • 纯文本内容
  • JSON 数据
  • Markdown 格式

用户体验问题:

  • 数据可视化困难
  • 缺少交互能力
  • 需要手动复制粘贴

MCP Apps 的革命性意义

2026 年 1 月,Anthropic 发布了 MCP 协议的官方扩展——MCP Apps,彻底改变了这个局面。

工具调用可以返回交互式 UI,直接在对话界面中渲染:

  • 📊 数据可视化仪表盘
  • 📝 交互式表单
  • 📈 动态图表
  • ⚡ 多步骤工作流

用户体验的质的飞跃:

从「纯文本对话」到「交互式操作系统」

传统 MCP MCP Apps
返回纯文本/JSON 返回交互式 UI
用户手动处理 用户直接操作
一次性响应 持续交互
体验割裂 体验流畅

MCP Apps 工作原理

核心概念

工具调用返回 uri:// 资源时,Client 检测到是 UI 资源,自动在对话中嵌入 iframe 渲染。

用户请求 → AI 分析 → 调用工具 → Server 返回 UI 资源 → Client 渲染 UI

完整交互流程

1. 用户:帮我生成销售数据报表

AI 分析:需要调用 generate_report 工具

2. AI → Server:tools/call
   {
     "name": "generate_report",
     "arguments": {
       "type": "sales_dashboard",
       "timeRange": "last_30_days"
     }
   }

3. Server 返回 UI 资源
   {
     "content": [
       {
         "type": "resource",
         "uri": "ui://dashboard"
       }
     ]
   }

4. Client 发现 UI 资源
   在对话中嵌入 iframe 渲染

5. 用户看到交互式仪表盘
   可以直接操作:
   - 缩放查看特定时间段
   - 切换不同产品线
   - 导出数据为 CSV

6. 用户操作触发事件
   postMessage 通知 Client

7. Client 调用对应工具
   实现真正的交互

UI 资源声明

MIME 类型

MCP Apps 使用专门的 MIME 类型标识 UI 资源:

application/vnd.mcp.ui+html

资源声明示例

Server 需要在初始化时声明 UI 资源:

{
  "resources": [
    {
      "uri": "ui://dashboard",
      "name": "数据仪表盘",
      "mimeType": "application/vnd.mcp.ui+html",
      "description": "实时数据可视化仪表盘"
    },
    {
      "uri": "ui://form",
      "name": "表单填写",
      "mimeType": "application/vnd.mcp.ui+html",
      "description": "交互式表单"
    }
  ]
}

资源返回格式

当 Client 请求 resources/read 时,Server 返回完整的 HTML Bundle:

AI 编程知识库会员专享内容
开通后解锁「MCP Apps 2026:对话中的交互式 UI」全文,AI 编程知识库全年访问

扫码添加企业微信,找大熊掌门开通会员

企业微信二维码

添加后说明想开通的会员类型即可

加载中...