Documentation Index
Fetch the complete documentation index at: https://docs2.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
使用直接 Gateway 工作階段查詢,依
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 煙霧測試:- 啟動一個已植入資料的 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 標頭鍵值對應表(例如驗證權杖) |
connectionTimeoutMs | 每個伺服器的連線逾時,以 ms 為單位(選用) |
url(userinfo)和 headers 中的敏感值會在記錄與狀態輸出中被遮蔽。
Streamable HTTP 傳輸
streamable-http 是 sse 與 stdio 之外的額外傳輸選項。它使用 HTTP 串流與遠端 MCP 伺服器進行雙向通訊。
| 欄位 | 說明 |
|---|---|
url | 遠端伺服器的 HTTP 或 HTTPS URL(必要) |
transport | 設為 "streamable-http" 以選取此傳輸;省略時,OpenClaw 會使用 sse |
headers | 選用的 HTTP 標頭鍵值對應表(例如驗證權杖) |
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只包含橋接器連線期間觀察到的核准