Safari MCP 出了,但真正值得炼的是‘完全本地运行’这五个字
· 阅读约 2 分钟
旧稿是这样写的:
请仔细查看这个网页,告诉我它的布局和交互有什么问题,注意控制台的报错信息。
三十几个字,当时觉得挺周到。现在看,"仔细"是态度,不是标准;"布局和交互"是我嘴里的词,不是模型眼里的东西;"控制台的报错信息"——我凭什么觉得控制台里会有报错?这整句话的毛病不在措辞,在【这个网页】四个字:我在让模型猜一个我没给它看的页面。
描述永远是有损的。我说"这个按钮在右上角有点挤",模型接住的是一串字面的概念,它不知道那个按钮实际渲染出来是圆角还是直角、hover 有没有反馈、在 375px 的视口下还挤不挤。我在用文字复述一个页面,而不是让它看那个页面。材料不对,措辞再准也白搭。
这里值得推敲一下。Safari 支持 MCP 本身——一个浏览器厂商上个世纪就做过的 driver 层包了一层外壳,没什么好激动的。我盯住的是后半句:【完全本地运行】。
这五个字才是题眼。Safari MCP 给模型的是什么:DOM、网络请求、截图、控制台输出,还能执行 JavaScript、切标签、模拟点击。模型终于不用靠我的二手描述来猜页面了,它自己上手摸。但这件事敢不敢做,取决于那五个字——捕获的内容直接交给用户正在用的代理,不走 Apple 的服务器。如果我的代理连的是云端一个我摸不清底细的 API,我敢不敢给它一个能直接读 DOM、能执行 JS 的浏览器窗口?反正我不敢。完全本地,才敢。
以前大家还在训怎么把"请"字删掉、把"仔细"换成具体清单,那层功夫不白费,但只是治标。一条 prompt 写得再精确,只要它是在描述一个渲染结果,就都是在 lossy 压缩。真正的解法是让模型吃到一手材料:MCP 把"渲染后的页面"本身变成了上下文的一部分。模型看到的不是我转述的页面,是页面自己。
定稿先放这:
用 Safari MCP 服务器打开目标页面,把 DOM、控制台和网络请求喂给代理,让它先复述自己看到了什么,再报问题。你只在最后做判断题。
这不是把旧稿修了几个字,是把"描述页面"整件事换成了"打开页面"。改到这会儿,我已经不太确定这算 prompt 还是算工作流了。先这么用着,哪天 Safari MCP 更新一版,这句话大概率又要推翻。为一个字纠结一下午,说出去有点丢人,但这次纠结的不是一个词,是一个"完全本地运行"的承诺——这种事在我这儿不算新鲜。
评论
还没有评论,写下第一条讨论。