← 返回博客

Roo Code 接 MCP 自动发布内容:远程服务器要写 streamable-http,项目级配置别提交

·Roo Code MCPstreamable-httpAI 自动发布AI 发布内容mcp_settings.json

Roo Code 接 MCP 自动发布内容:远程服务器要写 streamable-http,项目级配置别提交

一句话回答:Roo Code 里接 MCP 自动发布内容,在 MCP 设置页点 Edit Global MCP,往 mcpServers 里加一项,type 写 "streamable-http",url 填接入地址。Roo 的远程服务器必须写明 type,漏了这个字段是最常见的“配了没反应”。工具默认每次都要你批准,发布有副作用,建议保持。

Roo Code 的根键和 Cursor 一样叫 mcpServers,但远程服务器的写法有自己的约定。下面按 Roo Code 官方文档现在的说法来讲,涉及版本差异的地方我会标出来。

先搞清 PublishPort 给 AI 的是什么

PublishPort 暴露给 AI 的只有两个通用工具:list_capabilities() 告诉 AI 这台电脑上登录了哪些平台,local_bash(cmd) 把命令经官方中转交给你本机客户端执行,用的是你自己浏览器里的登录态。各平台要传什么参数,AI 自己读命令的 --help 就知道,不用给每个平台单独配 MCP 服务器。

先装好 PublishPort 客户端,登录要发布的平台,到「接入 AI」页面生成接入地址。下面的 <接入地址> 都指这一条。原理见《MCP 内容发布服务器到底是怎么工作的》。

配置写在哪:全局和项目两个文件

官方文档说 MCP 配置可以放在两个层级:

入口都在 Roo Code 面板顶部的 MCP 图标里,滚到页面底部有 Edit Global MCP 和 Edit Project MCP 两个按钮,点后会直接打开对应文件(项目级文件不存在会帮你建)。

PublishPort 的接入地址等于钥匙,所以我放全局文件,不放 .roo/mcp.json。后者官方明确建议可以提交进版本控制,一旦提交,地址就跟着仓库走了。

远程服务器的写法

官方文档里的 Streamable HTTP 示例是这样的,type、url 必填,headers 可选:

{
  "mcpServers": {
    "publishport": {
      "type": "streamable-http",
      "url": "<接入 AI 页面给的接入地址>"
    }
  }
}

要点:

保存后回到 MCP 页面,服务器旁边会显示连接状态,也可以点重启按钮重连、用开关临时禁用。

自动批准:要开两层

Roo 的自动批准默认关闭,而且是两层都开才生效:

  1. 在 Roo 的自动批准设置里打开全局的 “Use MCP servers”
  2. 在具体服务器的工具列表里,给某个工具勾 Always allow

官方文档特别说明,全局那一项优先,它关着的话,单个工具勾了也不会自动批准。

发出去的内容撤回成本高,我的做法是只对 list_capabilities 勾 Always allow(它只读,用来看有哪些平台在线),local_bash 保持每次确认。你也可以在 JSON 里用 alwaysAllow: ["list_capabilities"] 达到同样效果。官方还有 disabledTools 可以把不想暴露给模型的工具直接关掉。

让 AI 按你的流程来

文档里提到,除了服务器自带的工具描述,还可以用 Custom Instructions 引导 Roo 怎么用某个 MCP 工具。发布场景可以写几条固定规矩,比如:

这类规则放进去,比每次在对话里重复省事。

一个例子:改完的文章直接发出去

在 Roo Code 里让它改完一篇文章,然后说“把这篇发到掘金和知乎,先存草稿”。AI 先调 list_capabilities() 确认平台在线,再读命令的 --help 补齐参数,用 local_bash 执行。每次 local_bash 弹出批准框时,看一眼命令里的标题和目标平台再点同意。两个平台的差异见掘金自动发布和知乎自动发文。

边界

接入前过一遍:

常见问题 / FAQ

Roo Code 配了 MCP 服务器却没反应?

先看是不是漏了 type: "streamable-http",其次看服务器开关有没有被关、地址有没有复制完整。

全局配置和项目配置我该用哪个?

PublishPort 的接入地址是凭据,建议用全局文件。项目级 .roo/mcp.json 适合放不含密钥、需要团队共享的服务器。

勾了 Always allow 为什么还是每次问我?

自动批准要全局的 “Use MCP servers” 和单个工具的 Always allow 同时开启,只开一层不生效。

Roo Code 和 Cline 的配置通用吗?

不能直接照抄,Roo 远程服务器要写 type,字段名也和 Cline 不完全一致。Cline 的写法见这一篇,其他编辑器可以看 Cursor 和 Zed。


接入细节以 PublishPort 文档为准,Roo Code 的配置字段如有变动,以官方 MCP 文档为准。