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 ด้วย
openclaw mcp serve - จัดการนิยามเซิร์ฟเวอร์ MCP ขาออกที่ OpenClaw เป็นเจ้าของด้วย
list,show,setและunset
serveคือ OpenClaw ที่ทำหน้าที่เป็นเซิร์ฟเวอร์ MCPlist/show/set/unsetคือ OpenClaw ที่ทำหน้าที่เป็นรีจิสทรีฝั่งไคลเอนต์ MCP สำหรับเซิร์ฟเวอร์ MCP อื่นที่รันไทม์ของมันอาจใช้งานภายหลัง
openclaw acp เมื่อ OpenClaw ควรโฮสต์เซสชัน coding harness เองและกำหนดเส้นทางรันไทม์นั้นผ่าน ACP
OpenClaw ในฐานะเซิร์ฟเวอร์ MCP
นี่คือเส้นทางopenclaw mcp serve
ควรใช้ serve เมื่อใด
ใช้ openclaw mcp serve เมื่อ:
- Codex, Claude Code หรือไคลเอนต์ MCP อื่นควรคุยโดยตรงกับการสนทนาช่องทางที่รองรับโดย OpenClaw
- คุณมี OpenClaw Gateway แบบภายในเครื่องหรือระยะไกลที่มีเซสชันที่ถูกกำหนดเส้นทางไว้แล้ว
- คุณต้องการเซิร์ฟเวอร์ MCP หนึ่งตัวที่ทำงานได้กับแบ็กเอนด์ช่องทางของ OpenClaw แทนการเรียกใช้บริดจ์แยกสำหรับแต่ละช่องทาง
openclaw acp แทนเมื่อ OpenClaw ควรโฮสต์รันไทม์การเขียนโค้ดเองและเก็บเซสชันเอเจนต์ไว้ภายใน OpenClaw
วิธีทำงาน
openclaw mcp serve เริ่มเซิร์ฟเวอร์ MCP แบบ stdio ไคลเอนต์ MCP เป็นเจ้าของโปรเซสนั้น ขณะที่ไคลเอนต์ยังเปิดเซสชัน stdio ไว้ บริดจ์จะเชื่อมต่อกับ OpenClaw Gateway ภายในเครื่องหรือระยะไกลผ่าน WebSocket และเปิดเผยการสนทนาช่องทางที่ถูกกำหนดเส้นทางผ่าน MCP
Sessions become MCP conversations
เซสชันที่ถูกกำหนดเส้นทางจะกลายเป็นการสนทนา MCP และเครื่องมือทรานสคริปต์/ประวัติ
Important behavior
Important behavior
- สถานะคิวสดเริ่มเมื่อบริดจ์เชื่อมต่อ
- ประวัติทรานสคริปต์เก่ากว่าอ่านด้วย
messages_read - การแจ้งเตือนแบบ push ของ Claude มีอยู่เฉพาะขณะที่เซสชัน MCP ยังมีชีวิตอยู่
- เมื่อไคลเอนต์ตัดการเชื่อมต่อ บริดจ์จะออกและคิวสดจะหายไป
- จุดเข้าเอเจนต์แบบครั้งเดียว เช่น
openclaw agentและopenclaw infer model runจะเลิกรันไทม์ MCP ที่บันเดิลไว้ซึ่งมันเปิดเมื่อการตอบกลับเสร็จสิ้น ดังนั้นการรันแบบสคริปต์ซ้ำ ๆ จะไม่สะสมโปรเซสลูก stdio MCP - เซิร์ฟเวอร์ stdio MCP ที่ OpenClaw เปิดใช้ (ไม่ว่าจะบันเดิลไว้หรือผู้ใช้กำหนดค่า) จะถูกปิดทั้งผังโปรเซสเมื่อปิดระบบ ดังนั้นซับโปรเซสลูกที่เซิร์ฟเวอร์เริ่มไว้จะไม่คงอยู่หลังจากไคลเอนต์ stdio แม่ออก
- การลบหรือรีเซ็ตเซสชันจะกำจัดไคลเอนต์ MCP ของเซสชันนั้นผ่านเส้นทางล้างรันไทม์ร่วม ดังนั้นจะไม่มีการเชื่อมต่อ stdio ที่ค้างอยู่ซึ่งผูกกับเซสชันที่ถูกลบ
เลือกโหมดไคลเอนต์
ใช้บริดจ์เดียวกันได้สองวิธี:- Generic MCP clients
- Claude Code
เฉพาะเครื่องมือ MCP มาตรฐาน ใช้
conversations_list, messages_read, events_poll, events_wait, messages_send และเครื่องมืออนุมัติวันนี้
auto ทำงานเหมือนกับ on ยังไม่มีการตรวจจับความสามารถของไคลเอนต์สิ่งที่ serve เปิดเผย
บริดจ์ใช้เมทาดาทาเส้นทางเซสชันของ Gateway ที่มีอยู่เพื่อเปิดเผยการสนทนาที่รองรับโดยช่องทาง การสนทนาจะปรากฏเมื่อ OpenClaw มีสถานะเซสชันที่มีเส้นทางที่รู้จักอยู่แล้ว เช่น:
channel- เมทาดาทาผู้รับหรือปลายทาง
accountIdที่เป็นทางเลือกthreadIdที่เป็นทางเลือก
- แสดงรายการการสนทนาที่ถูกกำหนดเส้นทางล่าสุด
- อ่านประวัติทรานสคริปต์ล่าสุด
- รออีเวนต์ขาเข้าใหม่
- ส่งการตอบกลับผ่านเส้นทางเดียวกัน
- ดูคำขออนุมัติที่มาถึงขณะที่บริดจ์เชื่อมต่ออยู่
การใช้งาน
- Local Gateway
- Remote Gateway (token)
- Remote Gateway (password)
- Verbose / Claude off
เครื่องมือบริดจ์
บริดจ์ปัจจุบันเปิดเผยเครื่องมือ MCP เหล่านี้:conversations_list
conversations_list
แสดงรายการการสนทนาล่าสุดที่รองรับโดยเซสชันซึ่งมีเมทาดาทาเส้นทางในสถานะเซสชัน Gateway อยู่แล้วตัวกรองที่มีประโยชน์:
limitsearchchannelincludeDerivedTitlesincludeLastMessage
conversation_get
conversation_get
ส่งคืนการสนทนาหนึ่งรายการตาม
session_key โดยใช้การค้นหาเซสชัน Gateway โดยตรงmessages_read
messages_read
อ่านข้อความทรานสคริปต์ล่าสุดสำหรับการสนทนาที่รองรับโดยเซสชันหนึ่งรายการ
attachments_fetch
attachments_fetch
แยกบล็อกเนื้อหาข้อความที่ไม่ใช่ข้อความจากข้อความทรานสคริปต์หนึ่งรายการ นี่เป็นมุมมองเมทาดาทาบนเนื้อหาทรานสคริปต์ ไม่ใช่ที่เก็บ blob ไฟล์แนบแบบคงทนที่แยกต่างหาก
events_poll
events_poll
อ่านอีเวนต์สดที่เข้าคิวไว้ตั้งแต่เคอร์เซอร์ตัวเลข
events_wait
events_wait
ทำ long-poll จนกว่าอีเวนต์ที่เข้าคิวซึ่งตรงกันรายการถัดไปจะมาถึงหรือหมดเวลาใช้สิ่งนี้เมื่อไคลเอนต์ MCP ทั่วไปต้องการการส่งมอบแบบใกล้เรียลไทม์โดยไม่มีโปรโตคอล push เฉพาะของ Claude
messages_send
messages_send
ส่งข้อความกลับผ่านเส้นทางเดียวกันที่บันทึกไว้แล้วในเซสชันพฤติกรรมปัจจุบัน:
- ต้องมีเส้นทางการสนทนาอยู่แล้ว
- ใช้ช่องทาง ผู้รับ id บัญชี และ id เธรดของเซสชัน
- ส่งเฉพาะข้อความเท่านั้น
permissions_list_open
permissions_list_open
แสดงรายการคำขออนุมัติ exec/plugin ที่รอดำเนินการซึ่งบริดจ์สังเกตเห็นตั้งแต่เชื่อมต่อกับ Gateway
permissions_respond
permissions_respond
แก้ไขคำขออนุมัติ exec/plugin ที่รอดำเนินการหนึ่งรายการด้วย:
allow-onceallow-alwaysdeny
โมเดลอีเวนต์
บริดจ์เก็บคิวอีเวนต์ในหน่วยความจำขณะที่เชื่อมต่ออยู่ ชนิดอีเวนต์ปัจจุบัน:messageexec_approval_requestedexec_approval_resolvedplugin_approval_requestedplugin_approval_resolvedclaude_permission_request
การแจ้งเตือนช่องทาง Claude
บริดจ์ยังสามารถเปิดเผยการแจ้งเตือนช่องทางเฉพาะของ Claude ได้ด้วย นี่คือสิ่งที่เทียบเท่ากับอะแดปเตอร์ช่องทาง Claude Code ของ OpenClaw: เครื่องมือ MCP มาตรฐานยังพร้อมใช้งาน แต่ข้อความขาเข้าสดสามารถมาถึงเป็นการแจ้งเตือน MCP เฉพาะของ Claude ได้เช่นกัน- off
- on
- auto (default)
--claude-channel-mode off: เฉพาะเครื่องมือ MCP มาตรฐานnotifications/claude/channelnotifications/claude/channel/permission
- ข้อความทรานสคริปต์
userขาเข้าจะถูกส่งต่อเป็นnotifications/claude/channel - คำขออนุญาต Claude ที่ได้รับผ่าน MCP จะถูกติดตามในหน่วยความจำ
- หากการสนทนาที่เชื่อมโยงส่ง
yes abcdeหรือno abcdeในภายหลัง บริดจ์จะแปลงสิ่งนั้นเป็นnotifications/claude/channel/permission - การแจ้งเตือนเหล่านี้มีเฉพาะเซสชันสดเท่านั้น หากไคลเอนต์ MCP ตัดการเชื่อมต่อ จะไม่มีเป้าหมาย push
การกำหนดค่าไคลเอนต์ MCP
ตัวอย่างการกำหนดค่าไคลเอนต์ stdio:ตัวเลือก
openclaw mcp serve รองรับ:
URL WebSocket ของ Gateway
โทเค็น Gateway
อ่านโทเค็นจากไฟล์
รหัสผ่าน Gateway
อ่านรหัสผ่านจากไฟล์
โหมดการแจ้งเตือน Claude
บันทึกแบบละเอียดบน stderr
ความปลอดภัยและขอบเขตความเชื่อถือ
บริดจ์ไม่ได้สร้างเส้นทางขึ้นเอง มันเปิดเผยเฉพาะการสนทนาที่ Gateway รู้วิธีกำหนดเส้นทางอยู่แล้วเท่านั้น หมายความว่า:- allowlist ของผู้ส่ง การจับคู่ และความเชื่อถือระดับช่องทางยังเป็นของการกำหนดค่าช่องทาง OpenClaw พื้นฐาน
messages_sendสามารถตอบกลับผ่านเส้นทางที่จัดเก็บอยู่แล้วเท่านั้น- สถานะการอนุมัติเป็นแบบสด/ในหน่วยความจำเท่านั้นสำหรับเซสชันบริดจ์ปัจจุบัน
- การตรวจสอบสิทธิ์ของบริดจ์ควรใช้การควบคุมโทเค็นหรือรหัสผ่าน Gateway เดียวกับที่คุณจะเชื่อถือสำหรับไคลเอนต์ Gateway ระยะไกลอื่น
conversations_list สาเหตุปกติมักไม่ใช่การกำหนดค่า MCP แต่เป็นเมทาดาทาเส้นทางที่ขาดหายหรือไม่สมบูรณ์ในเซสชัน Gateway พื้นฐาน
การทดสอบ
OpenClaw มาพร้อมกับ smoke Docker แบบกำหนดผลได้สำหรับบริดจ์นี้:- เริ่มคอนเทนเนอร์ Gateway ที่ใส่ข้อมูลตั้งต้นไว้
- เริ่มคอนเทนเนอร์ตัวที่สองซึ่งสร้าง
openclaw mcp serve - ตรวจสอบการค้นพบการสนทนา การอ่านทรานสคริปต์ การอ่านเมทาดาทาไฟล์แนบ พฤติกรรมคิวอีเวนต์สด และการกำหนดเส้นทางการส่งขาออก
- ตรวจสอบการแจ้งเตือนช่องทางและสิทธิ์แบบ Claude ผ่านบริดจ์ stdio MCP จริง
การแก้ไขปัญหา
No conversations returned
No conversations returned
โดยทั่วไปหมายความว่าเซสชัน Gateway ยังไม่สามารถกำหนดเส้นทางได้ ตรวจสอบว่าเซสชันพื้นฐานมีช่องทาง/ผู้ให้บริการ ผู้รับ และเมทาดาทาเส้นทางบัญชี/เธรดที่เป็นทางเลือกที่จัดเก็บไว้แล้ว
events_poll or events_wait misses older messages
events_poll or events_wait misses older messages
เป็นพฤติกรรมที่คาดไว้ คิวสดเริ่มเมื่อบริดจ์เชื่อมต่อ อ่านประวัติทรานสคริปต์เก่ากว่าด้วย
messages_readClaude notifications do not show up
Claude notifications do not show up
ตรวจสอบทั้งหมดนี้:
- ไคลเอนต์ยังเปิดเซสชัน stdio MCP ไว้
--claude-channel-modeเป็นonหรือauto- ไคลเอนต์เข้าใจเมธอดการแจ้งเตือนเฉพาะของ Claude จริง
- ข้อความขาเข้าเกิดขึ้นหลังจากบริดจ์เชื่อมต่อ
Approvals are missing
Approvals are missing
permissions_list_open แสดงเฉพาะคำขออนุมัติที่สังเกตเห็นขณะที่บริดจ์เชื่อมต่ออยู่เท่านั้น มันไม่ใช่ API ประวัติการอนุมัติแบบคงทนOpenClaw ในฐานะรีจิสทรีไคลเอนต์ MCP
นี่คือเส้นทางopenclaw mcp list, show, set และ unset
คำสั่งเหล่านี้ไม่ได้เปิดเผย OpenClaw ผ่าน MCP แต่ใช้จัดการนิยาม MCP server ที่ OpenClaw เป็นเจ้าของภายใต้ mcp.servers ในการกำหนดค่า OpenClaw
นิยามที่บันทึกไว้เหล่านี้มีไว้สำหรับ runtime ที่ OpenClaw เปิดใช้งานหรือกำหนดค่าในภายหลัง เช่น Pi แบบฝังตัวและ runtime adapter อื่น ๆ OpenClaw จัดเก็บนิยามไว้ส่วนกลาง เพื่อให้ runtime เหล่านั้นไม่จำเป็นต้องเก็บรายการ MCP server ซ้ำของตนเอง
พฤติกรรมสำคัญ
พฤติกรรมสำคัญ
- คำสั่งเหล่านี้อ่านหรือเขียนการกำหนดค่า OpenClaw เท่านั้น
- คำสั่งเหล่านี้ไม่เชื่อมต่อกับ MCP server เป้าหมาย
- คำสั่งเหล่านี้ไม่ตรวจสอบว่า command, URL หรือ remote transport เข้าถึงได้ในขณะนี้หรือไม่
- runtime adapter เป็นผู้ตัดสินใจว่า transport shape ใดที่รองรับจริง ณ เวลาดำเนินการ
- Pi แบบฝังตัวเปิดเผยเครื่องมือ MCP ที่กำหนดค่าไว้ใน tool profile ปกติ
codingและmessaging;minimalยังคงซ่อนเครื่องมือเหล่านี้ และtools.deny: ["bundle-mcp"]ปิดใช้งานอย่างชัดเจน - bundled MCP runtime ที่อยู่ในขอบเขตเซสชันจะถูกเก็บกวาดหลังจากไม่มีการใช้งานเป็นเวลา
mcp.sessionIdleTtlMsมิลลิวินาที (ค่าเริ่มต้น 10 นาที; ตั้งเป็น0เพื่อปิดใช้งาน) และการรันแบบฝังตัวครั้งเดียวจะล้างรายการเหล่านี้เมื่อจบการรัน
transport ของ OpenClaw โดยตรง ขณะที่ Claude Code และ Gemini ได้รับค่า type แบบ native ของ CLI เช่น http, sse หรือ stdio
นิยาม MCP server ที่บันทึกไว้
OpenClaw ยังจัดเก็บ MCP server registry แบบเบาใน config สำหรับพื้นผิวที่ต้องการนิยาม MCP ที่ OpenClaw จัดการ คำสั่ง:openclaw mcp listopenclaw mcp show [name]openclaw mcp set <name> <json>openclaw mcp unset <name>
listเรียงชื่อ servershowโดยไม่ระบุชื่อจะพิมพ์ object ของ MCP server ที่กำหนดค่าไว้ทั้งหมดsetคาดหวังค่า JSON object หนึ่งค่าบนบรรทัดคำสั่ง- ใช้
transport: "streamable-http"สำหรับ Streamable HTTP MCP server นอกจากนี้openclaw mcp setยังปรับtype: "http"แบบ native ของ CLI ให้เป็น config shape มาตรฐานเดียวกันเพื่อความเข้ากันได้ unsetล้มเหลวหากไม่มี server ชื่อนั้นอยู่
Stdio transport
เปิดใช้งาน child process ภายในเครื่องและสื่อสารผ่าน stdin/stdout| ฟิลด์ | คำอธิบาย |
|---|---|
command | executable ที่จะ spawn (จำเป็น) |
args | array ของอาร์กิวเมนต์บรรทัดคำสั่ง |
env | ตัวแปรสภาพแวดล้อมเพิ่มเติม |
cwd / workingDirectory | working directory สำหรับ process |
SSE / HTTP transport
เชื่อมต่อกับ MCP server ระยะไกลผ่าน HTTP Server-Sent Events| ฟิลด์ | คำอธิบาย |
|---|---|
url | HTTP หรือ HTTPS URL ของ server ระยะไกล (จำเป็น) |
headers | map key-value ทางเลือกของ HTTP header (เช่น auth token) |
connectionTimeoutMs | timeout การเชื่อมต่อราย server เป็น ms (ทางเลือก) |
url (userinfo) และ headers จะถูกปกปิดใน log และผลลัพธ์สถานะ
Streamable HTTP transport
streamable-http เป็นตัวเลือก transport เพิ่มเติมเคียงคู่กับ sse และ stdio โดยใช้ HTTP streaming สำหรับการสื่อสารสองทางกับ MCP server ระยะไกล
| ฟิลด์ | คำอธิบาย |
|---|---|
url | HTTP หรือ HTTPS URL ของ server ระยะไกล (จำเป็น) |
transport | ตั้งเป็น "streamable-http" เพื่อเลือก transport นี้; หากละไว้ OpenClaw จะใช้ sse |
headers | map key-value ทางเลือกของ HTTP header (เช่น auth token) |
connectionTimeoutMs | timeout การเชื่อมต่อราย server เป็น ms (ทางเลือก) |
transport: "streamable-http" เป็นการสะกดมาตรฐาน ค่า MCP type: "http" แบบ native ของ CLI จะได้รับการยอมรับเมื่อบันทึกผ่าน openclaw mcp set และถูกซ่อมแซมโดย openclaw doctor --fix ใน config ที่มีอยู่ แต่ transport คือสิ่งที่ Pi แบบฝังตัวใช้โดยตรง
ตัวอย่าง:
คำสั่งเหล่านี้จัดการเฉพาะ config ที่บันทึกไว้เท่านั้น คำสั่งเหล่านี้ไม่ได้เริ่ม channel bridge, เปิด live MCP client session หรือพิสูจน์ว่า server เป้าหมายเข้าถึงได้
ข้อจำกัดปัจจุบัน
หน้านี้บันทึก bridge ตามที่จัดส่งอยู่ในปัจจุบัน ข้อจำกัดปัจจุบัน:- การค้นพบการสนทนาขึ้นอยู่กับ metadata เส้นทางของ session Gateway ที่มีอยู่
- ไม่มี generic push protocol นอกเหนือจาก adapter เฉพาะของ Claude
- ยังไม่มีเครื่องมือแก้ไขหรือ react ต่อข้อความ
- transport HTTP/SSE/streamable-http เชื่อมต่อกับ remote server เดียว; ยังไม่มี upstream แบบ multiplexed
permissions_list_openรวมเฉพาะ approval ที่สังเกตได้ขณะ bridge เชื่อมต่ออยู่เท่านั้น