Ga naar inhoud

MCP-tools

cc_server host één MCP-toolregister (JSON-RPC 2.0), aangeboden op de hoofdpoort van de server (standaard 9030) via POST /mcp en GET /sse, met protocolversie 2024-11-05. Elke client komt op hetzelfde register uit: de desktop, de webbuild, externe MCP-clients en de ingebouwde agentruntime. Externe MCP-servers kunnen als dynamische laag in hetzelfde register worden opgenomen.

Maatstaf Aantal
Tools die cc_server registreert 110
Uit packages/cc_mcp 108
Uit packages/cc_mcp_client (tooldiscovery) 2
Geregistreerd in het baseregister (server_mcp_registry.dart) 63
Geregistreerd na het opstarten, zodra hun services beschikbaar komen (cc_server_runtime.dart) 47
Van de 63 van het baseregister, voorwaardelijk op een codegraaf-repository 5

De vijf codegraaftools worden alleen geregistreerd wanneer de host een codegraaf-repository doorgeeft aan buildServerMcpRegistry. cc_server geeft er altijd een door, dus alle 110 zijn actief in de meegeleverde binary.

Het volledige register wordt aangekondigd in tools/list, zonder beperking op discovery. Ticketbewerkingen zijn getypeerde tools.

Vereist bij elke tool die gegevens binnen de werkruimte aanraakt. Een ontbrekende of ongeldige workspace_id geeft een expliciete fout, en een waarde die niet overeenkomt met de werkruimte van de doeleniteit wordt geweigerd in plaats van stil genegeerd. Laat het weg bij de echt globale tools: list_workspaces en de zes nieuwsfeedtools (list_feeds, list_articles, get_article, set_article_read, set_article_saved, refresh_feeds), die meelopen op de persoonlijke feedlijst van de servereigenaar. Discovery-tools (search_tool_bm25, list_my_tools) nemen het optioneel, zodat ze de aanroepbaarheid per gespreksmodus kunnen classificeren. Wanneer de server een agent dispatcht, wordt de werkruimte serverside geforceerd, dus de agent kan geen andere werkruimte bereiken door een vreemd id mee te geven.

Beide komen uit cc_mcp_client, niet uit cc_mcp, en beide raadplegen de modusbewaking, zodat ze melden wat aanroepbaar is in de huidige gespreksmodus.

Tool Beschrijving
search_tool_bm25 Zoek de toolcatalogus op trefwoord; geeft overeenkomende tools terug, hun argumentschema’s en of elke tool nu aanroepbaar is
list_my_tools Toon de tools die nu aanroepbaar zijn in dit gesprek, gefilterd op de modus

Een derde discovery-tool, search_tools, bestaat alleen binnen de ingebouwde harness en maakt geen deel uit van dit MCP-register. Die rangschikt het eigen tooloppervlak van de uitvoering en laadt, anders dan search_tool_bm25, de schema’s van wat hij vindt, zodat de agent een treffer in zijn volgende beurt kan aanroepen. Agenten op de harness kunnen die beter gebruiken; MCP-clients hebben search_tool_bm25.

Tool Beschrijving
list_agents Toon de geregistreerde agenten in een werkruimte

Agenten praten met elkaar via ruimtes (duurzaam en zichtbaar in de ledenlijst). ask_agent is request/reply met een verplichte time-out; delegate_task wordt serverside bewaakt door een diepteplafond, cyclusdetectie, budgetenvelop en autonomieplafond.

Tool Beschrijving
send_to_agent Stuur een eenrichtingsbericht naar een andere agent, geadresseerd via to_agent_id of de exacte to_agent_name
ask_agent Stel een andere agent een vraag en wacht op het antwoord, of laat de time-out aflopen
delegate_task Delegeer een taak aan een andere agent als een gevolgd subticket
consult_agent Voeg de best passende specialist op basis van skills toe aan de ruimte en dispatch die met een gerichte briefing
todo_read Lees de opgeslagen takenchecklist van dit gesprek

