CLI commands

MCP

openclaw mcp มีหน้าที่สองอย่าง:

  • เรียกใช้ OpenClaw เป็นเซิร์ฟเวอร์ MCP ด้วย openclaw mcp serve
  • จัดการข้อกำหนดเซิร์ฟเวอร์ MCP ขาออกที่ OpenClaw จัดการด้วย list, show, status, doctor, probe, add, set, configure, tools, login, logout, reload และ unset

serve คือ OpenClaw ที่ทำหน้าที่เป็นเซิร์ฟเวอร์ MCP ส่วนคำสั่งย่อยอื่นๆ คือ OpenClaw ที่ทำหน้าที่เป็นรีจิสทรีฝั่งไคลเอนต์ MCP สำหรับเซิร์ฟเวอร์ที่รันไทม์ของ OpenClaw อาจนำไปใช้ภายหลัง

ใช้ openclaw acp เมื่อ OpenClaw ควรโฮสต์เซสชันของชุดเครื่องมือเขียนโค้ดเองและกำหนดเส้นทางรันไทม์นั้นผ่าน ACP

เลือกเส้นทาง MCP ที่เหมาะสม

เป้าหมาย ใช้ เหตุผล
อนุญาตให้ไคลเอนต์ MCP ภายนอกอ่าน/ส่งบทสนทนาช่องทางของ OpenClaw openclaw mcp serve OpenClaw เป็นเซิร์ฟเวอร์ MCP และเปิดเผยบทสนทนาที่มี Gateway รองรับผ่าน stdio
บันทึกเซิร์ฟเวอร์ MCP ของบุคคลที่สามสำหรับการรันเอเจนต์ที่ OpenClaw จัดการ openclaw mcp add, set, configure, tools, login OpenClaw เป็นรีจิสทรีฝั่งไคลเอนต์ MCP และจะส่งต่อเซิร์ฟเวอร์เหล่านั้นไปยังรันไทม์ที่มีสิทธิ์ในภายหลัง
ตรวจสอบเซิร์ฟเวอร์ที่บันทึกไว้โดยไม่เรียกใช้รอบการทำงานของเอเจนต์ openclaw mcp status, doctor, probe status และ doctor ตรวจสอบคอนฟิก; probe เปิดการเชื่อมต่อ MCP จริงและแสดงความสามารถ
แก้ไขคอนฟิก MCP จากเบราว์เซอร์ Control UI /settings/mcp (นามแฝง /mcp) หน้านี้แสดงรายการทั้งหมด สถานะการเปิดใช้ สรุป OAuth/ตัวกรอง คำแนะนำคำสั่ง และตัวแก้ไข mcp ที่จำกัดขอบเขต
มอบเซิร์ฟเวอร์ MCP แบบเนทีฟที่จำกัดขอบเขตให้ Codex app-server mcp.servers.<name>.codex บล็อก codex มีผลเฉพาะต่อการส่งต่อเธรดของ Codex app-server และจะถูกตัดออกก่อนส่งมอบคอนฟิกแบบเนทีฟ
เรียกใช้เซสชันชุดเครื่องมือที่โฮสต์โดย ACP openclaw acp และ เอเจนต์ ACP โหมดบริดจ์ ACP ไม่รองรับการแทรกเซิร์ฟเวอร์ MCP รายเซสชัน; ให้กำหนดค่าบริดจ์ Gateway/Plugin แทน

OpenClaw ในฐานะเซิร์ฟเวอร์ MCP

นี่คือเส้นทาง openclaw mcp serve

เมื่อใดควรใช้ serve

ใช้ openclaw mcp serve เมื่อ:

  • Codex, Claude Code หรือไคลเอนต์ MCP อื่นควรสื่อสารโดยตรงกับบทสนทนาช่องทางที่มี OpenClaw รองรับ
  • มี Gateway ของ OpenClaw แบบภายในเครื่องหรือระยะไกลที่มีเซสชันซึ่งกำหนดเส้นทางไว้แล้ว
  • ต้องการเซิร์ฟเวอร์ MCP หนึ่งตัวที่ใช้งานได้กับแบ็กเอนด์ช่องทางต่างๆ ของ OpenClaw แทนการเรียกใช้บริดจ์แยกสำหรับแต่ละช่องทาง

ใช้ openclaw acp แทน เมื่อ OpenClaw ควรโฮสต์รันไทม์การเขียนโค้ดเองและเก็บเซสชันเอเจนต์ไว้ภายใน OpenClaw

วิธีการทำงาน

