Zum Inhalt springen

MCP-Tools

cc_server betreibt eine MCP-Registrierung (JSON-RPC 2.0) und stellt sie auf dem Hauptport des Servers (Standard 9030) unter POST /mcp und GET /sse bereit, Protokollversion 2024-11-05. Jeder Client erreicht dieselbe Registrierung: der Desktop, der Web-Build, externe MCP-Clients und die eingebaute Agentenlaufzeit. Externe MCP-Server lassen sich als dynamische Schicht in dieselbe Registrierung brücken.

Kennzahl Anzahl
Tools, die cc_server registriert 110
Aus packages/cc_mcp 108
Aus packages/cc_mcp_client (Tool-Suche) 2
In der Basisregistrierung registriert (server_mcp_registry.dart) 63
Nach dem Start registriert, sobald ihre Dienste hochkommen (cc_server_runtime.dart) 47
Von den 63 der Basisregistrierung nur bei einem Code-Graph-Repository 5

Die fünf Code-Graph-Tools werden nur registriert, wenn der Host ein Code-Graph-Repository an buildServerMcpRegistry übergibt. cc_server übergibt immer eines, deshalb sind im ausgelieferten Binary alle 110 live.

Die volle Registrierung wird in tools/list ohne Suchfilter angeboten. Ticketbearbeitungen sind typisierte Tools.

Erforderlich bei jedem Tool, das Daten im Geltungsbereich eines Arbeitsbereichs berührt. Eine fehlende oder ungültige workspace_id liefert einen ausdrücklichen Fehler, und ein Wert, der nicht zum Arbeitsbereich der Zieleinheit passt, wird abgelehnt, statt stillschweigend übergangen zu werden. Lass sie bei den wirklich globalen Tools weg: list_workspaces und die sechs Newsfeed-Tools (list_feeds, list_articles, get_article, set_article_read, set_article_saved, refresh_feeds), die auf der Feed-Liste des Server-Besitzers je Benutzer laufen. Such-Tools (search_tool_bm25, list_my_tools) nehmen sie optional, damit sie die Aufrufbarkeit nach dem Modus der Unterhaltung einstufen können. Wird ein Agent vom Server gestartet, erzwingt der Server den Arbeitsbereich. Eine fremde ID öffnet dem Agenten keinen anderen Arbeitsbereich.

Beide kommen aus cc_mcp_client, nicht aus cc_mcp, und beide fragen die Modus-Sperre, damit sie melden, was im aktuellen Unterhaltungsmodus aufrufbar ist.

Tool Beschreibung
search_tool_bm25 Sucht den Tool-Katalog nach Schlüsselwort; liefert passende Tools, ihre Argumentschemas und ob jedes jetzt aufrufbar ist
list_my_tools Listet die Tools, die in dieser Unterhaltung jetzt aufrufbar sind, gefiltert nach ihrem Modus

Ein drittes Such-Tool, search_tools, gibt es nur im eingebauten Harness, und es gehört nicht zu dieser MCP-Registrierung. Es ordnet die eigene Tool-Oberfläche des Laufs und lädt, anders als search_tool_bm25, die Schemas dessen, was es findet, damit der Agent einen Treffer im nächsten Zug aufrufen kann. Agenten auf dem Harness sollten es vorziehen; MCP-Clients haben search_tool_bm25.

Tool Beschreibung
list_agents Listet die registrierten Agenten eines Arbeitsbereichs

Agenten sprechen miteinander über Bereiche (dauerhaft, in der Teilnehmerliste sichtbar). ask_agent ist Anfrage und Antwort mit einer Pflicht-Zeitüberschreitung; delegate_task wird serverseitig durch Tiefenobergrenze, Zykluserkennung, Budgetrahmen und Autonomieobergrenze geschützt.

Tool Beschreibung
send_to_agent Sendet eine Einwegnachricht an einen anderen Agenten, adressiert über to_agent_id oder exaktes to_agent_name
ask_agent Stellt einem anderen Agenten eine Frage und wartet auf die Antwort, oder läuft in die Zeitüberschreitung
delegate_task Delegiert eine Aufgabe an einen anderen Agenten als verfolgtes Unterticket
consult_agent Nimmt den nach Skills am besten passenden Spezialisten in den Bereich auf und startet ihn mit einem engen Auftrag
todo_read Liest die gespeicherte Aufgabenliste dieser Unterhaltung

