一句话回答:Qwen Code 里接 MCP 自动发布内容,一条命令:
qwen mcp add --transport http publishport <接入地址>。如果手写settings.json,远程 HTTP 服务器的字段是httpUrl,不是很多客户端用的url。在 Qwen Code 里url对应的是旧版 SSE,写错了就会连不上。发布有副作用,别给local_bash开trust。
Qwen Code 的 MCP 配置有自己的字段命名,照着别的编辑器的教程抄很容易踩坑。下面按官方文档现在的说法讲,涉及版本变动的地方我会标出来。
先搞清 PublishPort 给 AI 的是什么
PublishPort 暴露给 AI 的只有两个通用工具:list_capabilities() 告诉 AI 这台电脑上登录了哪些平台,local_bash(cmd) 把命令经官方中转交给你本机客户端执行,用的是你自己浏览器里的登录态。各平台要传什么参数,AI 读命令的 --help 就知道,不用给每个平台单独配 MCP 服务器。
先装好 PublishPort 客户端,登录要发布的平台,到「接入 AI」页面生成接入地址。下文的 <接入地址> 都指这一条。原理见《MCP 内容发布服务器到底是怎么工作的》。
方法一:qwen mcp add
官方快速开始给的就是这种写法:
qwen mcp add --scope user --transport http publishport <接入地址>
几点说明:
--transport http是官方推荐的远程方式,文档说服务器同时支持 HTTP 和 SSE 时优先选 HTTP--scope不写默认就是 user 作用域,写进~/.qwen/settings.json,所有项目通用- 加完后启动
qwen,输入/mcp能看到服务器和工具列表;如果 Qwen Code 当时已经在运行,需要在同一项目里重启,模型才看得到新工具
方法二:直接改 settings.json
两种方法生成的 mcpServers 条目是一样的。手写的话:
{
"mcpServers": {
"publishport": {
"httpUrl": "<接入 AI 页面给的接入地址>"
}
}
}
字段对应关系(官方表格):
| 传输方式 | JSON 字段 | 说明 |
|---|---|---|
| http | httpUrl(可选 headers) |
推荐,远程服务 |
| sse | url(可选 headers) |
旧版 / 已弃用 |
| stdio | command、args |
本机进程 |
所以把 Cursor 或 Cline 教程里的 url 原样抄进来,Qwen Code 会按 SSE 去连。PublishPort 的接入地址是 Streamable HTTP,这样写大概率连不上,qwen mcp list 里会显示 Disconnected。
用户级还是项目级
官方只让你关心两个作用域:
- User:
~/.qwen/settings.json,默认 - Project:项目根目录的
.qwen/settings.json
接入地址等于钥匙,我放 user 级,不放项目里的 .qwen/settings.json。项目级文件容易被一起提交,地址就跟着仓库走了。一定要放项目级的话,把 .qwen/ 加进 .gitignore。
权限怎么收
发出去的内容撤回成本高,三个开关值得了解:
trust:默认false,每次工具调用都要确认。设成true会绕过这个服务器所有工具的确认。官方的说法是“请谨慎使用”,而且注解只是服务器给的行为提示,不是授权边界。发布类服务器我不开。includeTools/excludeTools:限制服务器暴露哪些工具。只想让 AI 看平台在线情况,可以只 includelist_capabilities;不过这样 AI 就发不了东西,通常只在做只读巡检时用。mcp.allowed/mcp.excluded:全局名单,按服务器名匹配,支持通配符。两边都命中时 excluded 优先。
另外有一条跟发布场景直接相关的行为:连接中途断开时,Qwen Code 只会在服务器 trust: true、工作区受信任、且工具声明了 idempotentHint: true 或一致的只读注解时才自动重放调用;其他情况会提示“结果可能未知”,让你先去核实再重试。这对发布很重要,网络抖一下,帖子可能已经发出去了,重试前先到平台看一眼,别发出两篇。
一个例子:写完直接发
在 Qwen Code 里让它改完一篇文章,然后说“把这篇发到掘金和知乎,先存草稿”。AI 先调 list_capabilities() 确认平台在线,再读命令的 --help 补齐参数,用 local_bash 执行。每次确认框弹出来,看一眼命令里的标题和目标平台再同意。各平台差异见掘金自动发布和知乎自动发文。
边界
- 以上字段取自官方文档当前版本,Qwen Code 迭代快,字段若有变动以官方为准。我没有在每个版本上逐一实测。
- 远程服务器默认只有 5 秒的发现超时(
discoveryTimeoutMs),网络慢导致工具列表出不来时,可以给这个服务器单独调大;timeout是工具调用超时,默认 10 分钟,和它不是一回事。 - 用真实设备和登录态,不等于账号从此不会被限流。短时间往多个平台连发同一篇内容,平台怎么处理谁也不能保证,发布节奏和内容质量仍要你自己把关。
- 接入地址不要写进会提交的仓库。已经泄露就去客户端重新生成。
接入前过一遍:
- 用的是
httpUrl(或--transport http),不是url - 配置在 user 级文件,或项目级文件已忽略提交
- 没有给发布服务器设
trust: true - PublishPort 客户端在后台运行,目标平台已登录
常见问题 / FAQ
Qwen Code 里 qwen mcp list 显示 Disconnected 怎么办?
先确认字段是 httpUrl 而不是 url,再检查地址有没有复制完整。官方排查建议是核对 URL,然后调大 timeout。
加完服务器模型还是看不到工具?
Qwen Code 在添加之前已经运行的话,需要在同一项目里重启。重启后输入 /mcp 看服务器状态。
Qwen Code 和 Roo Code 的配置能通用吗?
不能直接照抄。Qwen Code 远程服务器用 httpUrl,Roo Code 用 type: "streamable-http" 加 url。Roo 的写法见这一篇,Cline 见这一篇。
能不能让 Qwen Code 定时无人值守地发?
qwen 有非交互模式(--prompt),文档说它会等 MCP 发现稳定后才发出第一个 prompt。但无人值守意味着没人看确认框,发布前建议先存草稿。思路见无人值守定时发布。
接入细节以 PublishPort 文档为准,Qwen Code 的配置字段如有变动,以官方 MCP 文档为准。
