MCP-verktyg
cc_server har ett enda MCP-register (JSON-RPC 2.0) för verktyg, som betjänas på serverns huvudport (standard 9030) under POST /mcp och GET /sse, med protokollversion 2024-11-05. Varje klient når samma register: skrivbordsappen, webbversionen, externa MCP-klienter och den inbyggda agentköraren. Externa MCP-servrar kan bryggas in i samma register som ett dynamiskt lager.
Registrets storlek
Avsnitt med rubriken “Registrets storlek”| Mått | Antal |
|---|---|
Verktyg som registreras av cc_server |
110 |
Från packages/cc_mcp |
108 |
Från packages/cc_mcp_client (verktygsupptäckt) |
2 |
Registrerade i basregistret (server_mcp_registry.dart) |
63 |
Registrerade efter start allteftersom tjänsterna kommer upp (cc_server_runtime.dart) |
47 |
| Av basregistrets 63, villkorade av ett kodgraf-repo | 5 |
De fem kodgrafverktygen registreras bara när värden skickar in ett kodgraf-repo till buildServerMcpRegistry. cc_server skickar alltid in ett, så alla 110 är aktiva i den levererade binärfilen.
Hela registret annonseras i tools/list utan någon upptäcktsgrind. Ändringar av ärenden görs med typade verktyg.
Gemensamma parametrar
Avsnitt med rubriken “Gemensamma parametrar”workspace_id
Avsnitt med rubriken “workspace_id”Obligatorisk för varje verktyg som rör data knuten till en arbetsyta. Ett saknat eller ogiltigt workspace_id ger ett uttryckligt fel, och ett värde som inte matchar målentitetens arbetsyta avvisas i stället för att tyst ignoreras. Utelämna den på de verkligt globala verktygen: list_workspaces och de sex nyhetsflödesverktygen (list_feeds, list_articles, get_article, set_article_read, set_article_saved, refresh_feeds), som följer serverägarens användarspecifika flödeslista. Upptäcktsverktygen (search_tool_bm25, list_my_tools) tar den frivilligt så att de kan klassificera anropbarhet efter samtalsläge. När en agent skickas ut av servern tvingas arbetsytan fram på serversidan, så agenten kan inte nå en annan arbetsyta genom att skicka in ett främmande id.
Verktygsupptäckt
Avsnitt med rubriken “Verktygsupptäckt”Båda kommer från cc_mcp_client, inte cc_mcp, och båda konsulterar lägesvakten så att de rapporterar vad som är anropbart i det aktuella samtalsläget.
| Verktyg | Beskrivning |
|---|---|
search_tool_bm25 |
Sök i verktygskatalogen med nyckelord; returnerar matchande verktyg, deras argumentscheman och huruvida var och ett är anropbart just nu |
list_my_tools |
Lista de verktyg som är anropbara just nu i det här samtalet, filtrerat efter dess läge |
Ett tredje upptäcktsverktyg, search_tools, finns bara inuti den inbyggda harnessen och ingår inte i det här MCP-registret. Det rangordnar körningens egen verktygsyta och läser in – till skillnad från search_tool_bm25 – scheman för det den hittar, så att agenten kan anropa en träff i sin nästa tur. Agenter som kör på harnessen bör föredra det; MCP-klienter har search_tool_bm25.
Agentverktyg
Avsnitt med rubriken “Agentverktyg”| Verktyg | Beskrivning |
|---|---|
list_agents |
Lista de registrerade agenterna i en arbetsyta |
Meddelanden och delegering mellan agenter
Avsnitt med rubriken “Meddelanden och delegering mellan agenter”Agenter pratar med varandra över ytor (varaktiga och synliga i agentlistan). ask_agent är fråga/svar med en obligatorisk tidsgräns; delegate_task skyddas på serversidan av en djupgräns, cykeldetektering, en budgetram och ett autonomitak.
| Verktyg | Beskrivning |
|---|---|
send_to_agent |
Skicka ett enkelriktat meddelande till en annan agent, adresserat med to_agent_id eller exakt to_agent_name |
ask_agent |
Ställ en fråga till en annan agent och vänta på svaret, eller låt tidsgränsen nås |
delegate_task |
Delegera en uppgift till en annan agent som ett spårat underordnat ärende |
consult_agent |
Lägg till den specialist som matchar bäst på skills i ytan och skicka ut den med en fokuserad uppdragsbeskrivning |
todo_read |
Läs det här samtalets sparade uppgiftschecklista |
Skill-verktyg
Avsnitt med rubriken “Skill-verktyg”Varje installation och uppdatering passerar en skanningsgrind som stänger vid fel innan något skill-innehåll når disken eller en agentprompt.
| Verktyg | Beskrivning |
|---|---|
list_skills |
Lista de skill-slugs som finns i en arbetsyta |
create_skill |
Skapa en ny skill från markdown-innehåll |
install_skill |
Installera en skills hela katalog från ett GitHub-repo vid en pinnad ref |
update_skill |
Uppdatera en installerad GitHub-skill till en ny ref, skanna och pinna om |
list_skill_updates |
Lista skills som har en nyare version tillgänglig |
verify_skills |
Verifiera låsta skills mot deras innehållshashar på disken |
pin_skill |
Hasha en befintlig skill på disken in i skills-lock.json |
Verktyg för planer, playbooks och artefakter
Avsnitt med rubriken “Verktyg för planer, playbooks och artefakter”| Verktyg | Beskrivning |
|---|---|
submit_plan |
Planlägets utdatakontrakt: avge ett typat PlanDocument som öppnas i Plan Studio |
create_playbook |
Spara en plan som en namngiven, versionshanterad mall med typade {{param}}-platshållare |
run_playbook |
Instansiera en playbook med parametervärden och producera en plan som operatören godkänner |
publish_artifact |
Publicera en ordnad lista av typade block (markdown, tabell, diagram, mermaid, kod, JSON) som renderas nativt i klienten |
revise_artifact |
Ersätt innehållet i en publicerad artefakt |
list_artifacts |
Lista arbetsytans artefakter |
get_artifact |
Läs en artefakt |
complete_goal |
Deklarera att samtalets aktiva varaktiga mål (startat med /goal eller /loop) är uppnått |
Verktyg för arbetsytor
Avsnitt med rubriken “Verktyg för arbetsytor”| Verktyg | Beskrivning |
|---|---|
list_workspaces |
Lista alla arbetsytor med deras id:n och namn (globalt; ingen workspace_id) |
Repo-verktyg
Avsnitt med rubriken “Repo-verktyg”| Verktyg | Beskrivning |
|---|---|
list_repos |
Lista de repos som är registrerade i en arbetsyta. Agentanropare får sina samtals isolerade copy-on-write-worktree-sökvägar, aldrig originalutcheckningarna |
Meddelandeverktyg
Avsnitt med rubriken “Meddelandeverktyg”| Verktyg | Beskrivning |
|---|---|
list_spaces |
Lista meddelandeytorna i en arbetsyta |
get_messages |
Hämta meddelanden från en yta |
send_message |
Skicka ett meddelande till en yta som en namngiven avsändaragent |
get_space_notes |
Läs en ytas delade överlämningsdokument |
update_space_notes |
Ersätt en ytas delade överlämningsdokument |
todo_write |
Ersätt det här samtalets uppgiftschecklista i ett anrop (skicka in hela listan) |
Granskningsverktyg
Avsnitt med rubriken “Granskningsverktyg”| Verktyg | Beskrivning |
|---|---|
start_ai_review |
Starta AI-granskningen för en PR: beräkna granskningsområdena, skicka ut specialistgranskare i PR-ytan, skriv genomgången och slutför |
add_review_node |
Lägg till ett strukturerat granskningsfynd (fil, rad, prioritet P0–P3) i en granskningsyta |
confirm_review_node |
Bekräfta en kollegas fynd; författaren kan inte bekräfta sitt eget |
resolve_review_node |
Markera ett fynd som åtgärdat efter att faktiskt ha gjort ändringen; publicerar ett spår i granskningsytan |
dismiss_review_node |
Avvisa ett fynd som inte är tillämpligt; registrerar ett undertryckningsfaktum så att granskare slutar flagga det igen |
request_peer_review |
Be en annan granskaragent om en andra titt på ett fynd |
dispatch_reviewers |
Skicka ut matchade granskaragenter i en granskningsyta, samtidigt |
submit_reviewer_verdict |
Publicera en ship/hold/block-dom per granskare med konfidens och en förklaring |
finalize_review |
Beräkna samsyn per nod och domen per PR och stäng granskningen |
set_cohort_summary |
Ange en granskningskohorts sammandrag på vardagligt språk |
add_review_diagram |
Bifoga ett strukturerat, grafverifierat diagram (sequence, entityRelation, stateMachine) till en kohort |
publish_review_to_github |
Publicera den slutförda granskningen till GitHub som inline-kommentarer plus en sammanfattande brödtext |
Minnesverktyg
Avsnitt med rubriken “Minnesverktyg”| Verktyg | Beskrivning |
|---|---|
search_memory |
Sök efter fakta och policyer (nyckelord, semantiskt eller hybrid – hybrid är standard) |
propose_fact |
Lagra ett kort markdown-faktum i en domän |
supersede_fact |
Markera ett faktum som ersatt av ett annat |
propose_policy |
Lagra en normativ regel i en domän (kräver skrivbehörighet på den) |
supersede_policy |
Dra tillbaka en policy – markerar den inaktiv men behåller den för revision |
list_policies |
Lista aktiva policyer, valfritt filtrerat på domän |
list_memory_domains |
Lista arbetsytans minnesdomäner med antal fakta och policyer |
record_observation |
Registrera en rå observation i agentens arbetsminne |
get_my_notes |
Läs den anropande agentens anteckningsblock i arbetsminnet |
update_my_notes |
Uppdatera den anropande agentens anteckningsblock i arbetsminnet |
remember |
Lägg till en anteckning i agentens heta arbetsminne för den här sessionen (begränsat av TTL och antal) |
consolidate_memory |
Kör en konsolideringsomgång (“sömn”): vräk ut utgångna heta poster, rulla in varaktiga som långtidsfakta |
harmonize_memory |
Kör harmonisering av övertygelser mellan agenter (SHMR) och flagga motsägelser |
list_memory_conflicts |
Lista upptäckta motsägelser och hur var och en löstes |
Styrningsverktyg
Avsnitt med rubriken “Styrningsverktyg”| Verktyg | Beskrivning |
|---|---|
create_goal |
Skapa ett organisatoriskt mål (på företags-, team-, agent- eller uppgiftsnivå) |
list_goals |
Lista mål med nivå, status och aggregerad framdrift |
update_goal_progress |
Ange framdriften för ett mål |
create_approval |
Öppna ett styrelsegodkännande för en styrd åtgärd (planavslut, sammanslagning, release, anställning, anpassad) |
list_approvals |
Lista godkännanden, valfritt filtrerat på status |
decide_approval |
Registrera ett beslut: godkänn, avvisa, begär omarbetning eller skicka in på nytt |
comment_approval |
Kommentera ett styrelsegodkännande |
exit_plan_mode |
Öppna (och, när det godkänts, förbruka) ett plan_exit-godkännande och växla samtalet ut ur planläget |
agent_heartbeat |
Rapportera livstecken (vid liv, inaktiv, fastnad); tystnad växlar körningshälsan till nyligen-förlorad och sedan offline |
list_runtime_health |
Lista varje agents körningshälsa |
list_agent_presence |
Lista varje agents närvaro (hälsa, livscykel, körande och köade antal, kapacitet) |
get_org_chart |
Läs rapporteringsträdet, med VD i roten, nästlat efter reports_to |
create_work_product |
Skapa en varaktig leverabel kopplad till ett ärende |
save_work_product_revision |
Spara en ny version; skicka base_revision_id för att avvisas vid en samtidig redigering |
list_work_products |
Lista arbetsprodukter, valfritt filtrerat till ett ärende |
get_work_product |
Läs en arbetsprodukt med dess versionshistorik |
create_runtime_profile |
Definiera en återanvändbar runtime-profil (protokollfamilj, CLI-kommando, fasta startargument) |
list_runtime_profiles |
Lista arbetsytans runtime-profiler |
Kodgrafverktyg
Avsnitt med rubriken “Kodgrafverktyg”Registreras bara när värden tillhandahåller ett kodgraf-repo. Indexet täcker den medföljande grammatikuppsättningen (Dart, JS/TS, PHP, Python, Rust, Zig, C/C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB, Ada); symboler i något annat språk finns inte med.
| Verktyg | Beskrivning |
|---|---|
search_code |
Sök i indexerade symboler på namn, signatur och doc-kommentar (hybrid BM25 + semantisk) |
code_symbol |
Slå upp symboler på exakt namn; returnerar file:line och signatur |
code_callers |
Lista de symboler som anropar eller är beroende av en symbol (inkommande kanter) |
code_callees |
Lista de symboler som en symbol anropar eller är beroende av (utgående kanter) |
code_impact |
Beräkna en symbols transitiva påverkansradie, till ett djup |
Ärendeverktyg
Avsnitt med rubriken “Ärendeverktyg”| Verktyg | Beskrivning |
|---|---|
create_ticket |
Skapa ett ärende hos den konfigurerade leverantören |
get_ticket |
Hämta ett ärende med id |
list_tickets |
Lista ärenden, valfritt filtrerat på status eller tilldelad |
update_ticket |
Uppdatera status, titel, beskrivning, prioritet eller etiketter (status accepterar alias som in_progress / completed) |
assign_ticket |
Tilldela ett ärende till en agent och/eller ett team |
reassign_ticket |
Omfördela ett ärende till en annan agent |
add_ticket_collaborator |
Bjud in en agent att samarbeta om ett ärende (läggs till i ärendets yta) |
comment_on_ticket |
Kommentera ett ärende |
close_ticket |
Stäng ett ärende (markerar det som klart) med valfri utdata |
fail_ticket |
Markera ett ärende som misslyckat med ett felmeddelande |
delegate_ticket |
Delegera ett ärende till en agent och skapa ett spårat ärende |
ticket_pr_link |
Länka eller avlänka ett ärende och en pull request via PR-nodens id (action: link | unlink) |
ticket_relation |
Lägg till eller ta bort en relation mellan två ärenden – blocked_by, blocking, related_to, duplicate_of, duplicated_by, sub_issue_of, parent_of (action: add | remove) |
list_ticket_relations |
Lista ett ärendes förälder, delärenden och beroendelänkar |
Verktyg för team och pipelines
Avsnitt med rubriken “Verktyg för team och pipelines”| Verktyg | Beskrivning |
|---|---|
record_team_activity |
Registrera en teamledares aktivitetspost mot ett ärende |
preview_trigger |
Testkör vilka pipelinekörningar en hypotetisk händelse skulle starta, utan att något verkställs |
submit_output |
Skicka in den strukturerade utdatanyttolasten för anroparens aktuella pipelinekörning; valideras mot körningens deklarerade utdataschema |
Orkestreringsverktyg
Avsnitt med rubriken “Orkestreringsverktyg”| Verktyg | Beskrivning |
|---|---|
propose_orchestration |
Avge en strukturerad plan för orkestrering av flera agenter för ett enda förhandsgodkännande; validerar och returnerar eventuella överträdelser |
Nyhetsflödesverktyg
Avsnitt med rubriken “Nyhetsflödesverktyg”| Verktyg | Beskrivning |
|---|---|
list_feeds |
Lista de registrerade RSS-/Atom-flödena |
list_articles |
Lista artiklar, valfritt filtrerat på flöde, olästa eller sparade |
get_article |
Hämta en artikel |
set_article_read |
Markera en artikel som läst eller oläst |
set_article_saved |
Spara eller avspara en artikel |
refresh_feeds |
Hämta om varje aktiverat flöde nu |
Verktyg för avskilda miljöer (stationer)
Avsnitt med rubriken “Verktyg för avskilda miljöer (stationer)”Kör engångsmaskiner – en innesluten webbläsare eller Linux-skrivbord, en Android-
emulator eller en iOS-simulator – inifrån en körning. Registreras efter start,
ovillkorligt: huruvida en maskin verkligen kan starta är en sondfråga som
verktygen svarar på per anrop. Upprepade anrop i ett samtal återanvänder en maskin;
skärmbilder returneras som bildinnehåll med en budget på en bild per resultat, och
extraherat sida-/gränssnittsinnehåll inramas som opålitlig data. De fyra
användningsverktygen plus rig_close deklarerar enclosureControl
åtgärdsklassen (användningsverktygen deklarerar också networkEgress och
processSpawn; mobile_use och ios_use deklarerar också packageInstall), så
skrivskyddade lägen nekar dem. rig_list deklarerar ingen – det läser bara
arbetsytans tillstånd. Hela verbförrådet per yta finns i
stationsreferensen.
| Verktyg | Beskrivning |
|---|---|
computer_use |
Styr ett Linux-skrivbord i en avskild VM: flytta, klicka, dra, rulla, skriva, ändra storlek, urklipp, skärmbild |
browser_use |
Styr en headless Chromium, Firefox eller WebKit (engine): navigera, klicka, fylla i, extrahera (a11y/DOM/konsol), urklipp, skärmbild |
mobile_use |
Styr Android över ADB: inspektera/mata in, skärmbilder, installera/starta/stoppa/återställa/avinstallera appar, djuplänkar och argv-formade enhetskommandon |
ios_use |
Styr iOS-simulatorn via WebDriverAgent/CoreSimulator: inspektera/mata in, skärmbilder, installera/starta/stoppa/avinstallera appar, djuplänkar och argv-formade simulatorprocesser |
rig_list |
Lista en arbetsytas stationer med yta, status, skärmstorlek och styrenhet |
rig_close |
Förstör en station och kassera dess ägda maskintillstånd |
Exponeras inte över MCP
Avsnitt med rubriken “Exponeras inte över MCP”Kalender och möten har inga MCP-verktyg. Agenter kan inte läsa din kalender, dina möten, transkript, åtgärdspunkter eller beslut. Sammanfattningen som tar fram åtgärdspunkter och beslut körs som den inbyggda meeting_summary-pipelinen, inte som ett verktyg en agent kan anropa.
Verktygsgrindar per läge
Avsnitt med rubriken “Verktygsgrindar per läge”Grindarna tillämpas två gånger från en och samma tabell (ModeToolPolicy): en gång i MCP-dispatchern för Claude Code-adaptern och en gång i den inbyggda harnessens register. Ett blockerat anrop returnerar orsaken.
| Läge | Verktygsyta |
|---|---|
chat |
Alla registrerade verktyg; ingen tillåtelselista |
plan |
En kurerad tillåtelselista. Inga worktree-skrivningar och inga create- / assign- / delegate-ärendeverb, men minne, artefakter, att-göra-poster, submit_plan, exit_plan_mode och ärendeslutförandeverben på det utskickade ärendet är tillåtna |
review |
En kurerad tillåtelselista: granskningsdeltagande, kommunikation, skrivskyddade kontexthämtare och hela uppsättningen ärendeverb inklusive create_ticket och assign_ticket |
orchestrate |
En kurerad tillåtelselista: forsknings- och läsverktyg plus propose_orchestration, create_playbook och run_playbook. Anställning, nedbrytning och ärendeavslut sker deterministiskt efter godkännande, aldrig mitt i körningen |
Tillåtet i alla lägen oavsett tillåtelselista:
| Uppsättning | Verktyg |
|---|---|
| Minne och artefakter | 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 |
| Kodgraf | search_code, code_symbol, code_callers, code_callees, code_impact |
| Körningsmekanik | search_tool_bm25, list_my_tools, todo_write, todo_read |
Att stå på en tillåtelselista gör inte ett verktyg anropbart, och det omvända gäller också: förmågan att ställa frågor till operatören är ett harness-verktyg (ask_user), så det förekommer aldrig i den här MCP-katalogen.
Verktyg bakom godkännande
Avsnitt med rubriken “Verktyg bakom godkännande”Ett verktyg kan deklarera requiresApproval. Dispatchern bygger då en ApprovalPayload och visar den via ConfirmationPort innan verktyget körs; cc_server kopplar in den porten, så godkännandegrinden är aktiv.
Registrerade verktyg som deklarerar det: 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.
Oberoende av detta grindar de enhetliga åtgärdsräckena varje verktyg som deklarerar en icke-tom uppsättning ActionClass. Ett prompt-beslut utan ansluten godkännare nekas. Se Räcken.
Förmågor utan verktyg bakom sig
Avsnitt med rubriken “Förmågor utan verktyg bakom sig”Inte varje förmåga i produkten går att nå för en agent. De här har inget verktyg alls, så ett namn du kan ha sett hänvisat till någon annanstans returnerar “unknown tool”:
| Förmåga | Var den finns i stället |
|---|---|
| Att anställa, avskeda eller redigera en agent | Agentgränssnittet. Det finns inget hire_agent / fire_agent / update_agent-verktyg |
| Att skapa en arbetsyta | workspace.upsert över RPC, som skapar grunddata och stämplar ägandet |
| Projekt (skapa / lista / uppdatera / lägga in) | Ärendegränssnittet. Projekt är en operatörsyta – se Projekt |
| Att ställa en blockerande fråga till operatören | harness-verktyget ask_user, inte MCP. Det renderar ett formulär i samtalet och blockerar på svaret |
| Felsökning per agent | Ingenting. Det finns ingen doctor – se Felsök en agent |
| Kalender och möten | RPC endast för mänskliga klienter (se ovan) |