Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
openclaw mcp 有兩項工作:
- 使用
openclaw mcp serve將 OpenClaw 作為 MCP 伺服器執行 - 使用
list、show、set和unset管理 OpenClaw 擁有的外送 MCP 伺服器定義
serve是 OpenClaw 作為 MCP 伺服器運作list/show/set/unset是 OpenClaw 作為 MCP 用戶端側登錄檔運作,供其執行階段稍後可能取用的其他 MCP 伺服器使用
openclaw acp。
OpenClaw 作為 MCP 伺服器
這是openclaw mcp serve 路徑。
何時使用 serve
在下列情況使用 openclaw mcp serve:
- Codex、Claude Code 或其他 MCP 用戶端應直接與 OpenClaw 支援的頻道對話溝通
- 你已經有本機或遠端 OpenClaw Gateway,且其中有已路由的工作階段
- 你想要一個可跨 OpenClaw 頻道後端運作的 MCP 伺服器,而不是執行各頻道各自的橋接器
openclaw acp。
運作方式
openclaw mcp serve 會啟動 stdio MCP 伺服器。MCP 用戶端擁有該程序。只要用戶端保持 stdio 工作階段開啟,橋接器就會透過 WebSocket 連線至本機或遠端 OpenClaw Gateway,並透過 MCP 暴露已路由的頻道對話。
重要行為
重要行為
- 即時佇列狀態會在橋接器連線時開始
- 較舊的逐字稿歷史會透過
messages_read讀取 - Claude 推送通知只會在 MCP 工作階段存活期間存在
- 當用戶端中斷連線時,橋接器會結束,且即時佇列會消失
openclaw agent和openclaw infer model run等一次性代理程式進入點會在回覆完成時淘汰其開啟的任何內建 MCP 執行階段,因此重複的腳本化執行不會累積 stdio MCP 子程序- 由 OpenClaw 啟動的 stdio MCP 伺服器(內建或使用者設定)會在關閉時以程序樹形式拆除,因此伺服器啟動的子程序不會在父 stdio 用戶端結束後存活
- 刪除或重設工作階段會透過共用執行階段清理路徑處置該工作階段的 MCP 用戶端,因此不會有綁定至已移除工作階段的殘留 stdio 連線
選擇用戶端模式
以兩種不同方式使用相同橋接器:- 通用 MCP 用戶端
- Claude Code
僅標準 MCP 工具。使用
conversations_list、messages_read、events_poll、events_wait、messages_send 和核准工具。目前,
auto 的行為與 on 相同。尚未有用戶端能力偵測。serve 暴露的內容
橋接器會使用現有 Gateway 工作階段路由中繼資料來暴露頻道支援的對話。當 OpenClaw 已有含已知路由的工作階段狀態時,對話就會出現,例如:
channel- 接收者或目的地中繼資料
- 選用
accountId - 選用
threadId
- 列出最近已路由的對話
- 讀取最近的逐字稿歷史
- 等待新的入站事件
- 透過相同路由傳送回覆
- 查看橋接器連線期間到達的核准要求
用法
- 本機 Gateway
- 遠端 Gateway(權杖)
- 遠端 Gateway(密碼)
- 詳細 / Claude 關閉
橋接工具
目前橋接器會暴露這些 MCP 工具:conversations_list
conversations_list
列出最近已有 Gateway 工作階段狀態中路由中繼資料的工作階段支援對話。實用篩選器:
limitsearchchannelincludeDerivedTitlesincludeLastMessage
conversation_get
conversation_get
依
session_key 傳回一個對話。messages_read
messages_read
讀取一個工作階段支援對話的最近逐字稿訊息。
attachments_fetch
attachments_fetch
從一則逐字稿訊息擷取非文字訊息內容區塊。這是逐字稿內容上的中繼資料檢視,不是獨立的持久附件 blob 儲存庫。
events_poll
events_poll
讀取自數值游標以來已排入佇列的即時事件。
events_wait
events_wait
長輪詢直到下一個相符的已排入佇列事件到達,或逾時到期。當通用 MCP 用戶端需要接近即時的傳遞,但沒有 Claude 專用推送通訊協定時,請使用此工具。
messages_send
messages_send
透過工作階段上已記錄的相同路由傳回文字。目前行為:
- 需要現有對話路由
- 使用工作階段的頻道、接收者、帳號 ID 和討論串 ID
- 僅傳送文字
permissions_list_open
permissions_list_open
列出橋接器自連線至 Gateway 以來觀察到的待處理 exec/Plugin 核准要求。
permissions_respond
permissions_respond
使用以下其中一項解決一個待處理 exec/Plugin 核准要求:
allow-onceallow-alwaysdeny
事件模型
橋接器在連線期間會保留記憶體內事件佇列。 目前事件類型:messageexec_approval_requestedexec_approval_resolvedplugin_approval_requestedplugin_approval_resolvedclaude_permission_request
Claude 頻道通知
橋接器也可以暴露 Claude 專用頻道通知。這是 OpenClaw 中對應 Claude Code 頻道配接器的功能:標準 MCP 工具仍然可用,但即時入站訊息也可以作為 Claude 專用 MCP 通知到達。- off
- on
- auto(預設)
--claude-channel-mode off:僅標準 MCP 工具。notifications/claude/channelnotifications/claude/channel/permission
- 入站
user逐字稿訊息會轉送為notifications/claude/channel - 透過 MCP 接收的 Claude 權限要求會在記憶體中追蹤
- 如果連結的對話稍後傳送
yes abcde或no abcde,橋接器會將其轉換為notifications/claude/channel/permission - 這些通知僅限即時工作階段;如果 MCP 用戶端中斷連線,就沒有推送目標
MCP 用戶端設定
stdio 用戶端設定範例:選項
openclaw mcp serve 支援:
Gateway WebSocket URL。
Gateway 權杖。
從檔案讀取權杖。
Gateway 密碼。
從檔案讀取密碼。
Claude 通知模式。
stderr 上的詳細記錄。
安全性與信任邊界
橋接器不會自行發明路由。它只會暴露 Gateway 已知如何路由的對話。 這表示:- 傳送者允許清單、配對和頻道層級信任仍屬於底層 OpenClaw 頻道設定
messages_send只能透過現有已儲存路由回覆- 核准狀態僅對目前橋接器工作階段即時/記憶體內有效
- 橋接器驗證應使用你會信任任何其他遠端 Gateway 用戶端的相同 Gateway 權杖或密碼控制
conversations_list 中,通常原因不是 MCP 設定,而是底層 Gateway 工作階段中的路由中繼資料缺失或不完整。
測試
OpenClaw 隨附此橋接器的確定性 Docker smoke:- 啟動已植入資料的 Gateway 容器
- 啟動第二個容器,並產生
openclaw mcp serve - 驗證對話探索、逐字稿讀取、附件中繼資料讀取、即時事件佇列行為,以及外送傳送路由
- 透過真實 stdio MCP 橋接器驗證 Claude 風格的頻道與權限通知
疑難排解
未傳回任何對話
未傳回任何對話
通常表示 Gateway 工作階段尚不可路由。確認底層工作階段已儲存頻道/供應者、接收者,以及選用帳號/討論串路由中繼資料。
events_poll 或 events_wait 遺漏較舊訊息
events_poll 或 events_wait 遺漏較舊訊息
預期行為。即時佇列會在橋接器連線時開始。使用
messages_read 讀取較舊的逐字稿歷史。Claude 通知未顯示
Claude 通知未顯示
檢查以下所有項目:
- 用戶端保持 stdio MCP 工作階段開啟
--claude-channel-mode為on或auto- 用戶端實際理解 Claude 專用通知方法
- 入站訊息發生在橋接器連線之後
核准缺失
核准缺失
permissions_list_open 只會顯示橋接器連線期間觀察到的核准要求。它不是持久核准歷史 API。OpenClaw 作為 MCP 用戶端登錄檔
這是openclaw mcp list、show、set 和 unset 路徑。
這些命令不會透過 MCP 公開 OpenClaw。它們會管理 OpenClaw 設定中 mcp.servers 底下由 OpenClaw 擁有的 MCP 伺服器定義。
這些已儲存的定義用於 OpenClaw 稍後啟動或設定的執行階段,例如嵌入式 Pi 和其他執行階段轉接器。OpenClaw 會集中儲存這些定義,讓那些執行階段不需要維護自己的重複 MCP 伺服器清單。
重要行為
重要行為
- 這些命令只會讀取或寫入 OpenClaw 設定
- 它們不會連線到目標 MCP 伺服器
- 它們不會驗證命令、URL 或遠端傳輸目前是否可連線
- 執行階段轉接器會在執行時決定它們實際支援哪些傳輸形狀
- 嵌入式 Pi 會在一般
coding和messaging工具設定檔中公開已設定的 MCP 工具;minimal仍會隱藏它們,而tools.deny: ["bundle-mcp"]會明確停用它們 - 工作階段範圍的 bundled MCP 執行階段會在閒置
mcp.sessionIdleTtlMs毫秒後被清理(預設 10 分鐘;設為0可停用),而一次性的嵌入式執行會在執行結束時清理它們
transport 值,而 Claude Code 和 Gemini 會接收 CLI 原生的 type 值,例如 http、sse 或 stdio。
已儲存的 MCP 伺服器定義
OpenClaw 也會在設定中儲存輕量級 MCP 伺服器登錄,供需要由 OpenClaw 管理 MCP 定義的介面使用。 命令:openclaw mcp listopenclaw mcp show [name]openclaw mcp set <name> <json>openclaw mcp unset <name>
list會排序伺服器名稱。- 未指定名稱的
show會印出完整設定的 MCP 伺服器物件。 set需要在命令列上提供一個 JSON 物件值。- 對 Streamable HTTP MCP 伺服器使用
transport: "streamable-http"。openclaw mcp set也會將 CLI 原生的type: "http"正規化為相同的標準設定形狀,以維持相容性。 - 如果具名伺服器不存在,
unset會失敗。
Stdio 傳輸
啟動本機子程序,並透過 stdin/stdout 通訊。| 欄位 | 說明 |
|---|---|
command | 要產生的可執行檔(必要) |
args | 命令列引數陣列 |
env | 額外環境變數 |
cwd / workingDirectory | 程序的工作目錄 |
SSE / HTTP 傳輸
透過 HTTP Server-Sent Events 連線到遠端 MCP 伺服器。| 欄位 | 說明 |
|---|---|
url | 遠端伺服器的 HTTP 或 HTTPS URL(必要) |
headers | 選用的 HTTP 標頭鍵值對應(例如驗證 token) |
connectionTimeoutMs | 每個伺服器的連線逾時時間,以 ms 為單位(選用) |
url(userinfo)和 headers 中的敏感值會在記錄和狀態輸出中遮蔽。
Streamable HTTP 傳輸
streamable-http 是 sse 和 stdio 之外的另一個傳輸選項。它使用 HTTP 串流與遠端 MCP 伺服器進行雙向通訊。
| 欄位 | 說明 |
|---|---|
url | 遠端伺服器的 HTTP 或 HTTPS URL(必要) |
transport | 設為 "streamable-http" 以選取此傳輸;省略時,OpenClaw 會使用 sse |
headers | 選用的 HTTP 標頭鍵值對應(例如驗證 token) |
connectionTimeoutMs | 每個伺服器的連線逾時時間,以 ms 為單位(選用) |
transport: "streamable-http" 作為標準拼法。透過 openclaw mcp set 儲存時會接受 CLI 原生的 MCP type: "http" 值,且現有設定會由 openclaw doctor --fix 修復,但 transport 才是嵌入式 Pi 直接使用的值。
範例:
這些命令只管理已儲存的設定。它們不會啟動頻道橋接器、開啟即時 MCP 用戶端工作階段,或證明目標伺服器可連線。
目前限制
本頁記錄的是目前已發布的橋接器。 目前限制:- 對話探索取決於既有的 Gateway 工作階段路由中繼資料
- 除了 Claude 專用轉接器之外,沒有通用推送協定
- 尚無訊息編輯或反應工具
- HTTP/SSE/streamable-http 傳輸會連線到單一遠端伺服器;尚無多工上游
permissions_list_open只包含橋接器連線期間觀察到的核准