เครื่องมือ MCP
cc_server เป็นโฮสต์ของรีจิสทรีเครื่องมือ MCP (JSON-RPC 2.0) หนึ่งเดียว ให้บริการบนพอร์ตหลักของเซิร์ฟเวอร์ (ค่าเริ่มต้น 9030) ที่ POST /mcp และ GET /sse เวอร์ชันโปรโตคอล 2024-11-05 ไคลเอนต์ทุกตัวเข้าถึงรีจิสทรีเดียวกัน: เดสก์ท็อป บิลด์เว็บ ไคลเอนต์ MCP ภายนอก และรันไทม์เอเจนต์ในตัว เซิร์ฟเวอร์ MCP ภายนอกเชื่อมเข้ารีจิสทรีเดียวกันได้ในฐานะเลเยอร์ไดนามิก
ขนาดของรีจิสทรี
หัวข้อที่มีชื่อว่า “ขนาดของรีจิสทรี”| ตัววัด | จำนวน |
|---|---|
เครื่องมือที่ cc_server ลงทะเบียนไว้ |
110 |
จาก packages/cc_mcp |
108 |
จาก packages/cc_mcp_client (การค้นหาเครื่องมือ) |
2 |
ลงทะเบียนในรีจิสทรีฐาน (server_mcp_registry.dart) |
63 |
ลงทะเบียนหลังบูตเมื่อบริการต่าง ๆ พร้อมใช้งาน (cc_server_runtime.dart) |
47 |
| ใน 63 รายการของรีจิสทรีฐาน เป็นเงื่อนไขกับรีโพกราฟโค้ด | 5 |
เครื่องมือกราฟโค้ดทั้งห้าตัวจะลงทะเบียนก็ต่อเมื่อโฮสต์ส่งรีโพกราฟโค้ดให้ buildServerMcpRegistry เท่านั้น cc_server ส่งให้เสมอ ทั้ง 110 รายการจึงทำงานอยู่ในไบนารีที่จัดส่ง
รีจิสทรีทั้งหมดถูกประกาศใน tools/list โดยไม่มีการกั้นการค้นหา การแก้ไขตั๋วงานเป็นเครื่องมือแบบมีชนิด
พารามิเตอร์ทั่วไป
หัวข้อที่มีชื่อว่า “พารามิเตอร์ทั่วไป”workspace_id
หัวข้อที่มีชื่อว่า “workspace_id”จำเป็น สำหรับทุกเครื่องมือที่แตะข้อมูลในขอบเขตเวิร์กสเปซ workspace_id ที่หายไปหรือไม่ถูกต้องจะคืนข้อผิดพลาดที่ระบุชัดเจน และค่าที่ไม่ตรงกับเวิร์กสเปซของเอนทิตีเป้าหมายจะถูกปฏิเสธแทนที่จะถูกเพิกเฉยเงียบ ๆ ละเว้นมันสำหรับเครื่องมือระดับโลกจริง ๆ: list_workspaces และเครื่องมือฟีดข่าวทั้งหก (list_feeds, list_articles, get_article, set_article_read, set_article_saved, refresh_feeds) ซึ่งใช้รายการฟีดรายผู้ใช้ของเจ้าของเซิร์ฟเวอร์ เครื่องมือค้นหา (search_tool_bm25, list_my_tools) รับมันเป็นทางเลือก เพื่อให้จำแนกได้ว่าเรียกใช้ได้หรือไม่ตามโหมดการสนทนา เมื่อเซิร์ฟเวอร์สั่งงานเอเจนต์ เวิร์กสเปซจะถูกบังคับฝั่งเซิร์ฟเวอร์ เอเจนต์จึงเข้าถึงเวิร์กสเปซอื่นไม่ได้ด้วยการส่ง id แปลกปลอมเข้ามา
การค้นหาเครื่องมือ
หัวข้อที่มีชื่อว่า “การค้นหาเครื่องมือ”ทั้งสองตัวมาจาก cc_mcp_client ไม่ใช่ cc_mcp และทั้งคู่ปรึกษาตัวเฝ้าโหมด จึงรายงานว่าอะไรเรียกได้ในโหมดการสนทนา_ปัจจุบัน_
| เครื่องมือ | คำอธิบาย |
|---|---|
search_tool_bm25 |
ค้นหาแค็ตตาล็อกเครื่องมือด้วยคำค้น; คืนเครื่องมือที่ตรง สคีมาอาร์กิวเมนต์ของแต่ละตัว และว่าแต่ละตัวเรียกได้ในขณะนี้หรือไม่ |
list_my_tools |
แสดงเครื่องมือที่เรียกได้ในขณะนี้ในการสนทนานี้ กรองตามโหมดของมัน |
เครื่องมือค้นหาตัวที่สาม search_tools มีอยู่เฉพาะภายในฮาร์เนสในตัว และไม่ได้เป็นส่วนหนึ่งของรีจิสทรี MCP นี้ มันจัดอันดับพื้นผิวเครื่องมือของการรันเอง และต่างจาก search_tool_bm25 ตรงที่มันโหลดสคีมาของสิ่งที่พบ เพื่อให้เอเจนต์เรียกตัวที่ตรงได้ในเทิร์นถัดไป เอเจนต์บนฮาร์เนสควรใช้ตัวนี้ ส่วนไคลเอนต์ MCP มี search_tool_bm25
เครื่องมือเอเจนต์
หัวข้อที่มีชื่อว่า “เครื่องมือเอเจนต์”| เครื่องมือ | คำอธิบาย |
|---|---|
list_agents |
แสดงเอเจนต์ที่ลงทะเบียนไว้ในเวิร์กสเปซ |
การส่งข้อความและการมอบงานระหว่างเอเจนต์
หัวข้อที่มีชื่อว่า “การส่งข้อความและการมอบงานระหว่างเอเจนต์”เอเจนต์คุยกันผ่านสเปซ (ถาวร มองเห็นได้ในรายชื่อ) ask_agent เป็นแบบคำขอ/ตอบกลับที่มีการหมดเวลาแบบบังคับ ส่วน delegate_task ถูกป้องกันฝั่งเซิร์ฟเวอร์ด้วยเพดานความลึก การตรวจจับวงจร กรอบงบประมาณ และเพดานความเป็นอิสระ
| เครื่องมือ | คำอธิบาย |
|---|---|
send_to_agent |
ส่งข้อความทางเดียวไปยังเอเจนต์อื่น โดยระบุด้วย to_agent_id หรือ to_agent_name ที่ตรงเป๊ะ |
ask_agent |
ถามคำถามกับเอเจนต์อื่นและรอคำตอบ หรือหมดเวลา |
delegate_task |
มอบงานให้เอเจนต์อื่นในรูปตั๋วงานลูกที่ติดตามได้ |
consult_agent |
เพิ่มผู้เชี่ยวชาญที่ตรงที่สุดตามสกิลเข้าสเปซ แล้วสั่งงานด้วยบรีฟที่เจาะจง |
todo_read |
อ่านรายการสิ่งที่ต้องทำที่บันทึกไว้ของบทสนทนานี้ |
เครื่องมือสกิล
หัวข้อที่มีชื่อว่า “เครื่องมือสกิล”การติดตั้งและการอัปเดตทุกครั้งผ่านด่านสแกนแบบล้มเหลวปลอดภัย ก่อนที่เนื้อหาสกิลใดจะถึงดิสก์หรือพรอมต์ของเอเจนต์
| เครื่องมือ | คำอธิบาย |
|---|---|
list_skills |
แสดง slug ของสกิลที่มีในเวิร์กสเปซ |
create_skill |
สร้างสกิลใหม่จากเนื้อหา markdown |
install_skill |
ติดตั้งไดเรกทอรีทั้งหมดของสกิลจากรีโพสิทอรี GitHub ที่ ref ปักหมุดไว้ |
update_skill |
อัปเดตสกิล GitHub ที่ติดตั้งแล้วไปยัง ref ใหม่ พร้อมสแกนและปักหมุดใหม่ |
list_skill_updates |
แสดงสกิลที่มีเวอร์ชันใหม่กว่าให้ใช้ |
verify_skills |
ตรวจสอบสกิลที่ล็อกไว้เทียบกับแฮชเนื้อหาบนดิสก์ของมัน |
pin_skill |
แฮชสกิลที่มีอยู่บนดิสก์เข้าสู่ skills-lock.json |
เครื่องมือแผน เพลย์บุ๊ก และอาร์ติแฟกต์
หัวข้อที่มีชื่อว่า “เครื่องมือแผน เพลย์บุ๊ก และอาร์ติแฟกต์”| เครื่องมือ | คำอธิบาย |
|---|---|
submit_plan |
สัญญาผลลัพธ์ของโหมดแผน: ส่ง PlanDocument แบบมีชนิดที่เปิดใน Plan Studio |
create_playbook |
บันทึกแผนเป็นเทมเพลตที่มีชื่อและมีเวอร์ชัน พร้อมตัวยึดตำแหน่ง {{param}} แบบมีชนิด |
run_playbook |
สร้างอินสแตนซ์ของเพลย์บุ๊กด้วยค่าพารามิเตอร์ เกิดเป็นแผนที่โอเปอเรเตอร์อนุมัติ |
publish_artifact |
เผยแพร่รายการบล็อกแบบมีชนิดที่เรียงลำดับ (markdown, table, chart, mermaid, code, JSON) ซึ่งเรนเดอร์เนทีฟในไคลเอนต์ |
revise_artifact |
แทนที่เนื้อหาของอาร์ติแฟกต์ที่เผยแพร่แล้ว |
list_artifacts |
แสดงอาร์ติแฟกต์ของเวิร์กสเปซ |
get_artifact |
อ่านอาร์ติแฟกต์หนึ่งรายการ |
complete_goal |
ประกาศว่าเป้าหมายถาวรที่ใช้งานอยู่ของบทสนทนา (เริ่มด้วย /goal หรือ /loop) บรรลุแล้ว |
เครื่องมือเวิร์กสเปซ
หัวข้อที่มีชื่อว่า “เครื่องมือเวิร์กสเปซ”| เครื่องมือ | คำอธิบาย |
|---|---|
list_workspaces |
แสดงเวิร์กสเปซทั้งหมดพร้อม id และชื่อ (ระดับโลก; ไม่มี workspace_id) |
เครื่องมือรีโป
หัวข้อที่มีชื่อว่า “เครื่องมือรีโป”| เครื่องมือ | คำอธิบาย |
|---|---|
list_repos |
แสดงรีโปที่ลงทะเบียนไว้ในเวิร์กสเปซ ผู้เรียกที่เป็นเอเจนต์จะได้รับเส้นทาง worktree แบบ copy-on-write ที่แยกออกจากกันของบทสนทนาของมัน ไม่ใช่เช็กเอาต์ต้นฉบับ |
เครื่องมือส่งข้อความ
หัวข้อที่มีชื่อว่า “เครื่องมือส่งข้อความ”| เครื่องมือ | คำอธิบาย |
|---|---|
list_spaces |
แสดงสเปซส่งข้อความในเวิร์กสเปซ |
get_messages |
ดึงข้อความจากสเปซ |
send_message |
ส่งข้อความไปยังสเปซในนามของเอเจนต์ผู้ส่งที่มีชื่อ |
get_space_notes |
อ่านเอกสารส่งต่องานที่ใช้ร่วมกันของสเปซ |
update_space_notes |
แทนที่เอกสารส่งต่องานที่ใช้ร่วมกันของสเปซ |
todo_write |
แทนที่รายการสิ่งที่ต้องทำของบทสนทนานี้ในครั้งเดียว (ส่งรายการทั้งหมด) |
เครื่องมือรีวิว
หัวข้อที่มีชื่อว่า “เครื่องมือรีวิว”| เครื่องมือ | คำอธิบาย |
|---|---|
start_ai_review |
เริ่มรีวิวด้วย AI สำหรับ PR: คำนวณพื้นที่รีวิว กระจายรีวิวเวอร์ผู้เชี่ยวชาญเข้าสเปซรีวิว เขียนคำอธิบายแบบพาไล่ดู และปิดท้าย |
add_review_node |
เพิ่มข้อค้นพบการรีวิวแบบมีโครงสร้าง (ไฟล์ บรรทัด ลำดับความสำคัญ P0–P3) ลงในสเปซรีวิว |
confirm_review_node |
ยืนยันข้อค้นพบของเพื่อนร่วมงาน; ผู้เขียนยืนยันข้อค้นพบของตัวเองไม่ได้ |
resolve_review_node |
ทำเครื่องหมายว่าข้อค้นพบได้รับการแก้ไขแล้วหลังจากลงมือเปลี่ยนแปลงจริง; โพสต์ร่องรอยเข้าสเปซรีวิว |
dismiss_review_node |
ปิดข้อค้นพบที่ไม่เกี่ยวข้อง; บันทึกข้อเท็จจริงการระงับเพื่อให้รีวิวเวอร์หยุดตั้งธงซ้ำ |
request_peer_review |
ขอให้เอเจนต์รีวิวเวอร์อีกตัวช่วยดูข้อค้นพบเป็นรอบที่สอง |
dispatch_reviewers |
กระจายเอเจนต์รีวิวเวอร์ที่จับคู่ได้เข้าสเปซรีวิวแบบพร้อมกัน |
submit_reviewer_verdict |
โพสต์คำตัดสิน ship/hold/block ต่อรีวิวเวอร์หนึ่งราย พร้อมความเชื่อมั่นและคำอธิบาย |
finalize_review |
คำนวณฉันทามติต่อโหนดและคำตัดสินต่อ PR แล้วปิดรีวิว |
set_cohort_summary |
ตั้งสรุปภาษาธรรมชาติของ cohort รีวิวหนึ่งอัน |
add_review_diagram |
แนบแผนภาพที่มีโครงสร้างและผ่านการตรวจสอบด้วยกราฟ (sequence, entityRelation, stateMachine) เข้ากับ cohort |
publish_review_to_github |
เผยแพร่รีวิวที่ปิดท้ายแล้วไปยัง GitHub เป็นความเห็นแบบอินไลน์พร้อมเนื้อความสรุป |
เครื่องมือหน่วยความจำ
หัวข้อที่มีชื่อว่า “เครื่องมือหน่วยความจำ”| เครื่องมือ | คำอธิบาย |
|---|---|
search_memory |
ค้นหาข้อเท็จจริงและนโยบาย (คำค้น ความหมาย หรือแบบผสม — ค่าเริ่มต้นคือแบบผสม) |
propose_fact |
เก็บข้อเท็จจริง markdown สั้น ๆ ไว้ในโดเมน |
supersede_fact |
ทำเครื่องหมายว่าข้อเท็จจริงหนึ่งถูกแทนที่ด้วยอีกอัน |
propose_policy |
เก็บกฎเชิงบรรทัดฐานไว้ในโดเมน (ต้องมีสิทธิ์เขียนในโดเมนนั้น) |
supersede_policy |
ปลดระวางนโยบาย — ทำเครื่องหมายว่าไม่ทำงานอยู่ แต่ยังเก็บไว้เพื่อการตรวจสอบ |
list_policies |
แสดงนโยบายที่ทำงานอยู่ กรองตามโดเมนได้ตามต้องการ |
list_memory_domains |
แสดงโดเมนหน่วยความจำของเวิร์กสเปซพร้อมจำนวนข้อเท็จจริงและนโยบาย |
record_observation |
บันทึกข้อสังเกตดิบเข้าสู่หน่วยความจำใช้งานของเอเจนต์ |
get_my_notes |
อ่านสมุดจดชั่วคราวในหน่วยความจำใช้งานของเอเจนต์ผู้เรียก |
update_my_notes |
อัปเดตสมุดจดชั่วคราวในหน่วยความจำใช้งานของเอเจนต์ผู้เรียก |
remember |
เพิ่มบันทึกลงหน่วยความจำใช้งานร้อนของเอเจนต์สำหรับเซสชันนี้ (จำกัดด้วย TTL และจำนวน) |
consolidate_memory |
รันรอบการรวม (“sleep”): ลบรายการร้อนที่หมดอายุออก และม้วนรายการถาวรเข้าข้อเท็จจริงระยะยาว |
harmonize_memory |
รันการประสานความเชื่อข้ามเอเจนต์ (SHMR) และตั้งธงความขัดแย้ง |
list_memory_conflicts |
แสดงความขัดแย้งที่ตรวจพบและวิธีแก้ไขแต่ละรายการ |
เครื่องมือการกำกับดูแล
หัวข้อที่มีชื่อว่า “เครื่องมือการกำกับดูแล”| เครื่องมือ | คำอธิบาย |
|---|---|
create_goal |
สร้างเป้าหมายระดับองค์กร (ระดับบริษัท ทีม เอเจนต์ หรืองาน) |
list_goals |
แสดงเป้าหมายพร้อมระดับ สถานะ และความคืบหน้าที่รวมแล้ว |
update_goal_progress |
ตั้งค่าความคืบหน้าของเป้าหมาย |
create_approval |
เปิดการอนุมัติระดับบอร์ดสำหรับการกระทำที่อยู่ภายใต้การกำกับ (ออกจากโหมดแผน รวม รีลีส จ้าง กำหนดเอง) |
list_approvals |
แสดงการอนุมัติ กรองตามสถานะได้ตามต้องการ |
decide_approval |
บันทึกคำตัดสิน: อนุมัติ ปฏิเสธ ขอให้แก้ไข หรือส่งใหม่ |
comment_approval |
แสดงความเห็นต่อการอนุมัติระดับบอร์ด |
exit_plan_mode |
เปิด (และเมื่ออนุมัติแล้ว ก็ใช้ไป) การอนุมัติ plan_exit ซึ่งพลิกบทสนทนาออกจากโหมดแผน |
agent_heartbeat |
รายงานความมีชีวิต (ทำงานอยู่ ว่าง ติดขัด); การเงียบไปจะพลิกสุขภาพรันไทม์เป็นเพิ่งขาดการติดต่อ แล้วเป็นออฟไลน์ |
list_runtime_health |
แสดงสุขภาพรันไทม์ของเอเจนต์แต่ละตัว |
list_agent_presence |
แสดงสถานะออนไลน์ของเอเจนต์แต่ละตัว (สุขภาพ วงจรชีวิต จำนวนที่กำลังรันและอยู่ในคิว ความจุ) |
get_org_chart |
อ่านต้นไม้การรายงาน โดยมี CEO อยู่ที่ราก ซ้อนกันตาม reports_to |
create_work_product |
สร้างผลงานถาวรที่แนบกับตั๋วงาน |
save_work_product_revision |
บันทึกการแก้ไขใหม่; ส่ง base_revision_id เพื่อให้ถูกปฏิเสธเมื่อมีการแก้ไขพร้อมกัน |
list_work_products |
แสดงผลงาน กรองให้เหลือตั๋วงานเดียวได้ตามต้องการ |
get_work_product |
อ่านผลงานพร้อมประวัติการแก้ไข |
create_runtime_profile |
กำหนดโปรไฟล์รันไทม์ที่ใช้ซ้ำได้ (ตระกูลโปรโตคอล คำสั่ง CLI อาร์กิวเมนต์เรียกใช้แบบตายตัว) |
list_runtime_profiles |
แสดงโปรไฟล์รันไทม์ของเวิร์กสเปซ |
เครื่องมือกราฟโค้ด
หัวข้อที่มีชื่อว่า “เครื่องมือกราฟโค้ด”ลงทะเบียนก็ต่อเมื่อโฮสต์มีรีโพกราฟโค้ด ดัชนีครอบคลุมชุดไวยากรณ์ที่จัดส่ง (Dart, JS/TS, PHP, Python, Rust, Zig, C/C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB, Ada); สัญลักษณ์ในภาษาอื่นจะไม่มีอยู่
| เครื่องมือ | คำอธิบาย |
|---|---|
search_code |
ค้นหาสัญลักษณ์ที่จัดดัชนีแล้วตามชื่อ ลายเซ็น และคอมเมนต์เอกสาร (BM25 + ความหมายแบบผสม) |
code_symbol |
ค้นหาสัญลักษณ์ตามชื่อที่ตรงเป๊ะ; คืน file:line และลายเซ็น |
code_callers |
แสดงสัญลักษณ์ที่เรียกหรือพึ่งพาสัญลักษณ์หนึ่ง (เส้นเชื่อมขาเข้า) |
code_callees |
แสดงสัญลักษณ์ที่สัญลักษณ์หนึ่งเรียกหรือพึ่งพา (เส้นเชื่อมขาออก) |
code_impact |
คำนวณรัศมีผลกระทบแบบส่งผ่านของสัญลักษณ์ ถึงระดับความลึกหนึ่ง |
เครื่องมือตั๋วงาน
หัวข้อที่มีชื่อว่า “เครื่องมือตั๋วงาน”| เครื่องมือ | คำอธิบาย |
|---|---|
create_ticket |
สร้างตั๋วงานบนผู้ให้บริการที่กำหนดค่าไว้ |
get_ticket |
ดึงตั๋วงานหนึ่งใบตาม id |
list_tickets |
แสดงตั๋วงาน กรองตามสถานะหรือผู้รับมอบหมายได้ตามต้องการ |
update_ticket |
อัปเดตสถานะ ชื่อ คำอธิบาย ลำดับความสำคัญ หรือป้ายกำกับ (สถานะรับนามแฝงเช่น in_progress / completed) |
assign_ticket |
มอบหมายตั๋วงานให้เอเจนต์และ/หรือทีม |
reassign_ticket |
มอบหมายตั๋วงานใหม่ให้เอเจนต์ตัวอื่น |
add_ticket_collaborator |
เชิญเอเจนต์มาร่วมงานบนตั๋วงาน (เพิ่มเข้าสเปซของตั๋วงานนั้น) |
comment_on_ticket |
แสดงความเห็นบนตั๋วงาน |
close_ticket |
ปิดตั๋วงาน (ทำเครื่องหมายว่าเสร็จ) พร้อมผลลัพธ์ได้ตามต้องการ |
fail_ticket |
ทำเครื่องหมายว่าตั๋วงานล้มเหลว พร้อมข้อความข้อผิดพลาด |
delegate_ticket |
มอบหมายตั๋วงานให้เอเจนต์ โดยสร้างตั๋วงานที่ติดตามได้ |
ticket_pr_link |
เชื่อมหรือยกเลิกการเชื่อมตั๋วงานกับ pull request ด้วย PR node id (action: link | unlink) |
ticket_relation |
เพิ่มหรือลบความสัมพันธ์ระหว่างตั๋วงานสองใบ — blocked_by, blocking, related_to, duplicate_of, duplicated_by, sub_issue_of, parent_of (action: add | remove) |
list_ticket_relations |
แสดงตั๋วงานแม่ ตั๋วงานย่อย และลิงก์การพึ่งพาของตั๋วงานหนึ่งใบ |
เครื่องมือทีมและไปป์ไลน์
หัวข้อที่มีชื่อว่า “เครื่องมือทีมและไปป์ไลน์”| เครื่องมือ | คำอธิบาย |
|---|---|
record_team_activity |
บันทึกรายการกิจกรรมของหัวหน้าทีมเทียบกับตั๋วงาน |
preview_trigger |
ลองรันแบบแห้งว่าเหตุการณ์สมมติหนึ่งจะเริ่มการรันไปป์ไลน์ใด โดยไม่คอมมิตสิ่งใด |
submit_output |
ส่งเพย์โหลดผลลัพธ์แบบมีโครงสร้างสำหรับรันไปป์ไลน์ปัจจุบันของผู้เรียก; ตรวจสอบเทียบกับสคีมาผลลัพธ์ที่ประกาศไว้ของการรันนั้น |
เครื่องมือการประสานงาน
หัวข้อที่มีชื่อว่า “เครื่องมือการประสานงาน”| เครื่องมือ | คำอธิบาย |
|---|---|
propose_orchestration |
ส่งแผนการประสานงานแบบหลายเอเจนต์ที่มีโครงสร้างเพื่อขออนุมัติล่วงหน้าครั้งเดียว; ตรวจสอบและคืนการละเมิดใด ๆ ที่พบ |
เครื่องมือฟีดข่าว
หัวข้อที่มีชื่อว่า “เครื่องมือฟีดข่าว”| เครื่องมือ | คำอธิบาย |
|---|---|
list_feeds |
แสดงฟีด RSS/Atom ที่ลงทะเบียนไว้ |
list_articles |
แสดงบทความ กรองตามฟีด ที่ยังไม่อ่าน หรือที่บันทึกไว้ได้ตามต้องการ |
get_article |
ดึงบทความหนึ่งรายการ |
set_article_read |
ทำเครื่องหมายบทความว่าอ่านแล้วหรือยังไม่อ่าน |
set_article_saved |
บันทึกหรือยกเลิกการบันทึกบทความ |
refresh_feeds |
ดึงฟีดที่เปิดใช้ทั้งหมดใหม่ทันที |
เครื่องมือเอนโคลเจอร์ (ริก)
หัวข้อที่มีชื่อว่า “เครื่องมือเอนโคลเจอร์ (ริก)”ขับเครื่องแบบใช้แล้วทิ้ง — เบราว์เซอร์หรือเดสก์ท็อป Linux ที่ถูกปิดล้อม
เอมูเลเตอร์ Android หรือ iOS Simulator — จากภายในรัน ลงทะเบียนหลังบูต
แบบไม่มีเงื่อนไข: ว่าเครื่องจะบูตได้จริงหรือไม่เป็นคำถามเชิงตรวจสอบที่
เครื่องมือตอบเป็นรายการเรียก การเรียกซ้ำ ๆ ในบทสนทนาเดียวกันใช้เครื่องเดิมร่วมกัน;
สกรีนช็อตส่งกลับมาเป็นเนื้อหารูปภาพโดยมีงบหนึ่งภาพต่อผลลัพธ์ และ
เนื้อหาหน้าเว็บ/UI ที่สกัดออกมาถูกกั้นไว้เป็นข้อมูลที่ไม่น่าเชื่อถือ เครื่องมือใช้งานสี่ตัวบวก
rig_close ประกาศคลาสการกระทำ enclosureControl
(เครื่องมือใช้งานยังประกาศ networkEgress และ processSpawn ด้วย; mobile_use และ
ios_use ยังประกาศ packageInstall ด้วย) โหมดอ่านอย่างเดียวจึงปฏิเสธเครื่องมือเหล่านี้ rig_list
ไม่ประกาศคลาสใดเลย — มันอ่านสถานะเวิร์กสเปซเท่านั้น คำศัพท์คำกริยาทั้งหมดต่อพื้นผิวอยู่ใน
เอกสารอ้างอิงริก
| เครื่องมือ | คำอธิบาย |
|---|---|
computer_use |
ขับเดสก์ท็อป Linux ใน VM ที่ปิดล้อม: เลื่อน คลิก ลาก เลื่อนดู พิมพ์ ปรับขนาด คลิปบอร์ด สกรีนช็อต |
browser_use |
ขับ Chromium, Firefox หรือ WebKit แบบไม่มีหน้าจอ (engine): นำทาง คลิก กรอก สกัด (a11y/DOM/console) คลิปบอร์ด สกรีนช็อต |
mobile_use |
ขับ Android ผ่าน ADB: ตรวจสอบ/ป้อนข้อมูล สกรีนช็อต ติดตั้ง/เริ่ม/หยุด/รีเซ็ต/ถอนการติดตั้งแอป deep link และคำสั่งอุปกรณ์รูป argv |
ios_use |
ขับ iOS Simulator ผ่าน WebDriverAgent/CoreSimulator: ตรวจสอบ/ป้อนข้อมูล สกรีนช็อต ติดตั้ง/เริ่ม/หยุด/ถอนการติดตั้งแอป deep link และโปรเซสจำลองรูป argv |
rig_list |
แสดงริกของเวิร์กสเปซพร้อมพื้นผิว สถานะ ขนาดจอ และตัวควบคุม |
rig_close |
ทำลายริกและทิ้งสถานะเครื่องที่เป็นของมัน |
สิ่งที่ไม่เปิดให้เข้าถึงผ่าน MCP
หัวข้อที่มีชื่อว่า “สิ่งที่ไม่เปิดให้เข้าถึงผ่าน MCP”ปฏิทินและการประชุมไม่มีเครื่องมือ MCP เอเจนต์อ่านปฏิทิน การประชุม ถอดเสียง รายการสิ่งที่ต้องทำ หรือคำตัดสินของคุณไม่ได้ สรุปที่ผลิตรายการสิ่งที่ต้องทำและคำตัดสินรันเป็นไปป์ไลน์ meeting_summary ในตัว ไม่ใช่เครื่องมือที่เอเจนต์เรียกได้
การกั้นเครื่องมือตามโหมด
หัวข้อที่มีชื่อว่า “การกั้นเครื่องมือตามโหมด”การกั้นถูกบังคับใช้สองครั้งจากตารางเดียว (ModeToolPolicy): ครั้งหนึ่งในตัวจัดส่ง MCP สำหรับอะแดปเตอร์ Claude Code และอีกครั้งในรีจิสทรีของฮาร์เนสในตัว การเรียกที่ถูกกั้นจะคืนเหตุผล
| โหมด | พื้นผิวเครื่องมือ |
|---|---|
chat |
เครื่องมือที่ลงทะเบียนไว้ทุกตัว; ไม่มีรายการที่อนุญาต |
plan |
รายการที่อนุญาตที่คัดสรรไว้ ไม่มีการเขียน worktree และไม่มีคำกริยาตั๋วงาน create / assign / delegate แต่หน่วยความจำ อาร์ติแฟกต์ รายการสิ่งที่ต้องทำ submit_plan, exit_plan_mode และคำกริยาการปิดตั๋วงานบนตั๋วงานที่ถูกสั่งงานได้รับอนุญาต |
review |
รายการที่อนุญาตที่คัดสรรไว้: การมีส่วนร่วมในรีวิว การสื่อสาร ตัวดึงบริบทแบบอ่านอย่างเดียว และชุดคำกริยาตั๋วงานทั้งหมดรวมถึง create_ticket และ assign_ticket |
orchestrate |
รายการที่อนุญาตที่คัดสรรไว้: เครื่องมือค้นคว้าและอ่าน บวก propose_orchestration, create_playbook และ run_playbook การจ้าง การแบ่งงานย่อย และการปิดตั๋วงานเกิดขึ้นแบบกำหนดแน่นอนหลังการอนุมัติ ไม่เคยเกิดขึ้นกลางรัน |
อนุญาตในทุกโหมดโดยไม่สนใจรายการที่อนุญาต:
| ชุด | เครื่องมือ |
|---|---|
| หน่วยความจำและอาร์ติแฟกต์ | search_memory, propose_fact, propose_policy, supersede_fact, supersede_policy, record_observation, update_my_notes, get_my_notes, list_memory_domains, list_policies, publish_artifact, revise_artifact, list_artifacts, get_artifact |
| กราฟโค้ด | search_code, code_symbol, code_callers, code_callees, code_impact |
| กลไกการรัน | search_tool_bm25, list_my_tools, todo_write, todo_read |
การอยู่ในรายการที่อนุญาตไม่ได้ทำให้เครื่องมือเรียกได้ และกลับกันก็เช่นกัน: ความสามารถในการถามโอเปอเรเตอร์เป็นเครื่องมือของ ฮาร์เนส (ask_user) จึงไม่ปรากฏในแค็ตตาล็อก MCP นี้เลย
เครื่องมือที่กั้นด้วยการอนุมัติ
หัวข้อที่มีชื่อว่า “เครื่องมือที่กั้นด้วยการอนุมัติ”เครื่องมืออาจประกาศ requiresApproval ได้ จากนั้นตัวจัดส่งจะสร้าง ApprovalPayload และแสดงมันผ่าน ConfirmationPort ก่อนที่เครื่องมือจะรัน; cc_server ต่อพอร์ตนั้นไว้ ด่านจึงทำงานจริง
เครื่องมือที่ลงทะเบียนไว้ซึ่งประกาศมัน: create_ticket, update_ticket, assign_ticket, reassign_ticket, close_ticket, ticket_relation, create_goal, update_goal_progress, create_approval, decide_approval, comment_approval, create_work_product, save_work_product_revision, create_runtime_profile, install_skill, update_skill.
โดยเป็นอิสระจากกัน กฎคุมการกระทำแบบรวมจะกั้นเครื่องมือใดก็ตามที่ประกาศชุด ActionClass ที่ไม่ว่าง คำตัดสิน prompt ที่ไม่มีผู้อนุมัติเชื่อมต่ออยู่จะถูกปฏิเสธ ดูกฎคุม
ความสามารถที่ไม่มีเครื่องมือรองรับ
หัวข้อที่มีชื่อว่า “ความสามารถที่ไม่มีเครื่องมือรองรับ”ไม่ใช่ทุกความสามารถในผลิตภัณฑ์ที่เอเจนต์เข้าถึงได้ สิ่งเหล่านี้ไม่มีเครื่องมือ เลย ชื่อที่คุณอาจเคยเห็นอ้างถึงที่อื่นจึงคืนค่า “unknown tool”:
| ความสามารถ | ที่อยู่จริงของมัน |
|---|---|
| การจ้าง การไล่ออก หรือการแก้ไขเอเจนต์ | UI ของเอเจนต์ ไม่มีเครื่องมือ hire_agent / fire_agent / update_agent |
| การสร้างเวิร์กสเปซ | workspace.upsert ผ่าน RPC ซึ่งเพาะข้อมูลเริ่มต้นและประทับความเป็นเจ้าของ |
| โปรเจกต์ (สร้าง / แสดงรายการ / อัปเดต / ผูกไฟล์) | UI ของตั๋วงาน โปรเจกต์เป็นพื้นผิวสำหรับโอเปอเรเตอร์ — ดูโปรเจกต์ |
| การถามคำถามแบบบล็อกกับโอเปอเรเตอร์ | เครื่องมือ ask_user ของ ฮาร์เนส ไม่ใช่ MCP มันเรนเดอร์ฟอร์มในบทสนทนาและบล็อกรอคำตอบ |
| การวินิจฉัยรายเอเจนต์ | ไม่มีเลย ไม่มี doctor — ดูการวินิจฉัยเอเจนต์ |
| ปฏิทินและการประชุม | RPC สำหรับไคลเอนต์มนุษย์เท่านั้น (ดูด้านบน) |