דלגו לתוכן

כלי 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 חסר או שגוי מחזיר שגיאה מפורשת, וערך שאינו תואם את סביבת העבודה של הישות שאליה הוא מכוון נדחה ולא מתעלמים ממנו בשקט. השמיטו אותו בכלים גלובליים באמת: list_workspaces וששת כלי עדכוני החדשות (list_feeds, list_articles, get_article, set_article_read, set_article_saved, refresh_feeds), שנשענים על רשימת הפידים האישית של בעל השרת. כלי הגילוי (search_tool_bm25, list_my_tools) מקבלים אותו באופן אופציונלי כדי שיוכלו לסווג את יכולת הקריאה לפי מצב השיחה. כשהשרת שולח סוכן, סביבת העבודה נכפית בצד השרת, כך שהסוכן אינו יכול להגיע לסביבת עבודה אחרת באמצעות מזהה זר.

שניהם מגיעים מ-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 הצגת כל סביבות העבודה עם המזהים והשמות שלהן (גלובלי; בלי workspace_id)
כלי תיאור
list_repos הצגת המאגרים הרשומים בסביבת עבודה. סוכנים שקוראים לכלי מקבלים את נתיבי עצי העבודה המבודדים מסוג העתקה-בעת-כתיבה של השיחה שלהם, ולעולם לא את ה-checkouts המקוריים
כלי תיאור
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 חישוב קונצנזוס לכל צומת וההכרעה לכל בקשת משיכה, וסגירת הסקירה
set_cohort_summary קביעת סיכום בשפה פשוטה לקבוצת סקירה
add_review_diagram צירוף תרשים מובנה ומאומת בגרף (sequence, entityRelation, stateMachine) לקבוצה
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 הרצת מעבר איחוד (”שינה”): פינוי פריטים חמים שפג תוקפם וגלגול עמידים לעובדות ארוכות טווח
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 שליפת כרטיס אחד לפי מזהה
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 קישור או ביטול קישור בין כרטיס לבקשת משיכה לפי מזהה צומת ה-PR (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 — מתוך הרצה. נרשמים לאחר האתחול, ללא תנאי: האם מכונה מסוגלת באמת לעלות היא שאלת בדיקה שהכלים עונים עליה בכל קריאה. קריאות חוזרות באותה שיחה עושות שימוש חוזר במכונה אחת; צילומי מסך חוזרים כתוכן תמונה עם תקציב של תמונה אחת לכל תוצאה, ותוכן דף/ממשק שחולץ מגודר כנתון לא מהימן. ארבעת כלי השימוש יחד עם rig_close מצהירים על מחלקת הפעולה enclosureControl (כלי השימוש מצהירים גם על networkEgress ו-processSpawn; mobile_use ו-ios_use מצהירים גם על packageInstall), ולכן מצבים לקריאה בלבד חוסמים אותם. rig_list אינו מצהיר על דבר — הוא רק קורא את מצב סביבת העבודה. מלוא אוצר הפעלים לכל משטח נמצא במדריך העזר לתחנות.

כלי תיאור
computer_use הפעלת שולחן עבודה של Linux במכונה וירטואלית מבודדת: הזזה, לחיצה, גרירה, גלילה, הקלדה, שינוי גודל, לוח גזירים, צילום מסך
browser_use הפעלת Chromium, Firefox או WebKit ללא ממשק (engine): ניווט, לחיצה, מילוי, חילוץ (a11y/DOM/console), לוח גזירים, צילום מסך
mobile_use הפעלת Android דרך ADB: בדיקה וקלט, צילומי מסך, התקנה/הפעלה/עצירה/איפוס/הסרה של אפליקציות, קישורים עמוקים ופקודות מכשיר בצורת argv
ios_use הפעלת סימולטור iOS דרך WebDriverAgent/CoreSimulator: בדיקה וקלט, צילומי מסך, התקנה/הפעלה/עצירה/הסרה של אפליקציות, קישורים עמוקים ותהליכי סימולטור בצורת argv
rig_list הצגת התחנות של סביבת עבודה עם המשטח, הסטטוס, גודל התצוגה והבקר
rig_close השמדת תחנה והשלכת מצב המכונה שבבעלותה

ללוח השנה ולפגישות אין כלי MCP. סוכנים אינם יכולים לקרוא את לוח השנה, הפגישות, התמלולים, פריטי הפעולה או ההחלטות שלכם. הסיכום שמייצר פריטי פעולה והחלטות רץ כפייפליין המובנה meeting_summary, ולא ככלי שסוכן יכול לקרוא לו.

השער נאכף פעמיים מאותה טבלה (ModeToolPolicy): פעם אחת במפעיל ה-MCP עבור מתאם Claude Code, ופעם אחת במרשם מנגנון ההרצה המובנה. קריאה חסומה מחזירה את הסיבה.

מצב משטח כלים
chat כל כלי רשום; בלי רשימת היתר
plan רשימת היתר מצומצמת. אין כתיבה לעצי עבודה ואין פעלי כרטיס 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. מפעיל ה-MCP בונה אז 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”:

יכולת היכן היא נמצאת במקום זאת
גיוס, פיטורים או עריכה של סוכן ממשק הסוכנים. אין כלי hire_agent / fire_agent / update_agent
יצירת סביבת עבודה workspace.upsert דרך RPC, שמזריע וחותם בעלות
פרויקטים (יצירה / הצגה / עדכון / שיוך) ממשק הכרטיסים. פרויקטים הם משטח של המפעיל — ראו פרויקטים
שאלת המפעיל שאלה חוסמת הכלי ask_user של מנגנון ההרצה, ולא MCP. הוא מציג טופס בשיחה וחוסם עד לקבלת התשובה
אבחון לפי סוכן כלום. אין doctor — ראו אבחון סוכן
לוח שנה ופגישות RPC ללקוחות אנושיים בלבד (ראו לעיל)