Elke installatie en update passeert een fail-closed scanpoort voordat skillinhoud de schijf of een agentprompt bereikt.

Tool Beschrijving
list_skills Toon de skill-slugs die beschikbaar zijn in een werkruimte
create_skill Maak een nieuwe skill van markdowninhoud
install_skill Installeer de hele map van een skill vanuit een GitHub-repository op een vastgezette ref
update_skill Werk een geïnstalleerde GitHub-skill bij naar een nieuwe ref, met herscannen en opnieuw vastzetten
list_skill_updates Toon skills waarvoor een nieuwere versie beschikbaar is
verify_skills Verifieer vastgezette skills tegen hun contenthashes op schijf
pin_skill Hash een bestaande skill op schijf in skills-lock.json
Tool Beschrijving
submit_plan Het outputcontract van de planmodus: zet een getypeerd PlanDocument uit dat opent in Plan Studio
create_playbook Sla een plan op als een benoemde, geversioneerde sjabloon met getypeerde {{param}}-plaatsaanduidingen
run_playbook Instantieer een playbook met parameterwaarden en lever een plan op dat de operator goedkeurt
publish_artifact Publiceer een geordende lijst van getypeerde blokken (markdown, tabel, grafiek, mermaid, code, JSON) die native in de client worden weergegeven
revise_artifact Vervang de inhoud van een gepubliceerd artefact
list_artifacts Toon de artefacten van de werkruimte
get_artifact Lees één artefact
complete_goal Verklaar het actieve duurzame doel van het gesprek (gestart met /goal of /loop) bereikt
Tool Beschrijving
list_workspaces Toon alle werkruimtes met hun id’s en namen (globaal; geen workspace_id)
Tool Beschrijving
list_repos Toon de repo’s die in een werkruimte zijn geregistreerd. Aanroepende agenten krijgen de geïsoleerde copy-on-write-worktreepaden van hun gesprek, nooit de oorspronkelijke checkouts
Tool Beschrijving
list_spaces Toon de berichtruimtes in een werkruimte
get_messages Haal berichten uit een ruimte op
send_message Stuur een bericht naar een ruimte als een met naam genoemde afzender-agent
get_space_notes Lees het gedeelde overdrachtsdocument van een ruimte
update_space_notes Vervang het gedeelde overdrachtsdocument van een ruimte
todo_write Vervang de takenchecklist van dit gesprek in één aanroep (geef de volledige lijst mee)
Tool Beschrijving
start_ai_review Start de AI-review voor een PR: bereken de reviewgebieden, waai gespecialiseerde reviewers uit over de PR-ruimte, schrijf de rondleiding en rond af
add_review_node Voeg een gestructureerde reviewbevinding toe (bestand, regel, prioriteit P0–P3) aan een reviewruimte
confirm_review_node Bevestig de bevinding van een peer; de auteur kan die niet zelf bevestigen
resolve_review_node Markeer een bevinding als opgelost nadat de wijziging echt is doorgevoerd; plaatst een spoor in de reviewruimte
dismiss_review_node Verwerp een bevinding die niet van toepassing is; legt een onderdrukkingsfeit vast zodat reviewers hem niet opnieuw aanmerken
request_peer_review Vraag een andere reviewer-agent om een tweede blik op een bevinding
dispatch_reviewers Dispatch passende reviewer-agenten gelijktijdig naar een reviewruimte
submit_reviewer_verdict Plaats per reviewer een ship/hold/block-oordeel met een betrouwbaarheidsscore en een toelichting
finalize_review Bereken de consensus per node en het oordeel per PR, en sluit de review
set_cohort_summary Stel de samenvatting in gewone taal van een reviewcohort in
add_review_diagram Hang een gestructureerd, door de graaf geverifieerd diagram (sequence, entityRelation, stateMachine) aan een cohort
publish_review_to_github Publiceer de afgeronde review naar GitHub als inline opmerkingen plus een samenvattende tekst
Tool Beschrijving
search_memory Zoek in feiten en beleid (trefwoord, semantisch of hybride — hybride is de standaard)
propose_fact Sla een kort markdown-feit op in een domein
supersede_fact Markeer een feit als vervangen door een ander
propose_policy Sla een normatieve regel op in een domein (vereist schrijfrechten daarop)
supersede_policy Haal een beleidsregel uit gebruik — markeert hem inactief maar bewaart hem voor de audit
list_policies Toon actief beleid, optioneel gefilterd op domein
list_memory_domains Toon de geheugendomeinen van de werkruimte met aantallen feiten en beleidsregels
record_observation Leg een ruwe observatie vast in het werkgeheugen van de agent
get_my_notes Lees het kladblok in het werkgeheugen van de aanroepende agent
update_my_notes Werk het kladblok in het werkgeheugen van de aanroepende agent bij
remember Voeg een notitie toe aan het hot werkgeheugen van de agent voor deze sessie (begrensd op TTL en aantal)
consolidate_memory Voer een consolidatie- (“sleep”-)ronde uit: verwijder verlopen hot-items en rol duurzame items door naar langetermijnfeiten
harmonize_memory Voer harmonisatie van overtuigingen tussen agenten uit (SHMR) en markeer tegenstrijdigheden
list_memory_conflicts Toon gedetecteerde tegenstrijdigheden en hoe elke is opgelost
Tool Beschrijving
create_goal Maak een organisatiedoel aan (op bedrijfs-, team-, agent- of taakniveau)
list_goals Toon doelen met niveau, status en samengevoegde voortgang
update_goal_progress Stel de voortgang van een doel in
create_approval Open een boardgoedkeuring voor een bestuurde actie (plan verlaten, merge, release, aannemen, aangepast)
list_approvals Toon goedkeuringen, optioneel gefilterd op status
decide_approval Leg een beslissing vast: goedkeuren, afwijzen, herziening vragen of opnieuw indienen
comment_approval Plaats een opmerking bij een boardgoedkeuring
exit_plan_mode Open (en verbruik na goedkeuring) een plan_exit-goedkeuring, waarmee het gesprek de planmodus verlaat
agent_heartbeat Meld levensvatbaarheid (levend, inactief, vastgelopen); stilte zet de runtimegezondheid op onlangs verloren en daarna offline
list_runtime_health Toon de runtimegezondheid van elke agent
list_agent_presence Toon de aanwezigheid van elke agent (gezondheid, levenscyclus, aantallen actieve en wachtende runs, capaciteit)
get_org_chart Lees de rapportagestructuur, met de CEO aan de top, genest via reports_to
create_work_product Maak een duurzaam deliverable dat aan een ticket hangt
save_work_product_revision Sla een nieuwe revisie op; geef base_revision_id mee om bij een gelijktijdige bewerking te worden geweigerd
list_work_products Toon deliverables, optioneel gefilterd op één ticket
get_work_product Lees een deliverable met zijn revisiegeschiedenis
create_runtime_profile Definieer een herbruikbaar runtimeprofiel (protocolfamilie, CLI-commando, vaste startargumenten)
list_runtime_profiles Toon de runtimeprofielen van de werkruimte

