ข้ามไปยังเนื้อหา

ใช้เซิร์ฟเวอร์ MCP

คู่มือนี้แสดงวิธีเชื่อมไคลเอนต์ MCP ภายนอก — Claude Code, โปรแกรมแก้ไขโค้ด, MCP Inspector — เข้ากับเซิร์ฟเวอร์เครื่องมือของ Control Center เอง

Control Center ลงทะเบียนเครื่องมือ 110 รายการและให้บริการผ่าน Model Context Protocol ที่โปรโตคอลเวอร์ชัน 2024-11-05 ตระกูลเครื่องมือทั้งหมดที่คุณอาจคาดว่า จะมีนั้นไม่มีอยู่เลย: ไม่มีเครื่องมือประชุมหรือปฏิทิน และไม่มีเครื่องมือโปรเจกต์

พื้นผิว MCP ใช้ตัวรับฟัง cc_server ตัวหลักร่วมกัน ไม่มีพอร์ต MCP แยกต่างหาก

ปลายทาง เมธอด จุดประสงค์
/mcp POST ทรานสปอร์ต Streamable HTTP — นี่คือสิ่งที่ไคลเอนต์พูดด้วย
/mcp DELETE จบเซสชัน
/sse GET สตรีมการแจ้งเตือนแบบเซิร์ฟเวอร์ส่ง

ดังนั้นการติดตั้งภายในเครื่องตามค่าเริ่มต้นจะอยู่ที่ http://127.0.0.1:9030/mcp

  1. ไปที่ การตั้งค่า → เซิร์ฟเวอร์ → เซิร์ฟเวอร์ MCP
  2. อ่านการ์ด เซิร์ฟเวอร์ MCP — การ์ดนี้แสดงว่ากำลังรันหรือหยุดแล้ว และพอร์ต ที่มันกำลังรับฟังอยู่

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

เซิร์ฟเวอร์ผูกกับลูปแบ็กตามค่าเริ่มต้น ปลายทางจึงเข้าถึงได้จากเครื่องที่ cc_server รันอยู่เท่านั้น เว้นแต่คุณเริ่มมันด้วย --bind any

ชี้ไคลเอนต์ของคุณไปที่ปลายทาง Streamable HTTP รูปแบบการตั้งค่าที่แน่นอนเป็นเรื่อง ของไคลเอนต์คุณเอง ส่วน URL นั้นเหมือนกันทั้งสองแบบ

{
"mcpServers": {
"control-center": {
"type": "http",
"url": "http://127.0.0.1:9030/mcp"
}
}
}

Claude Code จะไม่รับการตั้งค่านี้จาก .mcp.json ของโปรเจกต์ — มันกันเซิร์ฟเวอร์ MCP ระดับโปรเจกต์ไว้หลังพรอมป์ขออนุมัติที่ claude -p แบบไม่โต้ตอบไม่มีทางตอบ ส่งการตั้งค่าไปอย่างชัดเจน:

หน้าต่างเทอร์มินัล
claude --mcp-config /path/to/mcp.json --strict-mcp-config

--strict-mcp-config ทำให้ Claude ใช้เฉพาะไฟล์นั้น เซิร์ฟเวอร์เดียวกันจึงไม่ถูก ค้นพบจากโปรเจกต์แล้วลงทะเบียนซ้ำอีกทางหนึ่ง

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

  1. ที่ การตั้งค่า → เซิร์ฟเวอร์ → เซิร์ฟเวอร์ MCP ในแถว โทเค็นยืนยันตัวตน กด ตั้งค่า แล้ววางโทเค็น
  2. ส่งโทเค็นเป็น Authorization: Bearer <token> ในทุกคำขอ POST /mcp

พื้นผิวที่ไม่มีโทเค็นจะปฏิเสธผู้เรียกที่ไม่ใช่ลูปแบ็กทุกครั้งด้วย 403 นี่คือการ ออกแบบแบบ fail-closed โดยเจตนา: โทเค็นคือสิ่งที่ทำให้การให้บริการนอกโฮสต์เป็นไปได้เลย

