Cli 导读

mcp 子命令:把 OpenClaw 变成 MCP 服务器,或管理外发 MCP 定义

`openclaw mcp` 只做两件事:`serve` 让 OpenClaw 以 stdio MCP 服务器运行,供 Codex、Claude Code 等客户端直接调用;`set`/`unset` 管理 OpenClaw 自己消费的外部 MCP 服务器注册表。最容易搞错的是:`serve` 只暴露已路由的频道会话,不会启动 OpenClaw 自己的编码运行时——那是 `openclaw acp` 的事。

先讲这一页到底在解决什么

mcp 子命令:把 OpenClaw 变成 MCP 服务器,或管理外发 MCP 定义

`openclaw mcp` 只做两件事:`serve` 让 OpenClaw 以 stdio MCP 服务器运行,供 Codex、Claude Code 等客户端直接调用;`set`/`unset` 管理 OpenClaw 自己消费的外部 MCP 服务器注册表。最容易搞错的是:`serve` 只暴露已路由的频道会话,不会启动 OpenClaw 自己的编码运行时——那是 `openclaw acp` 的事。

原文共 22 节,先看 Start Here 路径:/cli/mcp 查看官方原文

第一眼

🎭 先把这两张脸拆开,不然后面每一段都会像搅在一起的面糊

真的只要记住这一句,整页就会瞬间顺很多。

🛎

openclaw mcp serve

OpenClaw 自己站到桥头,开始接待 Codex、Claude Code 这类 MCP 客户端。

📒

list / show / set / unset

维护一本“别家 MCP 服务器通讯录”。先记住,不代表现在就真的去连。

🧰

openclaw acp 不一样

acp 更像让 OpenClaw 自己托管 coding runtime。这里讲的是 MCP 桥头和地址簿。

📌

一句话

一半是“我来接客”,一半是“我先把别人门牌记下来”。

开桥过程

🚪 mcp serve 开张时,现场会发生什么?

官方列了 1 到 5 步。翻成人话,就是一个桥头岗亭开始营业的过程。

1. 客户端先把它叫起来

不是 OpenClaw 自己在街边摆摊,而是某个 MCP 客户端先启动 openclaw mcp serve,像把岗亭灯先打开。

2. 岗亭去连 Gateway

桥头岗亭亮起来后,会立刻往本地或远端 Gateway 拉一根线,像接上楼里的总机房。

3. 已有会话被搬上柜台

OpenClaw 里那些已经带路由信息的会话,会被整理成 MCP 可见的对话和工具入口。

4. 只在营业时记新动静

这个岗亭只会记它上班期间的新消息。它没开门的时候,不会替你偷偷补旧流水。

命令翻译

🧳 官方那几条 serve 示例命令,分别在做什么?

把这些命令翻成人话,就不会再觉得它们只是“参数拼盘”。

openclaw mcp serve

像说:“桥头岗亭就在本地开张,直接去连我眼前这栋楼里的 Gateway。”

openclaw mcp serve --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.token

像说:“岗亭别连本地,去远处那栋楼。门口通行证别写在命令里,去这个文件里拿。”

openclaw mcp serve --url wss://gateway-host:18789 --password-file ~/.openclaw/gateway.password

这次不是拿令牌通行,而是从密码卡夹里拿一张密码卡,再去远端桥头敲门。

openclaw mcp serve --verbose / --claude-channel-mode off

前者像让岗亭值班员把日志念得更细,后者像关掉 Claude 那套专用传呼方式,只保留普通 MCP 说话方式。

桥上工具

🧰 这些工具名别死记,把它们想成桥头服务动作就行

官方工具列表不少,但其实都很生活化。

📚

conversations_list / conversation_get

像先看柜台上有哪些聊天本,再抽出其中一本翻封面和目录。

📖

messages_read / attachments_fetch

一个是读聊天内容,一个是把里面夹着的图片、附件小纸片单独抽出来看。

🚪

events_poll / events_wait

一个像过一会儿探头看门口,一个像干脆守在门口等下一个人进来。

✉️

messages_send / permissions_respond

一个是顺原路回信,一个是给审批单盖章:这次准、以后都准、还是不准。

最容易误会

⏰ 事件队列只是“营业期记事本”,不是古代到今天的总史书

官方这里特别强调,是因为很多人会误会 events_pollevents_wait 能把很久以前的消息也倒出来。

live-only

岗亭什么时候开门,记事本就从什么时候开始写。

events_wait

像搬个小凳子守在门口等下一次敲门,盯的是“马上要来的动静”。

messages_read

如果你想翻旧账,还是回聊天记录本里看,不要指望门口值班本替你补历史。

🎈 记一句

新动静看事件队列,旧故事看聊天记录。

Claude 那扇侧门

🗣 --claude-channel-mode 只是“同一个岗亭会不会说 Claude 的方言”

别把它想成又多了一座桥。桥还是同一座,只是通知方式多了一种口音。

off

off

岗亭只说标准 MCP 普通话,不发 Claude 专属通知。

on

on

岗亭除了普通 MCP 工具,还会把实时消息换成 Claude 更熟悉的通知方式。

auto

auto

官方现在说得很实在:目前它的行为基本等于 on,还不会聪明地自己猜。

📌

一句话

这不是第二套系统,只是同一个桥头多会一种通报方式。

另一张脸

📒 list/show/set/unset 这半边,只是在整理“以后可能会去拜访谁”

官方专门说了,这几条命令只管理 mcp.servers 配置,不会真的连过去试试对方活没活。

openclaw mcp list

像把地址簿翻开,看里面已经记了哪些服务器名片。

openclaw mcp show <name>

像把某一张名片抽出来,看它的启动命令、参数、环境变量和工作目录。

openclaw mcp set ...

像往地址簿里夹入一张新名片,写明以后该怎么敲这扇门。

openclaw mcp unset ...

像把名片抽走。只是从你的本子里删掉,不是跑去把别人家门拆了。

最后总结

🎈 把这页压成一句最短的话

openclaw mcp 是一座双面桥:serve 让 OpenClaw 站上桥头接客,事件队列只记营业期的新动静;list/show/set/unset 则让它先把别家桥头名片收进地址簿。

如果你想看“OpenClaw 自己托管 coding runtime”那条路,下一页去 /cli/acp。它和这页是两种不同的桥法。