Alleen geregistreerd wanneer de host een codegraaf-repository levert. De index dekt de meegeleverde grammaticaset (Dart, JS/TS, PHP, Python, Rust, Zig, C/C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB, Ada); symbolen in andere talen komen er niet in voor.

Tool Beschrijving
search_code Zoek geïndexeerde symbolen op naam, signatuur en doccommentaar (hybride BM25 + semantisch)
code_symbol Zoek symbolen op exacte naam; geeft file:line en signatuur terug
code_callers Toon de symbolen die een symbool aanroepen of ervan afhangen (inkomende randen)
code_callees Toon de symbolen die een symbool aanroept of waarvan het afhangt (uitgaande randen)
code_impact Bereken de transitieve impactstraal van een symbool, tot een bepaalde diepte
Tool Beschrijving
create_ticket Maak een ticket aan bij de geconfigureerde provider
get_ticket Haal één ticket op aan de hand van zijn id
list_tickets Toon tickets, optioneel gefilterd op status of toegewezen agent
update_ticket Werk status, titel, beschrijving, prioriteit of labels bij (de status accepteert aliassen zoals in_progress / completed)
assign_ticket Wijs een ticket toe aan een agent en/of team
reassign_ticket Wijs een ticket opnieuw toe aan een andere agent
add_ticket_collaborator Nodig een agent uit om mee te werken aan een ticket (toegevoegd aan de ruimte ervan)
comment_on_ticket Plaats een opmerking bij een ticket
close_ticket Sluit een ticket (markeert het als afgerond), met optionele output
fail_ticket Markeer een ticket als mislukt met een foutmelding
delegate_ticket Delegeer een ticket aan een agent en maak daarbij een gevolgd ticket aan
ticket_pr_link Koppel of ontkoppel een ticket en een pull request via het PR-node-id (action: link | unlink)
ticket_relation Voeg een relatie tussen twee tickets toe of verwijder die — blocked_by, blocking, related_to, duplicate_of, duplicated_by, sub_issue_of, parent_of (action: add | remove)
list_ticket_relations Toon het bovenliggende ticket, de subtickets en de afhankelijkheidskoppelingen van een ticket
Tool Beschrijving
record_team_activity Leg een activiteitsvermelding van een teamleider vast bij een ticket
preview_trigger Doe een dry-run van welke pipeline-runs een hypothetische gebeurtenis zou starten, zonder iets vast te leggen
submit_output Dien de gestructureerde outputpayload in voor de huidige pipeline-run van de aanroeper; gevalideerd tegen het gedeclareerde outputschema van de run
Tool Beschrijving
propose_orchestration Zet een gestructureerd orkestratieplan voor meerdere agenten uit voor één goedkeuring vooraf; valideert en geeft eventuele schendingen terug
Tool Beschrijving
list_feeds Toon de geregistreerde RSS-/Atom-feeds
list_articles Toon artikelen, optioneel gefilterd op feed, ongelezen of opgeslagen
get_article Haal één artikel op
set_article_read Markeer een artikel als gelezen of ongelezen
set_article_saved Sla een artikel op of haal het uit je opgeslagen items
refresh_feeds Haal nu elke ingeschakelde feed opnieuw op

