概述

openclaw mcp 有两个职责:

职责命令说明
OpenClaw 作为 MCP 服务端mcp serve将 OpenClaw 渠道会话暴露给 MCP 客户端(Codex、Claude Code 等)
OpenClaw 作为 MCP 客户端注册表mcp list/show/set/unset管理 OpenClaw 保存的出站 MCP 服务器定义

若要 OpenClaw 托管编码运行时并通过 ACP 路由,用 openclaw acp,不是 mcp serve。


mcp serve — OpenClaw 作为 MCP 服务端

适用场景

  • Codex、Claude Code 或其他 MCP 客户端需要直接访问 OpenClaw 渠道会话
  • 已有本地或远程 OpenClaw Gateway 并有路由会话
  • 需要一个跨渠道后端的统一 MCP 服务器

工作原理

openclaw mcp serve 启动一个 stdio MCP 服务器。MCP 客户端拥有该进程。桥接器通过 WebSocket 连接到 Gateway,将路由的渠道会话暴露为 MCP 对话。

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
openclaw mcp serve --claude-channel-mode off

选项

选项说明
--urlGateway WebSocket URL
--token / --token-fileGateway token(优先用文件)
--password / --password-fileGateway 密码(优先用文件)
--claude-channel-modeauto(默认)/ on / off
-v, --verbose详细日志输出到 stderr

暴露的 MCP 工具

工具说明
conversations_list列出有路由元数据的最近会话
conversation_get按 session_key 获取单个会话
messages_read读取会话的最近 transcript 消息
attachments_fetch提取 transcript 消息中的非文本内容块
events_poll从数字游标读取队列中的实时事件
events_wait长轮询直到下一个匹配事件到达或超时
messages_send通过会话已有路由发送回复
permissions_list_open列出桥接器连接后观察到的待处理审批请求
permissions_respond解决审批请求(allow-once/allow-always/deny)

事件类型

events_poll/events_wait 返回的事件:message、exec_approval_requested、exec_approval_resolved、plugin_approval_requested、plugin_approval_resolved、claude_permission_request

事件队列从桥接器连接时开始,不重放历史。历史消息用 messages_read。

Claude 渠道通知

--claude-channel-mode on/auto 时,服务器额外发送:

  • notifications/claude/channel:入站用户消息
  • notifications/claude/channel/permission:Claude 权限请求

仅对理解 Claude 特定通知方法的客户端有意义;通用 MCP 客户端用标准轮询工具。

MCP 客户端配置示例

{
  "mcpServers": {
    "openclaw": {
      "command": "openclaw",
      "args": ["mcp", "serve", "--url", "wss://gateway-host:18789", "--token-file", "/path/to/gateway.token"]
    }
  }
}

安全边界

  • 桥接器只暴露 Gateway 已知路由的会话
  • messages_send 只能通过已存储的路由回复
  • 审批状态仅在当前桥接会话期间有效(内存中)
  • 桥接器认证使用与其他远程 Gateway 客户端相同的 token/password 控制

mcp list/show/set/unset — MCP 客户端注册表

管理 OpenClaw 保存的出站 MCP 服务器定义(存储在 mcp.servers 配置中),供 embedded Pi 等运行时后续使用。

openclaw mcp list
openclaw mcp show context7 [--json]
openclaw mcp set context7 '{"command":"uvx","args":["context7-mcp"]}'
openclaw mcp set docs '{"url":"https://mcp.example.com","transport":"streamable-http"}'
openclaw mcp unset context7

这些命令只读写配置,不连接目标 MCP 服务器,不验证可达性。

传输类型

传输关键字段说明
stdiocommand、args、env、cwd启动本地子进程,通过 stdin/stdout 通信
SSE/HTTPurl、headers、connectionTimeoutMs连接远程 HTTP SSE 服务器
streamable-httpurl、transport: "streamable-http"、headersHTTP 流式双向通信

stdio env 安全过滤:NODE_OPTIONS、PYTHONSTARTUP、PYTHONPATH 等解释器启动控制变量被拒绝,需在 Gateway 宿主进程中设置。


相关页面

  • concepts/plugin-sdk-overview — Plugin SDK(MCP 桥接相关)
  • concepts/cli-plugins — openclaw plugins