Jedes Installieren und Aktualisieren läuft durch ein fail-closed Scan-Tor, bevor irgendein Skill-Inhalt auf die Platte oder in einen Agenten-Prompt gelangt.

Tool Beschreibung
list_skills Listet die Skill-Slugs, die in einem Arbeitsbereich verfügbar sind
create_skill Legt einen neuen Skill aus Markdown-Inhalt an
install_skill Installiert das ganze Verzeichnis eines Skills aus einem GitHub-Repository an einem gepinnten Ref
update_skill Aktualisiert einen installierten GitHub-Skill auf einen neuen Ref, prüft ihn erneut und pinnt ihn neu
list_skill_updates Listet Skills, für die eine neuere Version verfügbar ist
verify_skills Prüft die im Lock festgehaltenen Skills gegen ihre Inhalts-Hashes auf der Platte
pin_skill Hasht einen vorhandenen Skill auf der Platte in skills-lock.json
Tool Beschreibung
submit_plan Ausgabevertrag des Planmodus: gibt ein typisiertes PlanDocument aus, das sich im Plan-Studio öffnet
create_playbook Speichert einen Plan als benannte, versionierte Vorlage mit typisierten Platzhaltern {{param}}
run_playbook Instanziiert ein Playbook mit Parameterwerten und erzeugt einen Plan, den der Betreiber freigibt
publish_artifact Veröffentlicht eine geordnete Liste typisierter Blöcke (Markdown, Tabelle, Grafik, Mermaid, Code, JSON), die der Client nativ darstellt
revise_artifact Ersetzt den Inhalt eines veröffentlichten Artefakts
list_artifacts Listet die Artefakte des Arbeitsbereichs
get_artifact Liest ein Artefakt
complete_goal Erklärt das aktive dauerhafte Ziel der Unterhaltung (gestartet mit /goal oder /loop) für erreicht
Tool Beschreibung
list_workspaces Listet alle Arbeitsbereiche mit ihren IDs und Namen (global; ohne workspace_id)
Tool Beschreibung
list_repos Listet die Repos, die in einem Arbeitsbereich registriert sind. Aufrufende Agenten erhalten die isolierten Copy-on-Write-Worktree-Pfade ihrer Unterhaltung, nie die ursprünglichen Checkouts
Tool Beschreibung
list_spaces Listet die Nachrichtenbereiche eines Arbeitsbereichs
get_messages Holt Nachrichten aus einem Bereich
send_message Sendet eine Nachricht an einen Bereich als benannter Absender-Agent
get_space_notes Liest das gemeinsame Übergabedokument eines Bereichs
update_space_notes Ersetzt das gemeinsame Übergabedokument eines Bereichs
todo_write Ersetzt die Aufgabenliste dieser Unterhaltung in einem Aufruf (übergib die volle Liste)
Tool Beschreibung
start_ai_review Startet die KI-Review für einen PR: berechnet die Review-Bereiche, fächert spezialisierte Reviewer in den PR-Bereich auf, verfasst den Walkthrough und schließt ab
add_review_node Fügt einem Review-Bereich einen strukturierten Befund hinzu (Datei, Zeile, Priorität P0–P3)
confirm_review_node Bestätigt den Befund eines Peers; der Autor kann sich nicht selbst bestätigen
resolve_review_node Markiert einen Befund als behoben, nachdem die Änderung wirklich gemacht wurde; schreibt eine Spur in den Review-Bereich
dismiss_review_node Verwirft einen Befund, der nicht zutrifft; schreibt einen Unterdrückungsfakt, damit Reviewer ihn nicht erneut markieren
request_peer_review Bittet einen anderen Reviewer-Agenten um einen zweiten Blick auf einen Befund
dispatch_reviewers Startet passende Reviewer-Agenten parallel in einen Review-Bereich
submit_reviewer_verdict Schreibt ein Verdikt ship/hold/block je Reviewer, mit Konfidenz und einer Begründung
finalize_review Berechnet den Konsens je Knoten und das Verdikt je PR und schließt die Review
set_cohort_summary Setzt die Klartext-Zusammenfassung einer Review-Kohorte
add_review_diagram Hängt ein strukturiertes, graphgeprüftes Diagramm (sequence, entityRelation, stateMachine) an eine Kohorte
publish_review_to_github Veröffentlicht die abgeschlossene Review auf GitHub als Inline-Kommentare plus einen Zusammenfassungstext
Tool Beschreibung
search_memory Sucht Fakten und Richtlinien (Schlüsselwort, semantisch oder hybrid — hybrid ist die Voreinstellung)
propose_fact Speichert einen kurzen Markdown-Fakt in einer Domäne
supersede_fact Markiert einen Fakt als durch einen anderen ersetzt
propose_policy Speichert eine normative Regel in einer Domäne (verlangt Schreibberechtigung darauf)
supersede_policy Setzt eine Richtlinie außer Kraft — markiert sie als inaktiv und behält sie für die Prüfung
list_policies Listet aktive Richtlinien, optional nach Domäne gefiltert
list_memory_domains Listet die Gedächtnisdomänen des Arbeitsbereichs mit der Anzahl der Fakten und Richtlinien
record_observation Schreibt eine rohe Beobachtung ins Arbeitsgedächtnis des Agenten
get_my_notes Liest den Notizblock des Arbeitsgedächtnisses des aufrufenden Agenten
update_my_notes Aktualisiert den Notizblock des Arbeitsgedächtnisses des aufrufenden Agenten
remember Fügt dem heißen Arbeitsgedächtnis des Agenten für diese Sitzung eine Notiz hinzu (begrenzt durch TTL und Anzahl)
consolidate_memory Führt einen Konsolidierungslauf („Schlaf“) aus: wirft abgelaufene heiße Einträge hinaus und überführt dauerhafte in langfristige Fakten
harmonize_memory Führt den Abgleich der Überzeugungen zwischen Agenten aus (SHMR) und markiert Widersprüche
list_memory_conflicts Listet erkannte Widersprüche und wie jeder aufgelöst wurde
Tool Beschreibung
create_goal Legt ein Organisationsziel an (Ebene Unternehmen, Team, Agent oder Aufgabe)
list_goals Listet Ziele mit Ebene, Status und zusammengefasstem Fortschritt
update_goal_progress Setzt den Fortschritt eines Ziels
create_approval Öffnet eine Board-Freigabe für eine gesteuerte Aktion (plan exit, merge, release, hire, custom)
list_approvals Listet Freigaben, optional nach Status gefiltert
decide_approval Hält eine Entscheidung fest: approve, reject, request revision oder resubmit
comment_approval Kommentiert eine Board-Freigabe
exit_plan_mode Öffnet eine plan_exit-Freigabe (und verbraucht sie nach der Freigabe) und schaltet die Unterhaltung aus dem Planmodus
agent_heartbeat Meldet Lebendigkeit (alive, idle, stuck); wird es still, wechselt die Laufzeitgesundheit zu recently-lost und dann zu offline
list_runtime_health Listet die Laufzeitgesundheit jedes Agenten
list_agent_presence Listet die Präsenz jedes Agenten (Gesundheit, Lebenszyklus, Anzahl laufender und wartender Läufe, Kapazität)
get_org_chart Liest den Berichtsbaum, den CEO an der Wurzel, verschachtelt über reports_to
create_work_product Legt ein dauerhaftes Arbeitsergebnis an einem Ticket an
save_work_product_revision Speichert eine neue Revision; übergib base_revision_id, damit eine gleichzeitige Bearbeitung abgelehnt wird
list_work_products Listet Arbeitsergebnisse, optional auf ein Ticket gefiltert
get_work_product Liest ein Arbeitsergebnis mit seiner Revisionshistorie
create_runtime_profile Definiert ein wiederverwendbares Laufzeitprofil (Protokollfamilie, CLI-Befehl, feste Startargumente)
list_runtime_profiles Listet die Laufzeitprofile des Arbeitsbereichs

