Claude 的 artifact 能调 MCP 了,我最想接的那几个却全用不上

哈喽,我是飞飞。
先交代个背景,免得你以为我又在炒剩饭。我最近连着写了几篇 Claude Code 的东西:一篇用 hook 把它满嘴的黑话遮掉、一篇聊 OpenAI 教人写提示词我只信一半、还有一篇扒它本机藏了 147 个域名。那几篇讲的是它的钩子、提示词、隐私。今天这篇不碰那几层,讲的是 artifact 这东西刚长出来的一个新本事:它能调 MCP 了。
说人话,artifact 就是你让 Claude 现场生成的那个网页小卡片。以前它是死的,画面画好摆在那,顶多点两下。现在官方开了个口子,让它能连上 MCP 连接器,去外面实时取数、甚至替你执行操作。等于这张卡片从一张海报,变成了一个会自己动的小应用。
我看到这条的第一反应,是想把天天挂在 Claude Code 里的那几个 MCP 全接进去。结果想岔了,还岔得挺彻底。
先说这次它到底变了啥
它到底变了啥,我先讲明白,后面那几堵墙你才有体感。
MCP 你可以理解成给 AI 外接工具的一个统一插头。连接器,就是你在 claude.ai 上授权过的那些外部服务,日历、云盘、Gmail、Slack 这类。以前 artifact 够不着它们,现在能了。
官方给的接法是两条臂,分工很清楚。一条叫 watchTool,管「一直把最新数据显示出来」,它自己刷新、自己缓存,你要的话还能定时轮询,但它只读,不许拿去干写操作。另一条叫 callTool,管「点一下执行一次」,取数、发消息、改日历这种一次性动作走它。
最关键的一句我先撂这:这些调用,全跑在打开这张卡片的那个人自己的凭证上,你的代码从头到尾看不到任何 token。谁打开,就用谁的账号去取谁的数据。这句话是后面一切边界的根。
适用 Pro、Max、Team 和企业版,免费档没有。读和写都支持。
我想接的那几个全废了
好,回到我那个「全接进去」的冲动。
我在 Claude Code 里常年挂着好几个 MCP server,各管各的:banana-image 生封面、sync-assistant 做多平台分发,还有 context7 查最新文档、搜索、抓网页的。这套东西我用得很顺,配图、发文、查资料一条龙。我当时的算盘是,把 banana-image 接进 artifact,做个能一键生成封面的小面板,多爽。
接不了。一个都接不了。
artifact 认的连接器,只有你挂在 claude.ai 上的那些。我在 Claude Code 命令行里本地配的 MCP,它一个都看不见。这一条我一开始还以为自己哪没设对,后来发现不对,它压根不算 bug。命令行里的 MCP 是你这台机器上的私活,claude.ai 的连接器是账号级、跟着人走的授权,两套东西。artifact 要给「每个打开它的人」用,自然只能认后面那套。
我不太死心,专门搭了个最小的探针页面去验。这个页面什么都不干,就调一个 listTools,让它把「我这张卡片能看到你连了哪些连接器」列出来。我能声明进去的,翻来覆去就是 Gmail、日历、云盘这几个 claude.ai 上的,我那套命令行 MCP 连报名的资格都没有。
想用也不是没辙。你得把那个能力做成 claude.ai 认的连接器,官方集成,或者一个远程 MCP 服务挂上去,本地那份不算数。
顺带说个我之前踩的教训。我在 Claude Code 里也贪过多,一口气挂七八个 MCP,结果 Claude 老在不该调的时候瞎调,排查半天才发现是工具定义把上下文撑爆了,删到只剩三个才顺手。artifact 这边声明连接器是同一个理:你在卡片里报几个连接器,就等于给它开多大的授权面,用不上的一个都别声明。
声明它就不能公开分享
接着这一下,撞得更有意思,也更值得琢磨。
我把探针页面发出去的时候发现,只要我在卡片里声明了要调 MCP,它就再也不能公开分享了。这不怪我权限设错,是写死在规则里的:一个握着「能调你连接器」这种授权的页面,官方不让它挂到开放网络上给所有人看。
我一开始有点嫌它死板。可站在它的角度想一遍,我立刻服了。
你想想那个凭证模型:谁打开就用谁的账号取数。假如这种页面能公开挂出去,那随便一个陌生人点进来,页面就拿着他的日历、他的邮箱去取数、去执行操作。这口子一旦开在开放网络上,等于把「替人操作私人服务」的能力散给了整条街。所以官方的分法是,组织内部分享可以,因为每个同事都拿自己的账号各自授权、各看各的数据;公开到互联网那种,一律不行。
分享和分享,差的就是这一层。承认这条边界之后,我原来那点嫌弃就没了。
发布卡我一道没验证的墙
最后还有一下,是发布那一刻才蹦出来的,挺细,但很能说明它的脾气。
我发布探针的时候,系统直接回我一条警告:你声明了要调日历、Gmail、云盘这几个连接器,可这个会话里我一次成功调用都没观察到,等于你在对着一个没验证过的接口发布。
我这个探针是故意只调 listTools、没真去调那几个工具的,所以这条警告对我无害。但它背后那条纪律很硬:它不许你对着一个自己都没跑通过一次的接口,凭想象把代码发出去。你要真调某个连接器的工具,就得先实打实跑一次、看清它返回长什么样,再照着写。
这条我特别有共鸣。我自己写 skill 踩过太多这种坑:规则写虚了、接口没验过,agent 立马给你飘。它现在等于在发布这一关,替你把「你到底验没验过」这件事拦下来问一句。
读的活随便接写的活掂量
三堵墙撞完,这东西到底该拿来干哪类活,我心里的分法也清楚了。
只读的展示型,放心接。用 watchTool 做个看板,今天的日程、云盘里最近改过的几个文件、某个服务的实时状态,它自己刷新、自己缓存,你只负责把画面排好看。这类是 artifact 调 MCP 最稳、最值当的用法,掉链子也就是数据没刷出来,不会闯祸。
写操作,得掂量。callTool 能替你改日历、发消息、动数据,但官方在文档里反复强调,写这种一次性动作别自动重试,要卡在一次明确的用户点击后面才发。网络一超时,你根本分不清那条写操作到底成没成,闷头重发就可能发两遍。这跟我这两天看着别家全自动 agent 冷不丁删文件删库是一个道理,能动真格的能力,权限得收着给。
私密连接器,我给自己定了条线。Gmail 这种一接进去、页面就能替我读邮件的,我暂时只在自己私有的卡片里试,绝不声明进任何打算给别人看的页面。哪怕它公开不了,我也不想赌。
一句话收束我这轮实测:artifact 能不能取数,早就不成问题了;真正要你拿主意的,不在它取不取得到数,在你敢把哪个连接器、哪一档权限,交给一个别人也能打开的页面。
你会先拿哪个连接器试
你要也想上手,我给你一个最小的起手式:别一上来就想着让它替你干活。先挑你最常用的一个只读连接器,比如日历,用 watchTool 搭一个纯展示的小看板,把刷新、报错这些状态都接住,跑顺了再谈别的。写操作和私密服务,等你把只读那套摸熟了再碰。
我自己下一步想接的也是日历,做个把今天要干的事直接铺在卡片上的东西。但我暂时不会让任何一张卡片替我执行写操作,这道口子我还想再看看。
轮到你了:你会第一个把哪个 MCP 接进 artifact?你敢不敢让它执行写操作,还是跟我一样,先只让它「看」不让它「动」?评论区聊聊。