Bestuur wegwerpmachines — een ingesloten browser of Linux-desktop, een Android- emulator of een iOS Simulator — van binnenuit een run. Ze worden na het opstarten geregistreerd, onvoorwaardelijk: of een machine echt kan opstarten is een probeervraag die de tools per aanroep beantwoorden. Herhaalde aanroepen in één gesprek hergebruiken één machine; screenshots komen terug als afbeeldingsinhoud met een budget van één afbeelding per resultaat, en opgehaalde pagina-/UI-inhoud wordt als niet-vertrouwde data afgeschermd. De vier gebruikstools plus rig_close declareren de enclosureControl actieklasse (de gebruikstools declareren ook networkEgress en processSpawn; mobile_use en ios_use declareren ook packageInstall), dus alleen-lezenmodi weigeren ze. rig_list declareert niets — die leest alleen werkruimtestatus. Het volledige werkwoordenvocabulaire per oppervlak staat in de rigs-referentie.

Tool Beschrijving
computer_use Bestuur een Linux-desktop in een ingesloten VM: verplaatsen, klikken, slepen, scrollen, typen, formaat wijzigen, klembord, screenshot
browser_use Bestuur een headless Chromium, Firefox of WebKit (engine): navigeren, klikken, invullen, extraheren (a11y/DOM/console), klembord, screenshot
mobile_use Bestuur Android via ADB: inspecteren/invoeren, screenshots, apps installeren/starten/stoppen/resetten/verwijderen, deep links en apparaatcommando’s in argv-vorm
ios_use Bestuur de iOS Simulator via WebDriverAgent/CoreSimulator: inspecteren/invoeren, screenshots, apps installeren/starten/stoppen/verwijderen, deep links en simulatorprocessen in argv-vorm
rig_list Toon de rigs van een werkruimte met oppervlak, status, weergavegrootte en controller
rig_close Vernietig een rig en gooi de bijbehorende machinestatus weg

