
MCP 协议, 作为连接 AI 模型跟广阔数字生态的那个「神经中枢」, 已然化作智能体AI Agent所不能缺少的基础设施了。然而, 长久以来, MCP 的交互仅仅局限于文本以及结构化数据, 这般「盲人摸象」样的体验, 限制了更复杂应用场景的落地。变革正在发生。近日, MCP 社区正式提出了 MCP Apps 提案SEP - 1865, 该提案的目的在于填补这一块至关重要的拼图 此关键拼图有着如下作用: 对交互式用户界面UI的支持予以规范 , 通过这种规范 , 能让 MCP 服务器直接给主机提供可视化的操作界面。详细来讲, MCP Apps 引入了一种标准化的模式, 这种模式用于声明UI资源, 把UI资源链接到工具, 还能实现嵌入式接口与主机应用之间的双向通信。通俗地说一说: 往昔的 MCP 恰似那仅能借由「发短信」实施交流沟通 的客服呵, 它唯可给你递送文字亦或是数据代码然而 MCP Apps竟是把这个客服予以升级变作能给你发送「小程序」 的智能助理。设想一下, 当你让AI去分析服务器日志之时, 并非简单罗列那些枯燥无味的JSON文本, 而是直接于对话框当中呈现出一个可视化的仪表盘, 你甚至于能够直接点击图表来实施筛选以及缩放操作在你需要配置参数之际, 它直接弹出一个表单供你勾选, 而非要求你去输入繁杂的命令。如此一来, AI不再只是具备陪聊功能, 反而是切实拥有了类似于操作系统图形界面那般的交互能力。这一提案一经发布便引发了社区好评其之所以如此, 并非仅仅是由于它将开发者最为急切需要解决的需求给处理好了, 更是源于其背后那推动的力量组成的阵容是极为奢华的, 此提案乃是由那有着特定身份的和有着特定身份的MCP核心维护者, 二者携手MCP - UI的创造者以及社区当中起主要作用的力量一同撰写而成的。这信号强烈地表明, MCP Apps这个交互标准, 它是基于MCP - UI和Apps SDK的东西, 极有可能会成为未来行业通用的范式。由「命令行」转移至「图形化」阶段之际, MCP Apps 会凭借怎样的方式去重新塑造 AI 交互体验, 让我们一同去瞧瞧详尽的阐释。交互式界面标准化当下, MCP 服务器被限定于跟主机交互文本以及结构化数据。尽管于许多应用情形当中这都能够颇为不错地契合需求, 然而一旦工具要展现可视化信息或者收集繁杂的用户输入之际, 便会构成阻碍。官方给出了个示例, 设有一个数据可视化MCP服务器, 其以JSON格式归还图表数据, 主机应用得解析这些数据并加以渲染。在此情形下, 处理诸般特殊数据会让客户端开发者担负沉重负担, 他们要构建自身逻辑去渲染用户界面。伴随用户界面需求的增多, 譬如要收集用户的多个相关设置, 复杂性会迅猛攀升。又或者, 要是没有用户界面支持, 这些交互会变成笨拙的文本提示与响应交换。MCP社区, 一直以来都在费尽心思积极地探索, 怎样去克服这些限制, 然而呢, 因为在不同的实现方式当中, 所采用的约定以及架构也是不一样的, 因而服务器才比较艰难地无法很灵活方便地在不同客户端中间保持一致性。这样一种缺乏标准化的当前状况, 会导致生态系统出现碎片化的有风险的情况。共同构建中MCP - UI 项目, 由 Ido 创建, 由 Liad Yosef 创建, 由一个活跃的社区维护, 引领了智能体应用有交互式界面的愿景。该项目研发出一种模式, 此模式是把丰富的用户界面当作一流的 MCP 资源来交付的, 它证明了智能体应用是能够自然而然融入 MCP 架构的。该项目有着庞大的社区给予支持, 并且提供丰富的 SDK, 它已经被 、、Face、Goose 和 等处于领先地位的公司以及项目采用了。Apps SDK 再度证实了对话式 AI 界面对丰富多样用户界面体验提出的那份需求, 此 SDK 赋予开发者能力, 使其能够基于 MCP, 于内部打造出丰富多彩的交互式应用, 为确保互操作性, 以及在整个生态系统里构建条理一致的安全性与使用模式, 相关各方和 MCP - UI 正协同合作, 致力于开发官方的 MCP 交互式界面扩展。MCP Apps 规范MCP社区博客宣称, 我们当下正在针对MCP里头的UI资源给出一项规范, 然而它所产生的影响可不单单局限于一系列的模式转移。MCP Apps正愈发逐步地演变成一个智能体应用运行时也就是app, 是要为AI模型、用户以及应用之间崭新型的交互去铺垫基础的。那提案存有保持精简之意, 先是从核心模式着手, MCP社区计划会随着时间进展缓缓拓展。下面介绍其关键设计决策。预先声明的资源能在工具元数据之中被引用的, 是有着 ui:// URI 方案的资源, 此资源为 UI 模板。// UIuri: ui:///bar-chart,name: Bar Chart ,: text/htmlmcp}// Tool it inname: ,将一些数据绘制成柱状图, 把某些数据借助柱状图来呈现 , 把一些数据当作柱状图去绘制。: {type: ,: {具有这样一种类型, 其为数组类型, 并且包含着一些项, 这些项呈现出某种特定情况。},_meta: {ui/: ui:///bar-chart,能够让预取以及审查模板行为在工具执行以前即发生让的这种方法, 是针对于主机而言的, 进而达成性能提升以及安全性提高的目的。它还把模板的静态呈现同工具结果的动态数据分离开来, 借此实现更优良的缓存。MCP 传输通信UI 组件不是去创建自定义消息协议, 而是借助现有的 MCP JSON - RPC 基础协议跟主机展开通信, 这就意味着。从 HTML 开始初始扩展规范仅支持, 在沙盒化的当中进行渲染的, text/html内容。这提供下面这些功能。还有其他之类的内容类型, 像外部的URL, 以及远程的DOM, 亦或是原生的小部件, 这些都将会在未来的版本当中得以实现。安全第一要从 MCP 服务器托管交互式内容, 这事儿得谨慎考量安全性。此方案用以解决该问题的办法是, 借助多层措施。那些用于缓解的措施, 能够搭建起针对恶意服务器的, 层层深入的防御体系, 与此同时, 还能维持住开发人员所必要的灵活性。向后兼容性可选扩展是 MCP Apps , 现有实现能够继续运行, 无需进行更改, 主机可依据自身状况, 逐步采用 UI 支持, 服务器要为所有启用 UI 的工具, 提供纯文本回退方案, 并且在 UI 不可用时, 返回有意义的内容, 以此同时服务于支持 UI 的主机以及仅支持文本的主机。你也可以参与进来目前, 该社区构建了早期访问 SDK, 目的在于演示规范提案里所描述的模式以及类型:MCP-UI 客户端和服务器 SDK 均支持这些模式。如果你有兴趣也可参与贡献参考链接