openclaw mcp serve เริ่มเซิร์ฟเวอร์ MCP แบบ stdio โดยไคลเอนต์ MCP เป็นเจ้าของกระบวนการนั้น ตราบใดที่ไคลเอนต์ยังคงเปิดเซสชัน stdio ไว้ บริดจ์จะเชื่อมต่อกับ Gateway ของ OpenClaw แบบภายในเครื่องหรือระยะไกลผ่าน WebSocket และเปิดเผยบทสนทนาช่องทางที่กำหนดเส้นทางไว้ผ่าน MCP

  • ไคลเอนต์เริ่มบริดจ์

    ไคลเอนต์ MCP เริ่ม openclaw mcp serve

  • บริดจ์เชื่อมต่อกับ Gateway

    บริดจ์เชื่อมต่อกับ Gateway ของ OpenClaw ผ่าน WebSocket

  • เซสชันกลายเป็นบทสนทนา MCP

    เซสชันที่กำหนดเส้นทางไว้จะกลายเป็นบทสนทนา MCP และเครื่องมือทรานสคริปต์/ประวัติ

  • จัดคิวเหตุการณ์สด

    เหตุการณ์สดจะถูกจัดคิวไว้ในหน่วยความจำขณะที่บริดจ์เชื่อมต่ออยู่

  • การพุช Claude แบบไม่บังคับ

    หากเปิดใช้โหมดช่องทาง Claude เซสชันเดียวกันจะรับการแจ้งเตือนแบบพุชเฉพาะของ Claude ได้ด้วย

  • ลักษณะการทำงานที่สำคัญ
    • สถานะคิวสดเริ่มต้นเมื่อบริดจ์เชื่อมต่อ
    • อ่านประวัติทรานสคริปต์ที่เก่ากว่าด้วย messages_read
    • การแจ้งเตือนแบบพุชของ Claude จะมีอยู่เฉพาะขณะที่เซสชัน MCP ยังทำงาน
    • เมื่อไคลเอนต์ตัดการเชื่อมต่อ บริดจ์จะสิ้นสุดและคิวสดจะหายไป
    • จุดเริ่มต้นเอเจนต์แบบครั้งเดียว เช่น openclaw agent และ openclaw infer model run จะปิดรันไทม์ MCP แบบรวมชุดที่เปิดขึ้นเมื่อการตอบกลับเสร็จสิ้น เพื่อไม่ให้การรันด้วยสคริปต์ซ้ำๆ สะสมกระบวนการลูก MCP แบบ stdio
    • เซิร์ฟเวอร์ MCP แบบ stdio ที่ OpenClaw เปิดใช้ (ทั้งแบบรวมชุดหรือที่ผู้ใช้กำหนดค่า) จะถูกปิดลงทั้งแผนผังกระบวนการเมื่อปิดระบบ เพื่อให้กระบวนการย่อยที่เซิร์ฟเวอร์เริ่มขึ้นไม่ทำงานต่อหลังจากไคลเอนต์ stdio หลักสิ้นสุด
    • การลบหรือรีเซ็ตเซสชันจะยุติไคลเอนต์ MCP ของเซสชันนั้นผ่านเส้นทางการล้างรันไทม์ร่วม จึงไม่มีการเชื่อมต่อ stdio ที่ตกค้างและผูกกับเซสชันที่ถูกลบ

    เลือกโหมดไคลเอนต์

    ไคลเอนต์ MCP ทั่วไป

    เฉพาะเครื่องมือ MCP มาตรฐาน ใช้ conversations_list, messages_read, events_poll, events_wait, messages_send และเครื่องมืออนุมัติ

    Claude Code

    เครื่องมือ MCP มาตรฐานพร้อมอะแดปเตอร์ช่องทางเฉพาะของ Claude เปิดใช้ --claude-channel-mode on หรือคงค่าเริ่มต้น auto

    สิ่งที่ serve เปิดเผย

    บริดจ์ใช้เมทาดาทาเส้นทางเซสชันที่มีอยู่ของ Gateway เพื่อเปิดเผยบทสนทนาที่มีช่องทางรองรับ บทสนทนาจะปรากฏเมื่อ OpenClaw มีสถานะเซสชันพร้อมเส้นทางที่ทราบอยู่แล้ว เช่น:

    • channel
    • เมทาดาทาผู้รับหรือปลายทาง
    • accountId ซึ่งไม่บังคับ
    • threadId ซึ่งไม่บังคับ

    สิ่งนี้ทำให้ไคลเอนต์ MCP มีที่เดียวสำหรับ:

    • แสดงบทสนทนาที่กำหนดเส้นทางไว้ล่าสุด
    • อ่านประวัติทรานสคริปต์ล่าสุด
    • รอเหตุการณ์ขาเข้าใหม่
    • ส่งคำตอบกลับผ่านเส้นทางเดิม
    • ดูคำขออนุมัติที่เข้ามาขณะที่บริดจ์เชื่อมต่ออยู่

    การใช้งาน

    Gateway ภายในเครื่อง

    bash
    openclaw mcp serve

    Gateway ระยะไกล (โทเค็น)

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

    Gateway ระยะไกล (รหัสผ่าน)

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

    รายละเอียดเพิ่มเติม / ปิด Claude

    bash
    openclaw mcp serve --verboseopenclaw mcp serve --claude-channel-mode off

    เครื่องมือบริดจ์

    conversations_list

    แสดงบทสนทนาล่าสุดที่มีเซสชันรองรับและมีเมทาดาทาเส้นทางอยู่แล้วในสถานะเซสชันของ Gateway

    ตัวกรอง: limit (สูงสุด 500), search, channel, includeDerivedTitles, includeLastMessage

    conversation_get

    ส่งคืนบทสนทนาหนึ่งรายการตาม session_key โดยใช้การค้นหาเซสชัน Gateway โดยตรง

    messages_read

    อ่านข้อความทรานสคริปต์ล่าสุดสำหรับบทสนทนาหนึ่งรายการที่มีเซสชันรองรับ ค่าเริ่มต้นของ limit คือ 20 และสูงสุด 200

    attachments_fetch

    แยกบล็อกเนื้อหาที่ไม่ใช่ข้อความจากข้อความทรานสคริปต์หนึ่งรายการ นี่คือมุมมองเมทาดาทาบนเนื้อหาทรานสคริปต์ ไม่ใช่ที่เก็บไฟล์แนบแบบบล็อบถาวรที่ทำงานแยกต่างหาก

    events_poll

    อ่านเหตุการณ์สดที่จัดคิวไว้ตั้งแต่เคอร์เซอร์ตัวเลข ค่า limit สูงสุดคือ 200

    events_wait

    ทำการลองโพลระยะยาวจนกว่าเหตุการณ์ที่ตรงกันถัดไปจะมาถึงหรือหมดเวลา (ค่าเริ่มต้น 30s, สูงสุด 300s)

    ใช้เมื่อไคลเอนต์ MCP ทั่วไปต้องการการส่งมอบที่เกือบเรียลไทม์โดยไม่ใช้โปรโตคอลพุชเฉพาะของ Claude

    messages_send

    ส่งข้อความกลับผ่านเส้นทางเดิมที่บันทึกไว้ในเซสชัน

    ลักษณะการทำงานปัจจุบัน:

    • ต้องมีเส้นทางบทสนทนาที่มีอยู่แล้ว
    • ใช้ช่องทาง ผู้รับ รหัสบัญชี และรหัสเธรดของเซสชัน
    • ส่งเฉพาะข้อความ
    permissions_list_open

    แสดงคำขออนุมัติ exec/Plugin ที่รอดำเนินการซึ่งบริดจ์ตรวจพบตั้งแต่เชื่อมต่อกับ Gateway

    permissions_respond

    ดำเนินการคำขออนุมัติ exec/Plugin ที่รอดำเนินการหนึ่งรายการด้วย:

    • allow-once
    • allow-always
    • deny

    โมเดลเหตุการณ์

    บริดจ์เก็บคิวเหตุการณ์ในหน่วยความจำขณะที่เชื่อมต่ออยู่

    ประเภทเหตุการณ์ปัจจุบัน:

    • message
    • exec_approval_requested
    • exec_approval_resolved
    • plugin_approval_requested
    • plugin_approval_resolved
    • claude_permission_request

    การแจ้งเตือนช่องทาง Claude

    บริดจ์ยังสามารถเปิดเผยการแจ้งเตือนช่องทางเฉพาะของ Claude ได้ด้วย ซึ่งเทียบเท่ากับอะแดปเตอร์ช่องทาง Claude Code ของ OpenClaw กล่าวคือ เครื่องมือ MCP มาตรฐานยังคงใช้งานได้ แต่ข้อความขาเข้าสดจะมาถึงในรูปแบบการแจ้งเตือน MCP เฉพาะของ Claude ได้เช่นกัน

    off

    --claude-channel-mode off: เฉพาะเครื่องมือ MCP มาตรฐาน

    on

    --claude-channel-mode on: เปิดใช้การแจ้งเตือนช่องทาง Claude

    auto (ค่าเริ่มต้น)

    --claude-channel-mode auto: ค่าเริ่มต้นปัจจุบัน; มีลักษณะการทำงานของบริดจ์เหมือนกับ on

    เมื่อเปิดใช้โหมดช่องทาง Claude เซิร์ฟเวอร์จะประกาศความสามารถทดลองของ Claude และสามารถส่ง:

    • notifications/claude/channel
    • notifications/claude/channel/permission

    ลักษณะการทำงานปัจจุบันของบริดจ์:

    • ข้อความทรานสคริปต์ user ขาเข้าจะถูกส่งต่อเป็น notifications/claude/channel
    • คำขอสิทธิ์ของ Claude ที่ได้รับผ่าน MCP จะถูกติดตามในหน่วยความจำ
    • หากเจ้าของคำสั่งในบทสนทนาที่เชื่อมโยงส่ง yes <id> หรือ no <id> ในภายหลัง (<id> คือรหัสคำขอ 5 ตัวอักษร โดยไม่รวม l) บริดจ์จะแปลงข้อมูลนั้นเป็น notifications/claude/channel/permission
    • การแจ้งเตือนเหล่านี้ใช้ได้เฉพาะในเซสชันสดเท่านั้น; หากไคลเอนต์ MCP ตัดการเชื่อมต่อ จะไม่มีปลายทางสำหรับการพุช

    คุณลักษณะนี้เจาะจงสำหรับไคลเอนต์โดยตั้งใจ ไคลเอนต์ MCP ทั่วไปควรใช้เครื่องมือโพลมาตรฐาน

    คอนฟิกไคลเอนต์ MCP

    ตัวอย่างคอนฟิกไคลเอนต์ stdio:

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

    สำหรับไคลเอ็นต์ MCP ทั่วไปส่วนใหญ่ ให้เริ่มต้นด้วยชุดเครื่องมือมาตรฐานและไม่ต้องสนใจโหมด Claude เปิดโหมด Claude เฉพาะสำหรับไคลเอ็นต์ที่เข้าใจเมธอดการแจ้งเตือนเฉพาะของ Claude จริง ๆ เท่านั้น

    ตัวเลือก

    openclaw mcp serve รองรับ:

    --urlstring

    URL WebSocket ของ Gateway ค่าเริ่มต้นคือ gateway.remote.url เมื่อกำหนดค่าไว้

    --tokenstring

    โทเค็นของ Gateway

    --token-filestring

    อ่านโทเค็นจากไฟล์

    --passwordstring

    รหัสผ่านของ Gateway

    --password-filestring

    อ่านรหัสผ่านจากไฟล์

    --claude-channel-mode"auto" | "on" | "off"

    โหมดการแจ้งเตือนของ Claude ค่าเริ่มต้นคือ auto

    -v, --verboseboolean

    แสดงบันทึกโดยละเอียดบน stderr

    ขอบเขตด้านความปลอดภัยและความไว้วางใจ

    บริดจ์ไม่ได้สร้างการกำหนดเส้นทางขึ้นเอง แต่เปิดเผยเฉพาะการสนทนาที่ Gateway ทราบวิธีกำหนดเส้นทางอยู่แล้ว

    ซึ่งหมายความว่า:

    • รายการผู้ส่งที่อนุญาต การจับคู่ และความไว้วางใจระดับช่องทางยังคงเป็นส่วนหนึ่งของการกำหนดค่าช่องทาง OpenClaw ที่อยู่เบื้องล่าง
    • messages_send สามารถตอบกลับผ่านเส้นทางที่จัดเก็บไว้อยู่แล้วเท่านั้น
    • สถานะการอนุมัติเป็นแบบสด/อยู่ในหน่วยความจำเฉพาะสำหรับเซสชันบริดจ์ปัจจุบันเท่านั้น
    • การยืนยันตัวตนของบริดจ์ควรใช้การควบคุมด้วยโทเค็นหรือรหัสผ่านของ Gateway แบบเดียวกับที่ไว้วางใจให้ไคลเอ็นต์ Gateway ระยะไกลอื่น ๆ ใช้

    หากการสนทนาไม่ปรากฏใน conversations_list สาเหตุตามปกติไม่ใช่การกำหนดค่า MCP แต่เป็นข้อมูลเมตาของเส้นทางในเซสชัน Gateway ที่อยู่เบื้องล่างขาดหายหรือไม่สมบูรณ์

    การทดสอบ

    OpenClaw มาพร้อมการทดสอบควันด้วย Docker แบบกำหนดผลลัพธ์แน่นอนสำหรับบริดจ์นี้:

    bash
    pnpm test:docker:mcp-channels

    การทดสอบควันนี้เรียกใช้คอนเทนเนอร์เดียว โดยเตรียมสถานะการสนทนา เริ่ม Gateway จากนั้นสร้าง openclaw mcp serve เป็นโพรเซสลูกผ่าน stdio และควบคุมในฐานะไคลเอ็นต์ MCP การทดสอบจะตรวจสอบการค้นหาการสนทนา การอ่านทรานสคริปต์ การอ่านข้อมูลเมตาของไฟล์แนบ ลักษณะการทำงานของคิวเหตุการณ์สด ตลอดจนการแจ้งเตือนช่องทางและสิทธิ์แบบ Claude ผ่านบริดจ์ MCP บน stdio จริง การกำหนดเส้นทางการส่งขาออก (messages_send ที่นำเส้นทางการสนทนาซึ่งจัดเก็บไว้กลับมาใช้) ครอบคลุมแยกต่างหากด้วยการทดสอบหน่วยใน src/mcp/channel-server.test.ts

    นี่เป็นวิธีที่เร็วที่สุดในการพิสูจน์ว่าบริดจ์ทำงานได้โดยไม่ต้องเชื่อมต่อบัญชี Telegram, Discord หรือ iMessage จริงเข้ากับการทดสอบ

    สำหรับบริบทการทดสอบที่กว้างขึ้น โปรดดู การทดสอบ

    การแก้ไขปัญหา

    ไม่มีการส่งคืนการสนทนา

    โดยทั่วไปหมายความว่าเซสชัน Gateway ยังไม่สามารถกำหนดเส้นทางได้ โปรดยืนยันว่าเซสชันที่อยู่เบื้องล่างมีข้อมูลเมตาของเส้นทางสำหรับช่องทาง/ผู้ให้บริการ ผู้รับ และบัญชี/เธรด (ถ้ามี) จัดเก็บไว้แล้ว

    events_poll หรือ events_wait ไม่พบข้อความเก่า

    เป็นลักษณะที่คาดไว้ คิวสดจะเริ่มทำงานเมื่อบริดจ์เชื่อมต่อ อ่านประวัติทรานสคริปต์เก่าด้วย messages_read

    การแจ้งเตือนของ Claude ไม่ปรากฏ

    ตรวจสอบทั้งหมดดังต่อไปนี้:

    • ไคลเอ็นต์เปิดเซสชัน MCP บน stdio ไว้ตลอด
    • --claude-channel-mode เป็น on หรือ auto
    • ไคลเอ็นต์เข้าใจเมธอดการแจ้งเตือนเฉพาะของ Claude จริง ๆ
    • ข้อความขาเข้าเกิดขึ้นหลังจากบริดจ์เชื่อมต่อแล้ว
    ไม่มีคำขออนุมัติ

    permissions_list_open แสดงเฉพาะคำขออนุมัติที่ตรวจพบขณะที่บริดจ์เชื่อมต่ออยู่เท่านั้น ไม่ใช่ API ประวัติการอนุมัติแบบถาวร

    OpenClaw ในฐานะรีจิสทรีไคลเอ็นต์ MCP

    นี่คือเส้นทาง openclaw mcp list, show, status, doctor, probe, add, set, configure, tools, login, logout, reload และ unset

    คำสั่งเหล่านี้ไม่ได้เปิดเผย OpenClaw ผ่าน MCP แต่ใช้จัดการข้อกำหนดเซิร์ฟเวอร์ MCP ที่ OpenClaw จัดการภายใต้ mcp.servers ในการกำหนดค่า OpenClaw และจะไม่อ่านเซิร์ฟเวอร์ mcporter จาก config/mcporter.json

    ข้อกำหนดที่บันทึกไว้เหล่านี้มีไว้สำหรับรันไทม์ที่ OpenClaw จะเปิดใช้หรือกำหนดค่าในภายหลัง เช่น OpenClaw แบบฝังตัวและอะแดปเตอร์รันไทม์อื่น ๆ OpenClaw จัดเก็บข้อกำหนดไว้ส่วนกลาง เพื่อให้รันไทม์เหล่านั้นไม่จำเป็นต้องเก็บรายการเซิร์ฟเวอร์ MCP ที่ซ้ำกันของตนเอง

    ลักษณะการทำงานที่สำคัญ
    • คำสั่งเหล่านี้อ่านหรือเขียนเฉพาะการกำหนดค่า OpenClaw
    • status, list, show, doctor ที่ไม่มี --probe, set, configure, tools, logout, reload และ unset จะไม่เชื่อมต่อกับเซิร์ฟเวอร์ MCP เป้าหมาย
    • login ดำเนินโฟลว์เครือข่าย MCP OAuth สำหรับเซิร์ฟเวอร์ HTTP ที่กำหนดค่าไว้ และบันทึกข้อมูลรับรองภายในเครื่องที่ได้
    • status --verbose แสดงคำแนะนำเกี่ยวกับทรานสปอร์ต การยืนยันตัวตน ระยะหมดเวลา ตัวกรอง และการเรียกเครื่องมือแบบขนานที่ผ่านการแก้ค่าแล้ว โดยไม่เชื่อมต่อ
    • doctor ตรวจสอบข้อกำหนดที่บันทึกไว้เพื่อค้นหาปัญหาการตั้งค่าภายในเครื่อง เช่น คำสั่ง stdio ที่ขาดหาย ไดเรกทอรีทำงานที่ไม่ถูกต้อง ไฟล์ TLS ที่ขาดหาย เซิร์ฟเวอร์ที่ปิดใช้งาน ค่าเฮดเดอร์/สภาพแวดล้อมที่ละเอียดอ่อนซึ่งระบุโดยตรง และการอนุญาต OAuth ที่ไม่สมบูรณ์
    • doctor --probe เพิ่มการพิสูจน์การเชื่อมต่อสดแบบเดียวกับ probe หลังจากการตรวจสอบแบบสแตติกผ่านแล้ว
    • probe เชื่อมต่อกับเซิร์ฟเวอร์ที่เลือกหรือเซิร์ฟเวอร์ที่กำหนดค่าไว้ทั้งหมด แสดงรายการเครื่องมือ และรายงานความสามารถ/ข้อมูลวินิจฉัย
    • add สร้างข้อกำหนดจากแฟล็กและตรวจสอบก่อนบันทึก เว้นแต่จะตั้งค่า --no-probe หรือจำเป็นต้องอนุญาต OAuth ก่อน
    • อะแดปเตอร์รันไทม์จะตัดสินใจขณะดำเนินการว่ารองรับรูปแบบทรานสปอร์ตใดจริง ๆ
    • enabled: false เก็บเซิร์ฟเวอร์ไว้ในรายการที่บันทึก แต่ไม่รวมเซิร์ฟเวอร์นั้นในการค้นหารันไทม์แบบฝังตัว
    • timeout และ connectTimeout กำหนดระยะหมดเวลาของคำขอและการเชื่อมต่อรายเซิร์ฟเวอร์เป็นวินาที
    • supportsParallelToolCalls: true ทำเครื่องหมายเซิร์ฟเวอร์ที่อะแดปเตอร์สามารถเรียกใช้พร้อมกันได้
    • เซิร์ฟเวอร์ HTTP สามารถใช้เฮดเดอร์แบบคงที่ การเข้าสู่ระบบ OAuth การควบคุมการตรวจสอบ TLS และพาธใบรับรอง/คีย์ mTLS
    • OpenClaw แบบฝังตัวเปิดเผยเครื่องมือ MCP ที่กำหนดค่าไว้ในโปรไฟล์เครื่องมือ coding และ messaging ตามปกติ ส่วน minimal ยังคงซ่อนเครื่องมือเหล่านั้น และ tools.deny: ["bundle-mcp"] ปิดใช้งานอย่างชัดเจน
    • toolFilter.include และ toolFilter.exclude รายเซิร์ฟเวอร์จะกรองเครื่องมือ MCP ที่ค้นพบก่อนจะกลายเป็นเครื่องมือ OpenClaw
    • เซิร์ฟเวอร์ที่ประกาศทรัพยากรหรือพรอมต์จะเปิดเผยเครื่องมืออรรถประโยชน์สำหรับแสดงรายการ/อ่านทรัพยากร และแสดงรายการ/ดึงพรอมต์ด้วย ชื่ออรรถประโยชน์ที่สร้างขึ้นเหล่านั้น (resources_list, resources_read, prompts_list, prompts_get) ใช้ตัวกรองรวม/ไม่รวมเดียวกัน
    • การเปลี่ยนแปลงรายการเครื่องมือ MCP แบบไดนามิกจะทำให้แค็ตตาล็อกที่แคชไว้สำหรับเซสชันนั้นใช้ไม่ได้ การค้นหาหรือการใช้งานครั้งถัดไปจะรีเฟรชจากเซิร์ฟเวอร์
    • ความล้มเหลวซ้ำ ๆ ของคำขอเครื่องมือ/โพรโทคอล MCP จะหยุดเซิร์ฟเวอร์นั้นชั่วครู่ เพื่อไม่ให้เซิร์ฟเวอร์ที่เสียเพียงตัวเดียวใช้เวลาของรอบการทำงานทั้งหมด
    • รันไทม์ MCP แบบรวมที่จำกัดขอบเขตตามเซสชันจะถูกเก็บกวาดหลังไม่มีการใช้งานเป็นเวลา mcp.sessionIdleTtlMs มิลลิวินาที (ค่าเริ่มต้น 10 นาที ตั้งค่า 0 เพื่อปิดใช้งาน) และการทำงานแบบฝังตัวครั้งเดียวจะเก็บกวาดรันไทม์เหล่านั้นเมื่อสิ้นสุดการทำงาน

    อะแดปเตอร์รันไทม์อาจปรับรีจิสทรีที่ใช้ร่วมกันนี้ให้อยู่ในรูปแบบที่ไคลเอ็นต์ปลายทางคาดไว้ ตัวอย่างเช่น OpenClaw แบบฝังตัวใช้ค่า transport ของ OpenClaw โดยตรง ขณะที่ Claude Code และ Gemini ได้รับค่า type แบบเนทีฟของ CLI เช่น http, sse หรือ stdio

    Codex app-server ยังรองรับบล็อก codex ซึ่งระบุหรือไม่ก็ได้ในแต่ละเซิร์ฟเวอร์ นี่คือ ข้อมูลเมตาการฉายภาพของ OpenClaw สำหรับเธรด Codex app-server เท่านั้น โดยจะไม่ เปลี่ยนแปลงเซสชัน ACP การกำหนดค่าฮาร์เนส Codex ทั่วไป หรืออะแดปเตอร์รันไทม์อื่น ๆ ใช้ codex.agents ที่ไม่ว่างเพื่อฉายเซิร์ฟเวอร์เฉพาะไปยัง id ของเอเจนต์ OpenClaw ที่ระบุเท่านั้น รายการเอเจนต์ที่ว่างเปล่า มีแต่ช่องว่าง หรือไม่ถูกต้องจะถูกปฏิเสธโดยการตรวจสอบ การกำหนดค่า และถูกละเว้นจากเส้นทางการฉายภาพของรันไทม์แทนที่จะกลายเป็น ค่าระดับโกลบอล ใช้ codex.defaultToolsApprovalMode (auto, prompt หรือ approve) เพื่อส่งออก default_tools_approval_mode แบบเนทีฟของ Codex สำหรับเซิร์ฟเวอร์ที่เชื่อถือได้ OpenClaw จะตัดข้อมูลเมตา codex ออกก่อนส่งมอบการกำหนดค่า mcp_servers แบบเนทีฟให้ Codex

    ข้อกำหนดเซิร์ฟเวอร์ MCP ที่บันทึกไว้

    คำสั่ง:

    • openclaw mcp list
    • openclaw mcp show [name]
    • openclaw mcp status [--verbose]
    • openclaw mcp doctor [name] [--probe]
    • openclaw mcp probe [name]
    • openclaw mcp add <name> [flags]
    • openclaw mcp set <name> <json>
    • openclaw mcp configure <name> [flags]
    • openclaw mcp tools <name> [--include csv] [--exclude csv] [--clear]
    • openclaw mcp login <name> [--code code]
    • openclaw mcp logout <name>
    • openclaw mcp reload
    • openclaw mcp unset <name>

    หมายเหตุ:

    • list จัดเรียงชื่อเซิร์ฟเวอร์
    • show ที่ไม่มีชื่อจะแสดงออบเจ็กต์เซิร์ฟเวอร์ MCP ที่กำหนดค่าไว้ทั้งหมด
    • status จำแนกทรานสปอร์ตที่กำหนดค่าไว้โดยไม่เชื่อมต่อ --verbose รวมรายละเอียดการเปิดใช้ ระยะหมดเวลา OAuth ตัวกรอง และการเรียกแบบขนานที่ผ่านการแก้ค่าแล้ว
    • doctor ดำเนินการตรวจสอบแบบสแตติกโดยไม่เชื่อมต่อ เพิ่ม --probe เมื่อต้องการให้คำสั่งตรวจสอบด้วยว่าเซิร์ฟเวอร์ที่เปิดใช้งานสามารถเชื่อมต่อได้
    • probe เชื่อมต่อและรายงานจำนวนเครื่องมือ การรองรับทรัพยากร/พรอมต์ การรองรับการเปลี่ยนแปลงรายการ และข้อมูลวินิจฉัย
    • add ยอมรับแฟล็ก stdio เช่น --command, --arg, --env และ --cwd หรือแฟล็ก HTTP เช่น --url, --transport, --header, --auth oauth รวมถึงแฟล็ก TLS ระยะหมดเวลา และการเลือกเครื่องมือ
    • set ต้องการค่าออบเจ็กต์ JSON หนึ่งรายการบนบรรทัดคำสั่ง
    • configure อัปเดตสถานะการเปิดใช้งาน ตัวกรองเครื่องมือ ระยะหมดเวลา OAuth, TLS และคำแนะนำการเรียกเครื่องมือแบบขนานโดยไม่แทนที่ข้อกำหนดเซิร์ฟเวอร์ทั้งหมด เพิ่ม --probe เพื่อตรวจสอบเซิร์ฟเวอร์ที่อัปเดตก่อนบันทึก
    • tools อัปเดตตัวกรองเครื่องมือรายเซิร์ฟเวอร์ รายการรวม/ไม่รวมคือชื่อเครื่องมือ MCP และ glob แบบง่ายของ *
    • login เรียกใช้โฟลว์ OAuth สำหรับเซิร์ฟเวอร์ HTTP ที่กำหนดค่าด้วย auth: "oauth" การเรียกใช้ครั้งแรกจะแสดง URL การอนุญาต ให้เรียกใช้อีกครั้งด้วย --code หลังจากอนุมัติ
    • logout ล้างข้อมูลรับรอง OAuth ที่จัดเก็บไว้สำหรับเซิร์ฟเวอร์ที่ระบุ โดยไม่ลบข้อกำหนดเซิร์ฟเวอร์ที่บันทึกไว้
    • reload กำจัดรันไทม์ MCP ภายในโพรเซสที่แคชไว้สำหรับโพรเซส CLI ปัจจุบันเท่านั้น โพรเซส Gateway หรือเอเจนต์ที่อยู่ในอีกโพรเซสหนึ่งยังคงต้องใช้เส้นทางการโหลดใหม่หรือรีสตาร์ตของตนเอง
    • ใช้ transport: "streamable-http" สำหรับเซิร์ฟเวอร์ Streamable HTTP MCP นอกจากนี้ openclaw mcp set ยังปรับ type: "http" แบบเนทีฟของ CLI ให้อยู่ในรูปแบบการกำหนดค่ามาตรฐานเดียวกันเพื่อความเข้ากันได้
    • unset จะล้มเหลวหากไม่มีเซิร์ฟเวอร์ที่ระบุ

    ตัวอย่าง:

    bash
    openclaw mcp listopenclaw mcp show context7 --jsonopenclaw mcp status --verboseopenclaw mcp doctor --probeopenclaw mcp probe context7 --jsonopenclaw mcp add memory --command npx --arg -y --arg @modelcontextprotocol/server-memoryopenclaw mcp set context7 '{"command":"uvx","args":["context7-mcp"]}'openclaw mcp tools context7 --include 'resolve-library-id,get-library-docs'openclaw mcp set docs '{"url":"https://mcp.example.com","transport":"streamable-http"}'openclaw mcp configure docs --timeout 20 --connect-timeout 5 --include 'search,read_*'openclaw mcp configure docs --auth oauth --oauth-scope 'docs.read'openclaw mcp login docsopenclaw mcp logout docsopenclaw mcp unset context7

    สูตรการตั้งค่าเซิร์ฟเวอร์ที่ใช้บ่อย

    ตัวอย่างเหล่านี้บันทึกเฉพาะข้อกำหนดของเซิร์ฟเวอร์เท่านั้น เรียกใช้ openclaw mcp doctor --probe หลังจากนั้นเพื่อยืนยันว่าเซิร์ฟเวอร์เริ่มทำงานและเปิดให้ใช้เครื่องมือต่าง ๆ

    ระบบไฟล์

    bash
    openclaw mcp add files \  --command npx \  --arg -y \  --arg @modelcontextprotocol/server-filesystem \  --arg "$HOME/Documents" \  --include 'read_file,list_directory,search_files'openclaw mcp doctor files --probe

    จำกัดขอบเขตเซิร์ฟเวอร์ระบบไฟล์ให้อยู่ในโครงสร้างไดเรกทอรีที่เล็กที่สุดซึ่งเอเจนต์ควรอ่านหรือแก้ไข

    หน่วยความจำ

    bash
    openclaw mcp add memory \  --command npx \  --arg -y \  --arg @modelcontextprotocol/server-memoryopenclaw mcp probe memory --json

    ใช้ตัวกรองเครื่องมือหากเซิร์ฟเวอร์เปิดให้ใช้เครื่องมือเขียนที่ไม่ควรพร้อมใช้งานสำหรับเอเจนต์ทั่วไป

    สคริปต์ภายในเครื่อง

    bash
    openclaw mcp add local-tools \  --command node \  --arg ./dist/mcp-server.js \  --cwd /srv/openclaw-tools \  --env API_BASE=https://internal.exampleopenclaw mcp status --verbose

    doctor ตรวจสอบว่ามี cwd อยู่ และคำสั่งสามารถแปลค่าได้จากสภาพแวดล้อมที่กำหนดค่าไว้

    HTTP ระยะไกล

    bash
    openclaw mcp add docs \  --url https://mcp.example.com/mcp \  --transport streamable-http \  --auth oauth \  --oauth-scope docs.read \  --timeout 20 \  --connect-timeout 5 \  --include 'search,read_*'openclaw mcp doctor docs --probe

    ใช้ OAuth เมื่อเซิร์ฟเวอร์ระยะไกลรองรับ หากเซิร์ฟเวอร์ต้องใช้ส่วนหัวแบบคงที่ ให้หลีกเลี่ยงการคอมมิต bearer token แบบค่าตรงตัว

    เดสก์ท็อป/CUA

    bash
    openclaw mcp set cua-driver '{"command":"cua-driver","args":["mcp"]}'openclaw mcp tools cua-driver --include 'list_apps,observe,click,type'openclaw mcp doctor cua-driver --probe

    เซิร์ฟเวอร์ควบคุมเดสก์ท็อปโดยตรงจะรับช่วงสิทธิ์ของกระบวนการที่เซิร์ฟเวอร์เปิดใช้งาน ใช้ตัวกรองเครื่องมือที่จำกัดและพรอมต์ขอสิทธิ์ระดับระบบปฏิบัติการ

    รูปแบบเอาต์พุต JSON

    ใช้ --json สำหรับสคริปต์และแดชบอร์ด ชุดฟิลด์อาจเพิ่มขึ้นเมื่อเวลาผ่านไป ดังนั้นผู้ใช้งานข้อมูลควรละเว้นคีย์ที่ไม่รู้จัก

    status --json
    json
    {  "path": "/home/user/.openclaw/openclaw.json",  "servers": [    {      "name": "docs",      "configured": true,      "enabled": true,      "ok": true,      "transport": "streamable-http",      "launch": "streamable-http https://mcp.example.com/mcp",      "auth": "oauth",      "authStatus": {        "hasTokens": true,        "hasClientInformation": true,        "hasCodeVerifier": false,        "hasDiscoveryState": true,        "hasLastAuthorizationUrl": false      },      "requestTimeoutMs": 20000,      "connectionTimeoutMs": 5000,      "toolFilter": {        "include": ["search", "read_*"],        "exclude": []      },      "supportsParallelToolCalls": true    }  ]}
    doctor --json
    json
    {  "ok": true,  "path": "/home/user/.openclaw/openclaw.json",  "servers": [    {      "name": "docs",      "ok": true,      "issues": [        {          "level": "warning",          "message": "ข้อมูลรับรอง OAuth ยังไม่ได้รับอนุญาต ให้เรียกใช้ openclaw mcp login docs"        }      ]    }  ]}

    doctor --json จบการทำงานด้วยรหัสที่ไม่ใช่ศูนย์เมื่อเซิร์ฟเวอร์ที่เปิดใช้งานและได้รับการตรวจสอบเซิร์ฟเวอร์ใดก็ตามมีปัญหาระดับ error ปัญหา warning และ info จะได้รับการรายงาน แต่ไม่ทำให้คำสั่งล้มเหลวด้วยตัวเอง

    probe --json
    json
    {  "generatedAt": "2026-05-31T09:00:00.000Z",  "servers": {    "docs": {      "launch": "streamable-http https://mcp.example.com/mcp",      "tools": 2,      "resources": true,      "listChanged": {        "tools": true,        "resources": false,        "prompts": false      }    }  },  "tools": ["docs__read_page", "docs__search"],  "diagnostics": []}

    probe --json เปิดเซสชันไคลเอนต์ MCP แบบสดและพิมพ์ผลลัพธ์โดยตรง ซึ่งแตกต่างจาก status/doctor ตรงที่เอาต์พุตไม่มีฟิลด์ path ระดับบนสุด คีย์ resources และ prompts จะปรากฏเฉพาะเมื่อเซิร์ฟเวอร์ประกาศความสามารถนั้นจริง ๆ (เซิร์ฟเวอร์ที่ไม่มีพรอมต์จะละคีย์ prompts แทนที่จะรายงาน false) ใช้ probe เพื่อยืนยันการเข้าถึงและความสามารถ ไม่ใช่เพื่อตรวจสอบการกำหนดค่าแบบคงที่

    ตัวอย่างรูปแบบการกำหนดค่า:

    json
    {  "mcp": {    "servers": {      "context7": {        "command": "uvx",        "args": ["context7-mcp"]      },      "docs": {        "url": "https://mcp.example.com",        "transport": "streamable-http",        "timeout": 20,        "connectTimeout": 5,        "supportsParallelToolCalls": true,        "auth": "oauth",        "oauth": {          "scope": "docs.read"        },        "sslVerify": true,        "clientCert": "/path/to/client.crt",        "clientKey": "/path/to/client.key",        "toolFilter": {          "include": ["search_*"],          "exclude": ["admin_*"]        }      }    }  }}

    การส่งผ่าน Stdio

    เปิดกระบวนการลูกภายในเครื่องและสื่อสารผ่าน stdin/stdout

    ฟิลด์ คำอธิบาย
    command ไฟล์ปฏิบัติการที่จะเรียกใช้ (จำเป็น)
    args อาร์เรย์ของอาร์กิวเมนต์บรรทัดคำสั่ง
    env ตัวแปรสภาพแวดล้อมเพิ่มเติม
    cwd / workingDirectory ไดเรกทอรีทำงานสำหรับกระบวนการ

    การส่งผ่าน SSE / HTTP

    เชื่อมต่อกับเซิร์ฟเวอร์ MCP ระยะไกลผ่าน HTTP Server-Sent Events

    ฟิลด์ คำอธิบาย
    url URL แบบ HTTP หรือ HTTPS ของเซิร์ฟเวอร์ระยะไกล (จำเป็น)
    headers แมปคีย์-ค่าของส่วนหัว HTTP ที่ไม่บังคับ (เช่น โทเค็นการยืนยันตัวตน)
    connectionTimeoutMs ระยะหมดเวลาการเชื่อมต่อต่อเซิร์ฟเวอร์เป็นมิลลิวินาที (ไม่บังคับ)
    connectTimeout ระยะหมดเวลาการเชื่อมต่อต่อเซิร์ฟเวอร์เป็นวินาที (ไม่บังคับ)
    timeout / requestTimeoutMs ระยะหมดเวลาคำขอ MCP ต่อเซิร์ฟเวอร์เป็นวินาทีหรือมิลลิวินาที
    auth: "oauth" ใช้ข้อมูลรับรอง MCP OAuth ที่บันทึกโดย openclaw mcp login
    sslVerify ตั้งค่าเป็น false เฉพาะสำหรับปลายทาง HTTPS ส่วนตัวที่เชื่อถืออย่างชัดเจนเท่านั้น
    clientCert / clientKey พาธใบรับรองและคีย์ไคลเอนต์ mTLS
    supportsParallelToolCalls ระบุว่าการเรียกพร้อมกันปลอดภัยสำหรับเซิร์ฟเวอร์นี้

    ตัวอย่าง:

    json
    {  "mcp": {    "servers": {      "remote-tools": {        "url": "https://mcp.example.com",        "auth": "oauth",        "timeout": 20,        "headers": {          "Authorization": "Bearer <token>"        }      }    }  }}

    ค่าที่ละเอียดอ่อนใน url (ข้อมูลผู้ใช้) และ headers จะถูกปกปิดในบันทึกและเอาต์พุตสถานะ openclaw mcp doctor จะแจ้งเตือนเมื่อรายการ headers หรือ env ที่ดูเหมือนมีข้อมูลละเอียดอ่อนมีค่าตรงตัว เพื่อให้ผู้ดูแลระบบย้ายค่าเหล่านั้นออกจากการกำหนดค่าที่คอมมิตไว้

    ขั้นตอนการทำงาน OAuth

    OAuth ใช้สำหรับเซิร์ฟเวอร์ MCP แบบ HTTP ที่ประกาศขั้นตอน OAuth ของ MCP ส่วนหัว Authorization แบบคงที่จะถูกละเว้นสำหรับเซิร์ฟเวอร์ขณะที่เปิดใช้ auth: "oauth" ข้อมูลรับรองที่บันทึกโดย openclaw mcp login ใช้งานได้กับ MCP แบบฝัง ตัวเรียกใช้ CLI และเซิร์ฟเวอร์แอป Codex ภายในเครื่อง

    จนกว่าจะมีข้อมูลรับรอง OpenClaw จะละเว้นเฉพาะเซิร์ฟเวอร์ MCP นั้นจากรันไทม์ของเอเจนต์ แทนที่จะทำให้รอบการทำงานของเอเจนต์ล้มเหลว จากนั้นผู้ดูแลระบบหรือเอเจนต์ที่เข้าถึงเชลล์ได้สามารถเรียกใช้ openclaw mcp login <name> และใช้เซิร์ฟเวอร์ในรอบถัดไป

    เมื่อบริการ MCP ระยะไกลมีโปรไฟล์การยืนยันตัวตน OpenClaw แยกต่างหากที่รองรับการรีเฟรชอยู่แล้ว คุณสามารถตั้งค่า oauth.authProfileId เพิ่มเติมได้ OpenClaw จะรีเฟรชแหล่งข้อมูลรับรองแหล่งใดแหล่งหนึ่งก่อนฉายเข้าสู่รันไทม์ และส่งเฉพาะ access token ปัจจุบันไปยังไคลเอนต์ MCP ปลายทาง

  • บันทึกเซิร์ฟเวอร์

    เพิ่มหรืออัปเดตเซิร์ฟเวอร์ด้วย auth: "oauth" และข้อมูลเมตา OAuth ที่ไม่บังคับ

    bash
    openclaw mcp set docs '{"url":"https://mcp.example.com/mcp","transport":"streamable-http","auth":"oauth","oauth":{"scope":"docs.read"}}'

    สำหรับ bearer ที่มีโปรไฟล์การยืนยันตัวตนรองรับ ให้บันทึกการเชื่อมโยงโปรไฟล์:

    bash
    openclaw mcp set docs '{"url":"https://mcp.example.com/mcp","transport":"streamable-http","auth":"oauth","oauth":{"authProfileId":"docs:mcp"}}'
  • เริ่มเข้าสู่ระบบ

    เรียกใช้คำสั่งเข้าสู่ระบบเพื่อสร้างคำขออนุญาต

    bash
    openclaw mcp login docs

    OpenClaw พิมพ์ URL การอนุญาตและจัดเก็บสถานะ verifier OAuth ชั่วคราวไว้ใต้ไดเรกทอรีสถานะของ OpenClaw

  • ดำเนินการให้เสร็จด้วยรหัส

    หลังจากอนุมัติในเบราว์เซอร์แล้ว ให้ส่งรหัสที่ได้รับกลับไปยัง OpenClaw.

    bash
    openclaw mcp login docs --code abc123
  • ตรวจสอบการอนุญาต

    ใช้สถานะหรือเครื่องมือตรวจสอบเพื่อยืนยันว่ามีโทเค็นอยู่

    bash
    openclaw mcp status --verboseopenclaw mcp doctor docs --probe
  • ล้างข้อมูลประจำตัว

    การออกจากระบบจะลบข้อมูลประจำตัว OAuth ที่จัดเก็บไว้ แต่ยังคงคำจำกัดความเซิร์ฟเวอร์ที่บันทึกไว้

    bash
    openclaw mcp logout docs
  • หากผู้ให้บริการหมุนเวียนโทเค็นหรือสถานะการอนุญาตค้าง ให้เรียกใช้ openclaw mcp logout <name> แล้วทำ login ซ้ำ logout สามารถล้างข้อมูลประจำตัวของเซิร์ฟเวอร์ HTTP ที่บันทึกไว้ได้ แม้จะนำ auth: "oauth" ออกจากการกำหนดค่าแล้ว ตราบใดที่ชื่อและ URL ของเซิร์ฟเวอร์ยังคงระบุรายการในที่เก็บข้อมูลประจำตัวได้

    การรับส่งข้อมูล HTTP แบบสตรีมได้

    streamable-http เป็นตัวเลือกการรับส่งข้อมูลเพิ่มเติมนอกเหนือจาก sse และ stdio โดยใช้การสตรีมผ่าน HTTP สำหรับการสื่อสารแบบสองทิศทางกับเซิร์ฟเวอร์ MCP ระยะไกล

    ฟิลด์ คำอธิบาย
    url URL แบบ HTTP หรือ HTTPS ของเซิร์ฟเวอร์ระยะไกล (จำเป็น)
    transport ตั้งเป็น "streamable-http" เพื่อเลือกการรับส่งข้อมูลนี้ หากละไว้ OpenClaw จะใช้ sse
    headers แมปคีย์-ค่าของส่วนหัว HTTP ที่ระบุหรือไม่ก็ได้ (เช่น โทเค็นการยืนยันตัวตน)
    connectionTimeoutMs ระยะหมดเวลาการเชื่อมต่อเฉพาะเซิร์ฟเวอร์ในหน่วย ms (ระบุหรือไม่ก็ได้)
    connectTimeout ระยะหมดเวลาการเชื่อมต่อเฉพาะเซิร์ฟเวอร์ในหน่วยวินาที (ระบุหรือไม่ก็ได้)
    timeout / requestTimeoutMs ระยะหมดเวลาคำขอ MCP เฉพาะเซิร์ฟเวอร์ในหน่วยวินาทีหรือ ms
    auth: "oauth" ใช้ข้อมูลประจำตัว MCP OAuth ที่บันทึกโดย openclaw mcp login
    sslVerify ตั้งเป็น false เฉพาะสำหรับปลายทาง HTTPS ส่วนตัวที่เชื่อถืออย่างชัดเจนเท่านั้น
    clientCert / clientKey พาธใบรับรองและคีย์ของไคลเอ็นต์ mTLS
    supportsParallelToolCalls คำใบ้ว่าการเรียกพร้อมกันปลอดภัยสำหรับเซิร์ฟเวอร์นี้

    การกำหนดค่า OpenClaw ใช้ transport: "streamable-http" เป็นรูปแบบการสะกดมาตรฐาน ค่า MCP type: "http" ที่เป็นรูปแบบเนทีฟของ CLI จะได้รับการยอมรับเมื่อบันทึกผ่าน openclaw mcp set และได้รับการซ่อมแซมโดย openclaw doctor --fix ในการกำหนดค่าที่มีอยู่ แต่ transport คือค่าที่ OpenClaw แบบฝังตัวใช้โดยตรง

    ตัวอย่าง:

    json
    {  "mcp": {    "servers": {      "streaming-tools": {        "url": "https://mcp.example.com/stream",        "transport": "streamable-http",        "connectTimeout": 10,        "timeout": 30,        "headers": {          "Authorization": "Bearer <token>"        }      }    }  }}

    UI ควบคุม

    UI ควบคุมในเบราว์เซอร์มีหน้าการตั้งค่า MCP โดยเฉพาะที่ /settings/mcp ส่วนพาธเดิม /mcp ยังคงเป็นนามแฝง หน้านี้แสดงจำนวนเซิร์ฟเวอร์ที่กำหนดค่า สรุปการเปิดใช้งาน/OAuth/ตัวกรอง แถวการรับส่งข้อมูลของแต่ละเซิร์ฟเวอร์ ตัวควบคุมการเปิด/ปิดใช้งาน คำสั่ง CLI ที่ใช้บ่อย และตัวแก้ไขที่จำกัดขอบเขตสำหรับส่วนการกำหนดค่า mcp

    ใช้หน้านี้สำหรับการแก้ไขโดยผู้ปฏิบัติงานและตรวจสอบรายการอย่างรวดเร็ว ใช้ openclaw mcp doctor --probe หรือ openclaw mcp probe เมื่อต้องการหลักฐานการทำงานจริงของเซิร์ฟเวอร์

    ขั้นตอนการทำงานของผู้ปฏิบัติงาน:

    1. เปิด UI ควบคุมแล้วเลือก MCP
    2. ตรวจสอบการ์ดสรุปสำหรับเซิร์ฟเวอร์ทั้งหมด เซิร์ฟเวอร์ที่เปิดใช้งาน เซิร์ฟเวอร์ OAuth และเซิร์ฟเวอร์ที่กรอง
    3. ใช้แต่ละแถวของเซิร์ฟเวอร์เพื่อดูคำใบ้เกี่ยวกับการรับส่งข้อมูล การยืนยันตัวตน ตัวกรอง ระยะหมดเวลา และคำสั่ง
    4. สลับการเปิดใช้งานเมื่อต้องการเก็บคำจำกัดความไว้แต่ไม่รวมไว้ในการค้นหาระหว่างรันไทม์
    5. แก้ไขส่วนการกำหนดค่า mcp ที่จำกัดขอบเขต สำหรับการเปลี่ยนแปลงเชิงโครงสร้าง เช่น เซิร์ฟเวอร์ใหม่ ส่วนหัว TLS เมทาดาทา OAuth หรือตัวกรองเครื่องมือ
    6. เลือก Save เพื่อคงการกำหนดค่าไว้เท่านั้น หรือ Save & Publish เพื่อนำไปใช้ผ่านพาธการกำหนดค่าของ Gateway
    7. เรียกใช้ openclaw mcp doctor --probe เมื่อต้องการหลักฐานการทำงานจริงว่าเซิร์ฟเวอร์ที่แก้ไขเริ่มทำงานและแสดงรายการเครื่องมือได้

    หมายเหตุ:

    • ส่วนย่อยคำสั่งจะใส่ชื่อเซิร์ฟเวอร์ไว้ในเครื่องหมายคำพูด เพื่อให้ชื่อที่ไม่ปกติยังคงคัดลอกไปใช้ในเชลล์ได้
    • ค่าที่แสดงซึ่งมีลักษณะคล้าย URL จะถูกปกปิดก่อนเรนเดอร์เมื่อมีข้อมูลประจำตัวฝังอยู่
    • หน้านี้จะไม่เริ่มการรับส่งข้อมูล MCP ด้วยตนเอง
    • รันไทม์ที่ทำงานอยู่อาจต้องใช้ openclaw mcp reload การเผยแพร่การกำหนดค่า Gateway หรือการเริ่มกระบวนการใหม่ ขึ้นอยู่กับว่ากระบวนการใดเป็นเจ้าของไคลเอ็นต์ MCP

    แอป MCP

    OpenClaw สามารถเรนเดอร์เครื่องมือที่ใช้งานส่วนขยาย MCP Apps ที่เสถียรได้ แอปเป็นแบบเลือกใช้ เนื่องจาก HTML มาจากเซิร์ฟเวอร์ MCP ที่กำหนดค่า และสามารถขอเครื่องมือหรือทรัพยากรที่แอปมองเห็นได้จากเซิร์ฟเวอร์เดียวกัน

    เปิดใช้งานบริดจ์โฮสต์:

    bash
    openclaw config set mcp.apps.enabled true --strict-json

    เริ่ม Gateway ใหม่หลังเปลี่ยนการตั้งค่านี้ เมื่อเปิดใช้งาน OpenClaw จะเริ่ม Listener HTTP(S) สำหรับแซนด์บ็อกซ์เท่านั้นบนพอร์ต Gateway บวกหนึ่ง (สำหรับ Gateway เริ่มต้นคือ 18790) UI ควบคุมจะโหลดแอปจากต้นทางที่แยกต่างหากนี้ Listener จะไม่ให้บริการ UI ควบคุม เส้นทาง Gateway ที่ผ่านการยืนยันตัวตน หรือข้อมูลผู้ใช้

    การเชื่อมต่อ Gateway โดยตรงจำเป็นต้องเข้าถึงทั้งสองพอร์ต หากพร็อกซีย้อนกลับหรือตัวสิ้นสุด TLS เปิดให้เข้าถึง UI ควบคุม ให้กำหนดต้นทางสาธารณะแยกต่างหากสำหรับแอป และพร็อกซีเฉพาะต้นทางนั้นไปยัง Listener แซนด์บ็อกซ์:

    json5
    {  mcp: {    apps: {      enabled: true,      sandboxOrigin: "https://mcp-apps.example.com",      sandboxPort: 18790,    },  },}

    ต้นทางแซนด์บ็อกซ์ต้องแตกต่างจากต้นทางของ UI ควบคุม ห้ามโฮสต์เนื้อหาอื่นที่ผ่านการยืนยันตัวตนหรือมีความละเอียดอ่อนบนต้นทางนี้

    ตัวอย่างเช่น สามารถกำหนดค่าเดโม React พื้นฐานอย่างเป็นทางการได้ดังนี้:

    json5
    {  mcp: {    apps: { enabled: true },    servers: {      "basic-react": {        command: "npx",        args: ["-y", "@modelcontextprotocol/server-basic-react", "--stdio"],      },    },  },}

    ขอบเขตด้านพฤติกรรมและความปลอดภัย:

    • OpenClaw ประกาศส่วนขยาย io.modelcontextprotocol/ui เฉพาะเมื่อเปิดใช้งานแอปเท่านั้น
    • เรนเดอร์เฉพาะทรัพยากร ui:// ที่มีชนิด MIME ตรงกับ text/html;profile=mcp-app ทุกประการ
    • ทรัพยากร UI จำกัดไว้ที่ 2 MiB วางไว้หลังพร็อกซี iframe สองชั้นบนต้นทางภายนอกโดยเฉพาะ โหลดเข้าสู่ต้นทางแอปภายในแบบทึบ และถูกจำกัดด้วย CSP ที่ได้มาจากเมทาดาทาของทรัพยากร
    • เครื่องมือสำหรับแอปเท่านั้น (_meta.ui.visibility: ["app"]) จะไม่อยู่ในรายการเครื่องมือของโมเดล แอปเรียกใช้ได้เฉพาะเครื่องมือที่แอปมองเห็นได้บนเซิร์ฟเวอร์เจ้าของ ซึ่งผ่านนโยบายเครื่องมือ OpenClaw ที่มีผลสำหรับการรันที่สร้างมุมมองนั้นด้วย
    • สิทธิ์ของแอปที่ผูกกับต้นทาง เช่น กล้อง ไมโครโฟน และตำแหน่งทางภูมิศาสตร์ จะไม่ได้รับอนุญาตขณะที่เอกสารแอปภายในใช้ต้นทางแบบทึบเพื่อแยกแอปออกจากกัน
    • HTML ของแอป อาร์กิวเมนต์เครื่องมือแบบสมบูรณ์ และผลลัพธ์ดิบ จะอยู่ในสิทธิ์เช่ามุมมองในหน่วยความจำระยะสิบนาทีที่มีขอบเขตจำกัด และจะไม่ถูกเขียนลงดิสก์หรือคัดลอกไปยังเมทาดาทาตัวอย่างทรานสคริปต์ ทรานสคริปต์จัดเก็บเพียงตัวอธิบายเซิร์ฟเวอร์/เครื่องมือ/ทรัพยากรที่มีขอบเขตจำกัดซึ่งผูกกับ ID การเรียกใช้เครื่องมือเดิม หลัง Gateway เริ่มใหม่ UI ควบคุมสามารถตรวจสอบตัวอธิบายนั้นกับทรานสคริปต์เซสชันที่ผ่านการยืนยันตัวตนและดึงทรัพยากร ui:// อีกครั้ง มุมมองที่สร้างขึ้นใหม่จะเป็นแบบอ่านอย่างเดียวจนกว่าการรันใหม่จะกำหนดสิทธิ์เครื่องมือปัจจุบัน
    • openclaw security audit จะแสดงคำเตือนขณะที่บริดจ์เปิดใช้งานอยู่ ปิดใช้งานด้วย openclaw config set mcp.apps.enabled false --strict-json เมื่อไม่จำเป็นต้องใช้

    ข้อจำกัดปัจจุบัน

    หน้านี้อธิบายบริดจ์ตามที่เผยแพร่ในปัจจุบัน

    ข้อจำกัดปัจจุบัน:

    • การค้นหาการสนทนาขึ้นอยู่กับเมทาดาทาเส้นทางเซสชัน Gateway ที่มีอยู่
    • ยังไม่มีโปรโตคอลพุชทั่วไปนอกเหนือจากอะแดปเตอร์เฉพาะ Claude
    • ยังไม่มีเครื่องมือแก้ไขข้อความหรือแสดงปฏิกิริยา
    • การรับส่งข้อมูล HTTP/SSE/streamable-http เชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลเพียงเครื่องเดียว ยังไม่มีต้นทางอัปสตรีมแบบมัลติเพล็กซ์
    • permissions_list_open รวมเฉพาะการอนุมัติที่ตรวจพบขณะที่บริดจ์เชื่อมต่ออยู่

    เนื้อหาที่เกี่ยวข้อง

    Was this useful?
    On this page

    On this page