Registriert nur, wenn der Host ein Code-Graph-Repository bereitstellt. Der Index deckt den mitgelieferten Grammatiksatz ab (Dart, JS/TS, PHP, Python, Rust, Zig, C/C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB, Ada); Symbole in jeder anderen Sprache sind nicht vorhanden.

Tool Beschreibung
search_code Sucht indizierte Symbole nach Name, Signatur und Doc-Kommentar (hybrid BM25 + semantisch)
code_symbol Schlägt Symbole nach exaktem Namen nach; liefert file:line und die Signatur
code_callers Listet die Symbole, die ein Symbol aufrufen oder von ihm abhängen (eingehende Kanten)
code_callees Listet die Symbole, die ein Symbol aufruft oder von denen es abhängt (ausgehende Kanten)
code_impact Berechnet den transitiven Auswirkungsradius eines Symbols bis zu einer Tiefe
Tool Beschreibung
create_ticket Legt ein Ticket beim konfigurierten Anbieter an
get_ticket Holt ein Ticket nach ID
list_tickets Listet Tickets, optional nach Status oder Zuständigem gefiltert
update_ticket Aktualisiert Status, Titel, Beschreibung, Priorität oder Labels (der Status nimmt Aliase wie in_progress / completed an)
assign_ticket Weist ein Ticket einem Agenten und/oder einem Team zu
reassign_ticket Weist ein Ticket einem anderen Agenten neu zu
add_ticket_collaborator Lädt einen Agenten zur Mitarbeit an einem Ticket ein (wird seinem Bereich hinzugefügt)
comment_on_ticket Kommentiert ein Ticket
close_ticket Schließt ein Ticket (markiert es als erledigt), mit optionaler Ausgabe
fail_ticket Markiert ein Ticket als fehlgeschlagen, mit einer Fehlermeldung
delegate_ticket Delegiert ein Ticket an einen Agenten und legt ein verfolgtes Ticket an
ticket_pr_link Verknüpft oder löst ein Ticket und einen Pull Request über die PR-Knoten-ID (action: link | unlink)
ticket_relation Fügt eine Beziehung zwischen zwei Tickets hinzu oder entfernt sie — blocked_by, blocking, related_to, duplicate_of, duplicated_by, sub_issue_of, parent_of (action: add | remove)
list_ticket_relations Listet Eltern, Unteraufgaben und Abhängigkeitsverknüpfungen eines Tickets
Tool Beschreibung
record_team_activity Schreibt einen Aktivitätseintrag der Teamleitung an ein Ticket
preview_trigger Probelauf: welche Pipeline-Läufe ein hypothetisches Ereignis starten würde, ohne etwas festzuschreiben
submit_output Reicht die strukturierte Ausgabenutzlast für den aktuellen Pipeline-Lauf des Aufrufers ein; geprüft gegen das deklarierte Ausgabeschema des Laufs
Tool Beschreibung
propose_orchestration Gibt einen strukturierten Orchestrierungsplan für mehrere Agenten zur einen Freigabe im Voraus aus; prüft und liefert alle Verstöße zurück
Tool Beschreibung
list_feeds Listet die registrierten RSS/Atom-Feeds
list_articles Listet Artikel, optional nach Feed, ungelesen oder gespeichert gefiltert
get_article Holt einen Artikel
set_article_read Markiert einen Artikel als gelesen oder ungelesen
set_article_saved Speichert einen Artikel oder hebt die Speicherung auf
refresh_feeds Holt jeden aktivierten Feed jetzt neu

