Hoppa till innehåll

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.

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.

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.

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.

Verktyg Beskrivning
list_agents Lista de registrerade agenterna i en arbetsyta

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

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 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 Beskrivning
list_workspaces Lista alla arbetsytor med deras id:n och namn (globalt; ingen workspace_id)
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
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)
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
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
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

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
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 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
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
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

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

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.

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.

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.

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)