← 返回博客

Windsurf(现 Devin Desktop)接 MCP 自动发布内容:新旧两套配置别搞混

·Windsurf MCPDevin Desktopmcp_config.json 配置AI IDE 发布AI 自动发布

Windsurf(现 Devin Desktop)接 MCP 自动发布内容:新旧两套配置别搞混

一句话回答:Windsurf 已经在 2026 年 6 月 2 日被 Cognition 正式改名成 Devin Desktop,默认助手也从 Cascade 换成了重写过的 Devin Local,两者的 MCP 配置文件路径和字段不一样。想让它把写好的文章真正发到掘金、语雀、公众号,得先确认自己用的是哪一套助手,再照对应格式接一个走 HTTP 的发布 MCP。

按网上教程在 ~/.codeium/windsurf/mcp_config.json 里存过一份 MCP 配置的人,最近打开 Windsurf 可能会发现界面变了:右上角多了一个 Kanban 风格的 Agent 面板,原来的 Cascade 找不到了,底部品牌也悄悄换成了 Devin。配置文件没删、插件也没丢,但照旧教程新装一个 MCP,却发现填进去的字段对不上,官方文档的地址也从 docs.windsurf.com 跳转到了 docs.devin.ai。这不是网络问题,是这个产品这半年经历了一次相当大的变动。

Windsurf 从今年 6 月起其实叫 Devin Desktop,MCP 也分成了新旧两套

事情的来龙去脉:2025 年 7 月,原本传出的 OpenAI 收购 Windsurf(约 30 亿美元)未能成行,谷歌转而花约 24 亿美元拿下 Windsurf 的技术授权,并把 CEO、联合创始人和约 40 名员工挖去了 Google DeepMind;剩下的公司主体、产品和品牌被 Devin 的开发商 Cognition 收购。2026 年 6 月 2 日,Cognition 通过一次静默的在线更新,把 Windsurf 正式改名成了 Devin Desktop,原来的 Cascade 助手被标记为 legacy,新装机默认用的是用 Rust 重写、官方号称 token 效率提升约 30% 的 Devin Local。

好消息是订阅套餐、插件、快捷键、已有配置这些都原样保留,不用重新买或重新装。麻烦在于 MCP 这一块:legacy Cascade 助手继续读 ~/.codeium/windsurf/mcp_config.json,而默认的 Devin Local 走的是 Devin CLI 那套配置体系,文件位置和字段名都不一样。网上大部分“Windsurf MCP 配置教程”是改名之前写的,照抄容易踩空。

官方插件市场能装的东西不少,但没有“发文章”这个

Devin Desktop 的 MCP 面板里能看到一个内置市场,GitHub、Slack 这类官方插件点一下 Install 就能连上,带蓝色勾标的是官方自己做的。翻遍这个市场,同样没有一个是“把写好的文章发到内容平台”——原因跟 Cursor、Trae 上的情况一样:GitHub、Slack 本来就有开放 API,插件作者接起来省事;掘金、语雀、公众号这类平台大多没有对普通用户开放的发布接口,官方自然没动力做插件。

PublishPort 的思路:不按平台注册插件,让 AI 自己当适配器

PublishPort 没有照着插件市场的思路给每个平台单独写一个,而是给 AI 两个通用工具:list_capabilities() 告诉 Devin Local(或者 legacy Cascade)这台设备当前登录了哪些平台账号;local_bash(cmd) 把具体的发布命令下发到本机执行,跑的是驱动真实登录态的开源命令行工具。要不要发某个平台、这个平台要传哪些参数,AI 自己读一遍命令的 --help 就知道,不需要提前给它塞一整套按平台写死的工具定义。

好处是覆盖面不受“这个平台今年愿不愿意开放官方 API”摆布。装好 PublishPort 客户端,用真实浏览器登录要发布的平台账号,就能在「接入 AI」页面拿到一条可以直接接进 Windsurf/Devin Desktop 的 MCP 地址。

具体怎么接:先搞清楚自己用的是哪一套

如果还在用 legacy Cascade(界面里能找到“Cascade”字样,还没切换成 Agent 面板),配置文件在 ~/.codeium/windsurf/mcp_config.json(Windows 是 %USERPROFILE%\.codeium\windsurf\mcp_config.json),远程 HTTP 类型的字段是 serverUrl

{
  "mcpServers": {
    "publishport": {
      "serverUrl": "<PublishPort 接入 AI 页面给的 MCP 接入地址>",
      "headers": {
        "Authorization": "Bearer ${env:PUBLISHPORT_TOKEN}"
      }
    }
  }
}

这套配置支持 ${env:变量名} 插值,token 放进环境变量,配置文件里只留引用,不用担心明文提交进 git。

如果已经用上 Devin Local(默认新装机就是这个),配置改走 Devin CLI 的规则,字段是 url 而不是 serverUrl