Steuere Wegwerfmaschinen — einen gekapselten Browser oder Linux-Desktop, einen Android-Emulator oder einen iOS-Simulator — aus einem Lauf heraus. Sie werden nach dem Start bedingungslos registriert: Ob eine Maschine wirklich booten kann, ist eine Prüffrage, die die Tools bei jedem Aufruf beantworten. Wiederholte Aufrufe in einer Unterhaltung verwenden dieselbe Maschine; Screenshots kommen als Bildinhalt zurück, mit einem Budget von einem Bild je Ergebnis, und ausgelesener Seiten- oder UI-Inhalt ist als nicht vertrauenswürdige Daten eingezäunt. Die vier Use-Tools plus rig_close deklarieren die Aktionsklasse enclosureControl (die Use-Tools deklarieren außerdem networkEgress und processSpawn; mobile_use und ios_use deklarieren außerdem packageInstall), deshalb verweigern sie Nur-Lese-Modi. rig_list deklariert keine — es liest nur den Zustand des Arbeitsbereichs. Das vollständige Verbvokabular je Oberfläche steht in der Rigs-Referenz.

Tool Beschreibung
computer_use Steuert einen Linux-Desktop in einer gekapselten VM: move, click, drag, scroll, type, resize, clipboard, screenshot
browser_use Steuert ein headless Chromium, Firefox oder WebKit (engine): navigate, click, fill, extract (a11y/DOM/console), clipboard, screenshot
mobile_use Steuert Android über ADB: inspect/input, Screenshots, install/start/stop/reset/uninstall von Apps, Deep Links und argv-förmige Gerätebefehle
ios_use Steuert den iOS-Simulator über WebDriverAgent/CoreSimulator: inspect/input, Screenshots, install/start/stop/uninstall von Apps, Deep Links und argv-förmige Simulatorprozesse
rig_list Listet die Rigs eines Arbeitsbereichs mit Oberfläche, Status, Anzeigegröße und Controller
rig_close Zerstört ein Rig und verwirft den Maschinenzustand, den es besitzt

