专栏 · Agent 工程手艺 › 第 119 期 · AGENT 工程 · 收录于 2026 年 8 月 16 日
MCP Apps:拓展前沿——Ido Salomon 与 Liad Yosef
LY
Liad Yosef MCP · AI Engineer
5,471观看
105赞
1.9%点赞率
9评论
62.7万频道订阅
数据截至 8 月 27 日
TL;DR · 三句话
- 一MCP server 从此不必只回一段文字:MCP Apps 是 MCP 的官方扩展,从 Ido 去年 5 月做的 MCP UI 演化而来,和 Anthropic、OpenAI 一起共建——server 把一段 HTML 装进 MCP 早就有的 resource(资源,MCP 的一种标准原语)里,让 tool call 关联到它,host(宿主,就是 Claude / ChatGPT / VS Code 这类跑 agent 的客户端)拿到后把它渲染成一个真能点的界面。→ 详细
- 二点击不打回 server 后端,先回 host:用户在这块界面上点了什么,事件通过一个 callback 一路传回 host,由 host 决定要不要去调 server 的 tool——「host 始终掌握着流程的控制权」,应用不再拥有用户旅程,所有动作都过 chat,因此可审计。→ 详细
- 三这不是"输出好看一点",是一条全新的应用分发渠道:光 ChatGPT 一家就有 8 亿周活用户(全球人口的 10%,而整个 web 花了约 13 年才做到这个量级),相当于 Apple App Store 刚上线时可触达市场的 170 倍;写一次,Claude / ChatGPT / VS Code / LibreChat 到处都能跑。→ 详细
01
两位讲者:写 MCP UI 的人,现在在维护 MCP Apps 官方规范
- Ido Salomon——MCP UI 的创建者,MCP steering committee(指导委员会)里 MCP Apps 的联合创建者兼维护者。Liad Yosef——和 Ido 一起做 MCP UI,同为 MCP Apps 规范的联合创建者和维护者,最近还联合创办了 Aura,一个专门研究 agentic web(智能体网络:不再靠浏览器、而是靠 AI 助理来消费的互联网)的研究实验室。开场自嘲:「这个演讲是我们昨天才赶出来的,所以内容可能已经过时了。」→ 详细 · Liad 自我介绍
- 定位现状一句话:MCP Apps 已经无处不在,只是你没意识到——今天你在 ChatGPT、VS Code、Slack 里用到的那些花哨 app,底层全都是 MCP + MCP Apps 规范。→ 详细
02
起点不是技术洁癖,是一条很实在的商业阻力
- 「文本是最自然的界面」,但要传递大量信息,文本恰恰是最糟糕的方式——谁都不想面对一整屏的文字墙。→ 详细
- 真正的杀招在下一句:这是企业不愿意做 MCP server 的头号阻力——他们不想被降级成一个纯文本数据库,不想在这个过程里丢掉品牌识别,更不想让自己辛苦打磨 UX 的数据最后只剩下一坨文字。换句话说,MCP 的生态扩张卡在了"接入等于放弃自己长什么样"这道门槛上。→ 详细
- 于是问题被反过来问:如果每个服务、每个品牌都能把自己的 UI 直接发进 chat 呢?那你一眼就能认出「中间这块是 Shopify,这块是 Hugging Face,这块是 Monday」。而且不能只是展示——还得能真的在里面跟 Hugging Face 交互,Hugging Face 那边也能真的对这个操作做出响应。这两句就是 MCP Apps 的全部立意。→ 详细
03
机制一:UI 怎么传——tool call 关联到一个装着 HTML 的 resource
- 旧世界:你问一句,agent 去调 MCP server,最好的情况是拿回一段纯文本响应,「这显然不够好」。→ 详细
- 新做法没有发明新原语,而是复用 MCP 已有的 resource:server 注册一个带特定前缀的 resource,里面装的就是 HTML;发出的 tool call 关联到这个 resource。Ido 展示代码时反复强调「代码非常简单——就是那个装着 HTML 的 resource,齐活了」。这是这场演讲最值得记住的工程事实:能力升级发生在约定层,不在协议新增层。→ 详细
- host 侧:这个 resource 被 host 消费——「实际工程里通常是提前消费的,也就是预加载」,不是等到用时才拉。拿到 HTML 后,host 用 MCP UI SDK 渲染,而所谓 SDK 本质上就是一个 React component 或 web component,它接收两样东西:那个 resource + 一个 callback。callback 就是下面那套通信协议的实现。→ 详细
- 渲染发生在一个 sandbox(沙箱,把这段外来 HTML 关在隔离环境里跑,不让它碰宿主页面) 里——这是安全模型的落点:server 送来的是别人写的界面代码,所以它只能在沙箱里活着,且不能自己发网络请求给自家后端。→ 详细
04
机制二:点击怎么回流——事件上报 host,由 host 决定调不调 tool
- 以「给这首歌点收藏」为例:用户点下按钮时,app 不是直接给 Spotify 的后端发消息,而是给 host 发一条消息,大意是「嘿,用户点了个按钮,你处理一下,我建议你去调 Spotify MCP server 里的某个 tool」。→ 详细
- 注意用词是「我建议你」:app 只有建议权,「host 始终掌握着流程的控制权」,最终由 host 决定要不要真的去调那个 favorite tool。MCP Apps 标准化的就是这条链路。→ 详细
- 完整回路:点击 → 事件通过 callback 一路往上传 → 模型接到事件 → 它可以发出一个 tool call、去调一个 resource,或者做别的任何事,把整个 agentic loop 走完。所以界面上的一次点击,等价于往 agent 循环里注入了一次输入。→ 详细
- 另一种回流形态:点某一步不一定触发 tool,也可以把一条 prompt 送回模型——比如点漏斗里的某一步,就等于对模型说「给我解释一下这一步」,流程继续往前推。→ 详细
05
PostHog 演示:从「事实正确但没用」到一眼看懂
- 场景就是产品经理本人:想知道自己的漏斗(funnel,用户从进来到转化一路掉了多少人)现在什么状况。旧世界里 Claude 调 PostHog 的 server,拿回一段文字——「这段文字事实上没错,但没用」,「我得一行行读,可我不想读」。这句话是全场对现状最准确的判词:正确性不等于可用性。→ 详细
- 新世界里只要补一句「给我看看」,拿回的就是一个可交互的 widget,而且带 PostHog 品牌样式——「你其实是在 ChatGPT、Claude 这些地方里获得了 PostHog 的体验」。同一份数据,载体从"文字墙"换成"仪表盘",理解成本从"逐行读"变成"扫一眼"。→ 详细
- 更妙的是第二层:他接着问「什么叫漏斗」——这个回答的界面不来自任何 server,是 Claude 自己用 MCP Apps 现生成的 generative UI,HTML 流式渲染出来,于是一次概念解释也变成了可交互的学习体验。同一条协议既能承载"厂商预制的界面",也能承载"模型临时造的界面"。→ 详细
06
权力转移:用户旅程从应用手里,交到 host 手里
- 这是全场最有分量的一段:如果我在 Shopify 的 MCP app 里点了什么,掌控我这段旅程的就不再是 Shopify 了,而是 host。以后没有哪个应用还能控制用户旅程——「Amazon 没法再看到我的完整路径,所有东西都要经过 chat,因此是可审计的」。对平台方是失控,对用户是第一次把动线握回自己手里。→ 详细
- MCP Apps 把这件事写成了规范:定义了 app 对用户旅程的三个层级的控制权——最轻的一级,app 只是通知 chat「发生了某件事」;中间一级,app 建议 chat 去调某个 tool(就是上面 Spotify 收藏的那条);最重的一级,app 直接请求 chat 去跑一条 prompt,把责任全部交出去。权限从"告知"到"建议"到"移交",是一条清晰的信任阶梯。→ 详细
- 讲者对时间线的判断:「2025 年我们用了一整年把 MCP UI 标准化,而 2026 年将会是它成为全球 UI 标准的一年。」→ 详细
07
愿景:把网站的 UI 拆成原子,由助理来组合
- 反例先讲清楚:为了安排一个纪念日,以前你得在浏览器里开 20 个标签页,挨个向 Google Calendar、Amazon、Booking、Booking 再一次、Amazon 再一次表达意图。而「那些界面上 99% 的东西我根本用不着,因为这些 UI 不认识我,它没有关于我的 context」——传统 UI 是给所有人做的最大公约数,所以对具体某个人几乎全是冗余。→ 详细
- 那就把 UI 拆成原子,由掌握你 context 的私人助理来组合。助理主动说「我看到你有个纪念日快到了」,然后不是把 Google Calendar 的数据念给你听,而是直接渲染出一块 Google Calendar 的界面。→ 详细
- 他专门算了三方账,这是这套东西能推得动的原因:对用户好——我认识 Google Calendar,我信任它;对 Google 好——品牌和识别度保住了;对 host 好——这些能力它不用自己再开发一遍。任何一方吃亏,标准都推不动。→ 详细
- 结论:「网站会碎成一块块小的 UI 片段,长在个人助理里面」,你整个流程都不用离开助理就能走完,助理甚至知道该去 booking.com 把那张地图拉过来——「这些我不需要自己操心」。→ 详细
08
生态盘点:早期采用者、现在的支持名单,以及 ChatGPT Apps 的真相
- 一年前最早支持 MCP UI 的:ElevenLabs、Shopify、Postman、Goose。花絮——演讲当天 Block 就发布了基于 MCP Apps 的 agentic commerce(智能体电商)方案,而 Goose 这个当年第一个支持 MCP UI 的 client,如今已是 Block 产品的一部分。→ 详细
- 今天的支持面:Cursor、Copilot、GitHub、ChatGPT、Postman、Claude。最关键一条事实——你知道的 ChatGPT Apps 就是基于 MCP Apps 做的,OpenAI 官方推荐用它来做 ChatGPT Apps。→ 详细
- 时间线:MCP UI 是 Ido 去年 5 月做的开放协议(既规定 UI 怎么传,也规定应用怎么跟 host 通信);几个月前与 Anthropic、OpenAI 一起做成 MCP 官方扩展 MCP Apps,上线当天 Claude 和 VS Code 就支持了。→ 详细
09
治理:官方仓库、每三周一次的工作组,以及"用官方 SDK 白嫖新特性"
- 官方 SDK 与规范都托管在官方 model context protocol 仓库下的 MCP Apps repo,开放提 PR、挂着 issue 招贡献;MCP 委员会下另有一个每三周开一次会的开放工作组(Anthropic、OpenAI 和所有合作方都在内),明确目标是「让这份规范不只服务大厂的 app,也服务社区」。社区已长出插件、各种 agent 的集成,甚至有人开了做 MCP Apps 的课。→ 详细
- 一条很实际的建议:官方 SDK 由规范维护者本人直接维护,规范一改就立刻反映到 SDK,"新东西自动到手"——自己包一层就等于自己扛升级成本。→ 详细
- 补充背景(非演讲内容):2026-07-28 版 MCP 规范已把 Apps 与 Tasks 正式列为官方扩展,讲者说的"官方扩展"到这一版才落地成规范条文。
10
路线图之一:reusable views——别让 Autodesk 的 3D 每次重渲染
- 被问得最多的下一步是可复用的 view。痛点很具体:像 Autodesk 这种 app 很重,整个 3D 渲染都塞在里面,「他们不想每次都把那个东西重新渲染一遍,因为又慢又低效」。→ 详细
- MVP 阶段只能每次重渲染,正在琢磨的解法是:让 server 传一个标识符过来,让模型能一直更新同一个 view——相当于给界面加上"身份",从一次性快照升级成有状态的长驻组件。→ 详细
11
路线图之二:app tools / view tools——让 chat 反过来操作界面
- 前面讲的都是"用户在 app 里做事,app 跟 host 说话"。反方向呢?如果用户说「帮我把这个表单填了」,chat 要能替用户去操作那块界面。→ 详细
- 参照物是 WebMCP(Google 那套关于 agent 怎么跟 web view 交互的标准),MCP Apps 把同一件事标准化成 app tools / view tools,「现在已经写进规范了,很快就会正式发布」。至此双向都通:界面能喂给 agent,agent 也能操作界面。→ 详细
12
generative UI 谱系与互操作:一端预定义,一端全生成
- 他画了一条谱系:一端是预定义 UI(就是 MCP Apps 本身,像个黑盒 iframe——网页里嵌的独立小窗口,Autodesk 的界面就在里面渲染);中间是声明式 UI(JSON render、A2UI 这类,app 只返回"UI 该怎么搭"的说明,真正搭出来的是 chat);另一端是完全生成式 UI。→ 详细
- 关键取舍:MCP Apps 对"UI 是怎么生成出来的"不关心、不绑定,只管传输和通信——所以 Claude 里那个说一句就出界面的 Imagine,背后就是一个 MCP app。→ 详细
- 互操作已有文档:几天前发布了 A2UI 与 MCP Apps 的互操作指南——同一个 server 可以写一份 A2UI 发给 Gemini,同时包成 MCP app 发给 ChatGPT,反过来也一样。「写一次到处跑」是实的:同一套代码库既跑在开源客户端 LibreChat 上,也跑在 ChatGPT 里。→ 详细
13
最后落到分发:这是一条比 App Store 大两个数量级的渠道
- 「这不只是一项技术,也不只是一个很酷的功能,这是一种全新的应用分发方式。」→ 详细
- 三个数字,一个都别丢:ChatGPT 一家 8 亿周活用户 = 全球人口的 10%;整个 web 花了约 13 年才到这个用户量级;最近几个月的增长已经超过 10 亿——「光这一点,就相当于 Apple App Store 刚上线时可触达市场的 170 倍」。→ 详细
14
闪电问答 / 收尾
这是 18 分钟的大会演讲,没有 lightning round,收尾是三句话加一次号召。
- 怎么上手:直接把示例 clone 下来,去官方 model context protocol 仓库底下的 MCP Apps repo;如果你是做 host(客户端)的,同样去这个 repo,或者看 MCP 官网。现场给了二维码。→ 详细
- 参与方式:「欢迎大家去官方仓库看看」「去那个 repo 就能参与进来」——规范还在演进,「你还有很多时间、很大的空间去影响这个未来长成什么样」。→ 详细
- 收尾金句:「所以,拥抱这个新的 web 吧,它真的很棒。有了 MCP Apps,你只要写一次,就能到处跑。未来一片光明——虽然还没到贾维斯(Jarvis,钢铁侠那个全能助理)那种程度,但有了 MCP 和 MCP Apps,我们已经很接近了。」→ 详细
15
联系方式
演讲没有留个人社交账号,只给了三个入口:
- MCP Apps 官方仓库(SDK + 规范):在官方 model context protocol 仓库底下;现场投过二维码。→ 详细
- MCP 官网(做 host 的从这里入)。→ 详细
- MCP 委员会下的 MCP Apps 工作组:开放参与,每三周开一次会。另:Liad Yosef 新创办的研究实验室叫 Aura(研究 agentic web)。两人现场说「散场之后欢迎来找我们聊」。→ 详细