{
  "mcpServers": {
    "publishport": {
      "url": "<PublishPort 接入 AI 页面给的 MCP 接入地址>",
      "headers": {
        "Authorization": "Bearer <接入地址对应的 token>"
      }
    }
  }
}

存放位置按用途分三处:项目级 .devin/mcp_config.json 会被 git 追踪,适合团队共享哪些 MCP 服务器要配;个人密钥建议放进同目录下的 .devin/mcp_config.local.json,这个文件默认在 .gitignore 里,官方文档也是这么建议的;只想自己全局用,就放 ~/.config/devin/mcp_config.json(Windows 是 %APPDATA%\devin\mcp_config.json)。三处任选其一,不用重复配。官方文档没有单独说明这套新格式的 headers 支不支持 ${env:} 插值,保险起见先按上面的写法把 token 值直接填进 .local.json 这种本来就不进 git 的文件里。

一个具体例子:文章写完,同时发到掘金和语雀

代码写完、技术笔记也写完之后,跟 Devin Local(或者 Cascade)说一句“把这篇笔记发到掘金和语雀”。它会先调 list_capabilities() 确认这台设备上掘金和语雀是不是都在线,再去查这两个平台发文各自要传哪些必填参数——掘金的分类标签不能瞎填,语雀要指定知识库和文档路径,这些细节跟直接调 local_bash 手搓命令没有区别,AI 自己会先读清楚再动手。确认没问题后分两次调 local_bash 真正执行发布,两条发布回执(成功与否、文章链接)会分别传回来,方便确认两边是不是都真的发出去了,而不是其中一个悄悄失败。

边界:这条路省的是体力活,不是审核和判断

不建议把这条链路做成“写完直接发、没人看一眼”的自动流水线,内容质量和平台合规判断最好留一道人工确认。也不能保证账号从此不被限流——真实设备、真实登录态去掉的是最明显的自动化信号,但发帖节奏还是得照真人的样子来,短时间内往多个平台连续发同一篇文章,节奏拿捏不好照样会被平台盯上。

接进去之前,值得先过一遍这份清单:

常见问题 / FAQ

Windsurf 改名叫 Devin Desktop 是怎么回事,我的插件和 MCP 还能用吗?

Windsurf 在 2026 年 6 月 2 日被 Cognition 通过在线更新直接改名成了 Devin Desktop,不是换了个新产品重新装。订阅套餐、插件、快捷键、已有设置都原样保留,不需要重新购买或迁移账号。变化主要在默认助手上:原来的 Cascade 被标为 legacy,新装机默认用的是重写过的 Devin Local,两者的 MCP 配置格式不通用。

Windsurf/Devin Desktop 里 MCP 显示已连接,但工具列表是空的(No tools found)怎么办?

先做一次完整重启,只关编辑器窗口不会重新加载 MCP 配置,得整个退出再打开。如果重启后还是空,查一下这台设备是不是同时挂了好几个 MCP 服务器——Cascade 面板对同时可用的工具数设了 100 个的硬上限,超出的部分会静默不加载,界面上不会报错提示。PublishPort 走的是单一 HTTP 远程服务,先把用不到的其他 MCP 临时关掉,能排除是不是这个原因。

legacy Cascade 用的 ~/.codeium/windsurf/mcp_config.json 现在还能用吗?

能用。官方明确说这是“legacy Cascade agent”专用的配置文件,只要界面里还能看到 Cascade、没有切换成新的 Agent 面板,这份配置就照常生效,不用主动删除或迁移。真正需要区分的时机是切换到 Devin Local 之后,那时候要新建一份 Devin CLI 格式的配置,旧文件不会自动同步过去。

Devin Local 和 Cursor、Trae 接 MCP 的方式有什么不一样?

协议层一样,都是走 HTTP 远程服务器的 url + headers。差别在字段名和存放位置:legacy Cascade 用 serverUrl 且支持 ${env:变量名} 插值,Devin Local 用 url,且官方文档没有单独说明 headers 是否支持同样的插值语法;Cursor 用 .cursor/mcp.json 区分项目级和全局级,Trae 是账号级配置。已经在 Cursor 或 Trae 里配过一次的可以参考《Cursor 接 MCP 自动发布内容》,JSON 结构大同小异,主要是粘贴的文件和位置不一样。

官方文档链接从 docs.windsurf.com 跳到了 docs.devin.ai,是打错了吗?

不是,这是改名后的正常重定向,docs.windsurf.com 的内容现在实际托管在 docs.devin.ai 域名下,浏览器地址栏跳转是预期行为,收藏夹里的旧链接不用手动改。


不同 AI 客户端接 PublishPort 的方式大同小异,Cursor 怎么接可以看《Cursor 接 MCP 自动发布内容》,字节 Trae 怎么接看《Trae 怎么接 MCP 自动发布内容》;MCP 发布服务器背后的完整机制拆解见《MCP 内容发布服务器到底是怎么工作的》。本文若有出入或过时,以 PublishPort 文档为准。