Kalender und Besprechungen haben keine MCP-Tools. Agenten können deinen Kalender, deine Besprechungen, Transkripte, Aufgaben oder Entscheidungen nicht lesen. Die Zusammenfassung, die Aufgaben und Entscheidungen erzeugt, läuft als eingebaute meeting_summary-Pipeline, nicht als Tool, das ein Agent aufrufen kann.

Die Begrenzung wird zweimal aus einer Tabelle (ModeToolPolicy) durchgesetzt: einmal im MCP-Dispatcher für den Adapter von Claude Code und einmal in der Registrierung des eingebauten Harness. Ein blockierter Aufruf gibt den Grund zurück.

Modus Werkzeugfläche
chat Jedes registrierte Tool; keine Zulassungsliste
plan Eine kuratierte Zulassungsliste. Keine Schreibzugriffe auf den Worktree und keine Ticket-Verben create / assign / delegate, erlaubt sind aber Gedächtnis, Artefakte, Aufgabenlisten, submit_plan, exit_plan_mode und die Abschlussverben am Ticket des Laufs
review Eine kuratierte Zulassungsliste: Mitarbeit an der Review, Kommunikation, schreibgeschützte Kontextabfragen und der volle Satz an Ticket-Verben einschließlich create_ticket und assign_ticket
orchestrate Eine kuratierte Zulassungsliste: Recherche- und Lese-Tools plus propose_orchestration, create_playbook und run_playbook. Einstellen, Zerlegen und Abschließen von Tickets laufen nach der Freigabe deterministisch, nie mitten im Lauf

In jedem Modus erlaubt, unabhängig von der Zulassungsliste:

Menge Tools
Gedächtnis und Artefakte 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
Code-Graph search_code, code_symbol, code_callers, code_callees, code_impact
Laufmechanik search_tool_bm25, list_my_tools, todo_write, todo_read

Auf einer Zulassungsliste zu stehen macht ein Tool nicht aufrufbar, und das gilt auch umgekehrt: Die Fähigkeit, den Betreiber zu fragen, ist ein Harness-Tool (ask_user) und kommt in diesem MCP-Katalog überhaupt nicht vor.

Ein Tool kann requiresApproval deklarieren. Der Dispatcher baut dann ein ApprovalPayload und legt es über den ConfirmationPort vor, bevor das Tool läuft; cc_server verdrahtet diesen Port, das Tor ist also scharf.

Registrierte Tools, die es deklarieren: 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.

Unabhängig davon sperren die einheitlichen Aktions-Schutzregeln jedes Tool, das eine nicht leere Menge ActionClass deklariert. Eine prompt-Entscheidung ohne verbundene zuständige Person wird abgelehnt. Siehe Schutzregeln.

Nicht jede Fähigkeit des Produkts ist für einen Agenten erreichbar. Diese haben gar kein Tool, deshalb liefert ein Name, den du anderswo gesehen haben könntest, „unknown tool“ zurück:

Fähigkeit Wo sie stattdessen liegt
Einen Agenten einstellen, entlassen oder bearbeiten Die Agenten-Oberfläche. Es gibt kein Tool hire_agent / fire_agent / update_agent
Einen Arbeitsbereich anlegen workspace.upsert über RPC, das ihn anlegt und die Eigentümerschaft stempelt
Projekte (anlegen / listen / aktualisieren / einordnen) Die Tickets-Oberfläche. Projekte sind eine Bedienoberfläche — siehe Arbeit mit Projekten organisieren
Dem Betreiber eine blockierende Frage stellen Das Harness-Tool ask_user, nicht MCP. Es zeichnet ein Formular in die Unterhaltung und blockiert auf die Antwort
Diagnose je Agent Nichts. Es gibt kein doctor — siehe Einen Agenten diagnostizieren
Kalender und Besprechungen RPC nur für menschliche Clients (siehe oben)