การเปลี่ยนโทเค็นมีผลกับพื้นผิวที่ทำงานอยู่ทันที — ไม่ต้องรีสตาร์ต

เครื่องมือทุกตัวที่แตะข้อมูลระดับเวิร์กสเปซต้องมี workspace_id และการเรียกที่ไม่มี ค่านี้จะถูกปฏิเสธ แทนที่จะถูกแก้ให้เข้ากับเวิร์กสเปซ “ปัจจุบัน” ใด ๆ:

{
"workspace_id": "acme",
"title": "Fix login bug",
"priority": "high"
}

id นี้คือตัวที่อยู่ใน URL เบราว์เซอร์หรือแอปของคุณ: /workspaces/<workspace_id>/… ข้อยกเว้นเดียวคือเครื่องมือที่ครอบคลุมหลายเวิร์กสเปซจริง ๆ เช่น list_workspaces และเครื่องมือฟีดข่าว — ฟีดข่าวเป็นรายผู้ใช้ และเอเจนต์ไม่มีผู้ใช้เป็นของตัวเอง เครื่องมือเหล่านั้นจึงทำงานกับฟีดของเจ้าของเซิร์ฟเวอร์

เครื่องมือระดับรีโปจะตรวจเพิ่มเติมว่ารีโปนั้นเชื่อมโยงกับเวิร์กสเปซนั้นด้วย

  • การกั้นตามโหมด การเรียกจะถูกแก้เทียบกับโหมดของสเปซของเอเจนต์ผู้เรียก ฝั่งเซิร์ฟเวอร์ เอเจนต์ในโหมดอ่านอย่างเดียวไม่สามารถเข้าถึงเครื่องมือเขียน ได้โดยการละ space_id — โหมดจะถูกค้นหาจากการรันที่ใช้งานอยู่ของมันแทน
  • กฎคุมการกระทำ เครื่องมือที่เปลี่ยนแปลงข้อมูลจะประกาศคลาสผลกระทบของตัวเอง และผ่านนโยบายเดียวกับที่ผลิตภัณฑ์ส่วนที่เหลือใช้ ดู ตั้งค่ากฎคุม
  • การยืนยัน เครื่องมือที่ทำลายข้อมูลบางตัวสร้างเพย์โหลดการยืนยันที่ต้องได้ รับอนุมัติก่อนการเรียกจะดำเนินต่อ

แค็ตตาล็อกทั้งหมดถูกประกาศใน tools/list โดยไม่มีการกั้นการค้นหา — ไคลเอนต์ MCP ภายนอกจะปฏิเสธไม่เรียกเครื่องมือที่ไม่อยู่ในรายการแคชของมัน การซ่อนเครื่องมือจึง ทำให้มันพังแทนที่จะเป็นระเบียบขึ้น

  • ตรวจสอบว่าการ์ด เซิร์ฟเวอร์ MCP แสดงว่ากำลังรัน
  • ตรวจสอบว่าพอร์ตตรงกับพอร์ต cc_server ของคุณ
  • บน Claude Code ตรวจสอบว่าคุณส่ง --mcp-config และ --strict-mcp-config แล้ว

ยังไม่ได้ตั้ง bearer token ตั้งค่าหนึ่งตัวแล้วส่งมันไป

การเรียกเครื่องมือล้มเหลวด้วย “Missing or invalid argument: workspace_id”

หัวข้อที่มีชื่อว่า “การเรียกเครื่องมือล้มเหลวด้วย “Missing or invalid argument: workspace_id””

เพิ่ม workspace_id ไม่มีเวิร์กสเปซโดยนัย

เครื่องมือ MCP มีรายการแค็ตตาล็อก เรียกชื่อ ให้ตรงกับที่ปรากฏที่นั่น