כלי 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) מקבלים אותו באופן אופציונלי כדי שיוכלו לסווג את יכולת הקריאה לפי מצב השיחה. כשהשרת שולח סוכן, סביבת העבודה נכפית בצד השרת, כך שהסוכן אינו יכול להגיע לסביבת עבודה אחרת באמצעות מזהה זר.
גילוי כלים
קטע בשם “גילוי כלים”שניהם מגיעים מ-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
קטע בשם “לא נחשף דרך MCP”ללוח השנה ולפגישות אין כלי 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 ללקוחות אנושיים בלבד (ראו לעיל) |