Agenda en vergaderingen hebben geen MCP-tools. Agenten kunnen je agenda, vergaderingen, transcripten, actiepunten of beslissingen niet lezen. De samenvatting die actiepunten en beslissingen oplevert, draait als de ingebouwde meeting_summary-pipeline, niet als een tool die een agent kan aanroepen.

De filtering wordt tweemaal afgedwongen vanuit één tabel (ModeToolPolicy): één keer in de MCP-dispatcher voor de Claude Code-adapter en één keer in het register van de ingebouwde harness. Een geblokkeerde aanroep geeft de reden terug.

Modus Tooloppervlak
chat Elke geregistreerde tool; geen allowlist
plan Een samengestelde allowlist. Geen worktree-schrijfacties en geen ticketwerkwoorden create / assign / delegate, maar geheugen, artefacten, todo’s, submit_plan, exit_plan_mode en de ticketafrondingswerkwoorden op het gedispatchte ticket zijn toegestaan
review Een samengestelde allowlist: deelname aan reviews, communicatie, alleen-lezen contextophalers en de volledige set ticketwerkwoorden, inclusief create_ticket en assign_ticket
orchestrate Een samengestelde allowlist: onderzoeks- en leestools plus propose_orchestration, create_playbook en run_playbook. Aannemen, opdelen en tickets afronden gebeuren deterministisch na goedkeuring, nooit midden in een run

In elke modus toegestaan, ongeacht de allowlist:

Set Tools
Geheugen en artefacten 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
Codegraaf search_code, code_symbol, code_callers, code_callees, code_impact
Runmechanica search_tool_bm25, list_my_tools, todo_write, todo_read

Op een allowlist staan maakt een tool niet aanroepbaar, en het omgekeerde geldt ook: de mogelijkheid om de operator een vraag te stellen is een harness-tool (ask_user) en komt dus helemaal niet in deze MCP-catalogus voor.

Een tool kan requiresApproval declareren. De dispatcher bouwt dan een ApprovalPayload en toont die via de ConfirmationPort voordat de tool draait; cc_server koppelt die poort, dus de poort is actief.

Geregistreerde tools die het declareren: 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.

Los daarvan bewaken de uniforme actiebeveiligingen elke tool die een niet-lege ActionClass-set declareert. Een prompt-beslissing zonder aangesloten goedkeurder wordt geweigerd. Zie Beveiligingen.

Niet elke mogelijkheid in het product is bereikbaar voor een agent. Deze hebben helemaal geen tool, dus een naam die je elders hebt zien staan levert “unknown tool” op:

Mogelijkheid Waar het in plaats daarvan zit
Een agent aannemen, ontslaan of bewerken De agenten-UI. Er is geen hire_agent / fire_agent / update_agent-tool
Een werkruimte aanmaken workspace.upsert via RPC, dat eigenaarschap initialiseert en vastlegt
Projecten (aanmaken / tonen / bijwerken / indienen) De tickets-UI. Projecten zijn een operatoroppervlak — zie Projecten
De operator een blokkerende vraag stellen De harness-tool ask_user, niet MCP. Die toont een formulier in het gesprek en wacht op het antwoord
Diagnostiek per agent Niets. Er is geen doctor — zie Een agent diagnosticeren
Agenda en vergaderingen Alleen RPC voor menselijke clients (zie hierboven)