Nástroje MCP
cc_server hostí jeden registr nástrojů MCP (JSON-RPC 2.0), vystavený na hlavním portu serveru (výchozí 9030) na POST /mcp a GET /sse, verze protokolu 2024-11-05. Ke stejnému registru se dostane každý klient: desktop, webové sestavení, externí klienti MCP i vestavěný runtime agenta. Externí servery MCP se dají přemostit do stejného registru jako dynamická vrstva.
Velikost registru
Sekce “Velikost registru”| Ukazatel | Počet |
|---|---|
Nástroje registrované cc_server |
110 |
Z packages/cc_mcp |
108 |
Z packages/cc_mcp_client (objevování nástrojů) |
2 |
Registrované v základním registru (server_mcp_registry.dart) |
63 |
Registrované po startu, jak jejich služby nabíhají (cc_server_runtime.dart) |
47 |
| Z 63 v základním registru podmíněné repozitářem grafu kódu | 5 |
Těch pět nástrojů grafu kódu se registruje jen tehdy, když hostitel předá buildServerMcpRegistry repozitář grafu kódu. cc_server ho předává vždy, takže v dodávané binárce je živých všech 110.
Celý registr se v tools/list nabízí bez brány objevování. Úpravy ticketů jsou typované nástroje.
Společné parametry
Sekce “Společné parametry”workspace_id
Sekce “workspace_id”Povinné u každého nástroje, který sahá na data vázaná na pracovní prostor. Chybějící nebo neplatné workspace_id vrátí výslovnou chybu a hodnota, která nesedí na pracovní prostor cílové entity, se odmítne, místo aby se tiše ignorovala. Vynech ho u nástrojů, které jsou opravdu globální: list_workspaces a šest nástrojů kanálu novinek (list_feeds, list_articles, get_article, set_article_read, set_article_saved, refresh_feeds), které jedou po seznamu kanálů vlastníka serveru, zvlášť pro každého uživatele. Nástroje objevování (search_tool_bm25, list_my_tools) ho berou volitelně, aby uměly klasifikovat volatelnost podle režimu konverzace. Když agenta odešle server, pracovní prostor se vynutí na straně serveru, takže se agent do jiného pracovního prostoru nedostane tím, že předá cizí id.
Objevování nástrojů
Sekce “Objevování nástrojů”Oba pocházejí z cc_mcp_client, ne z cc_mcp, a oba se radí s bránou režimu, takže hlásí, co je volatelné v aktuálním režimu konverzace.
| Nástroj | Popis |
|---|---|
search_tool_bm25 |
Prohledá katalog nástrojů podle klíčových slov; vrátí shodné nástroje, jejich schémata argumentů a to, jestli je každý právě teď volatelný |
list_my_tools |
Vypíše nástroje volatelné právě teď v téhle konverzaci, filtrované jejím režimem |
Třetí nástroj objevování, search_tools, existuje jen uvnitř vestavěného harnessu a do tohohle registru MCP nepatří. Řadí vlastní plochu nástrojů běhu a na rozdíl od search_tool_bm25 načte schémata toho, co najde, takže agent může shodu zavolat v dalším tahu. Agenti na harnessu mají dát přednost jemu; klienti MCP mají search_tool_bm25.
Nástroje agentů
Sekce “Nástroje agentů”| Nástroj | Popis |
|---|---|
list_agents |
Vypíše registrované agenty v pracovním prostoru |
Zprávy mezi agenty a delegování
Sekce “Zprávy mezi agenty a delegování”Agenti spolu mluví přes prostory (trvalé, viditelné v sestavě). ask_agent je požadavek a odpověď s povinným časovým limitem; delegate_task hlídá server stropem hloubky, detekcí cyklů, obálkou rozpočtu a stropem autonomie.
| Nástroj | Popis |
|---|---|
send_to_agent |
Pošle jednosměrnou zprávu jinému agentovi, adresovanou to_agent_id nebo přesným to_agent_name |
ask_agent |
Položí jinému agentovi otázku a počká na odpověď, nebo vyprší čas |
delegate_task |
Deleguje úkol jinému agentovi jako sledovaný podřízený ticket |
consult_agent |
Přidá do prostoru specialistu, který se skilly shoduje nejlíp, a odešle ho se soustředěným zadáním |
todo_read |
Přečte uložený kontrolní seznam úkolů téhle konverzace |
Nástroje skillů
Sekce “Nástroje skillů”Každá instalace i aktualizace projde bránou skenu, která při selhání odmítne, ještě než se jakýkoli obsah skillu dostane na disk nebo do promptu agenta.
| Nástroj | Popis |
|---|---|
list_skills |
Vypíše slugy skillů dostupné v pracovním prostoru |
create_skill |
Založí nový skill z obsahu v markdownu |
install_skill |
Nainstaluje celý adresář skillu z repozitáře GitHub na připnutém refu |
update_skill |
Aktualizuje nainstalovaný skill z GitHubu na nový ref, znovu ho proskenuje a připne |
list_skill_updates |
Vypíše skilly, u kterých je novější verze |
verify_skills |
Ověří zamčené skilly proti hashům jejich obsahu na disku |
pin_skill |
Zahashuje existující skill na disku do skills-lock.json |
Nástroje plánu, playbooku a artefaktů
Sekce “Nástroje plánu, playbooku a artefaktů”| Nástroj | Popis |
|---|---|
submit_plan |
Výstupní kontrakt režimu plánu: vydá typovaný PlanDocument, který se otevře v Plan Studio |
create_playbook |
Uloží plán jako pojmenovanou verzovanou šablonu s typovanými zástupnými symboly {{param}} |
run_playbook |
Zinstancuje playbook hodnotami parametrů a vyrobí plán, který operátor schválí |
publish_artifact |
Zveřejní uspořádaný seznam typovaných bloků (markdown, table, chart, mermaid, code, JSON), které klient vykreslí nativně |
revise_artifact |
Nahradí obsah zveřejněného artefaktu |
list_artifacts |
Vypíše artefakty pracovního prostoru |
get_artifact |
Přečte jeden artefakt |
complete_goal |
Prohlásí aktivní trvalý cíl konverzace (založený přes /goal nebo /loop) za dosažený |
Nástroje pracovního prostoru
Sekce “Nástroje pracovního prostoru”| Nástroj | Popis |
|---|---|
list_workspaces |
Vypíše všechny pracovní prostory s jejich id a názvy (globální; bez workspace_id) |
Nástroje repozitářů
Sekce “Nástroje repozitářů”| Nástroj | Popis |
|---|---|
list_repos |
Vypíše repozitáře registrované v pracovním prostoru. Volající agenti dostanou cesty izolovaného copy-on-write worktree své konverzace, nikdy původní checkouty |
Nástroje zpráv
Sekce “Nástroje zpráv”| Nástroj | Popis |
|---|---|
list_spaces |
Vypíše prostory zpráv v pracovním prostoru |
get_messages |
Načte zprávy z prostoru |
send_message |
Pošle zprávu do prostoru jako pojmenovaný odesílající agent |
get_space_notes |
Přečte sdílený předávací dokument prostoru |
update_space_notes |
Nahradí sdílený předávací dokument prostoru |
todo_write |
Nahradí kontrolní seznam úkolů téhle konverzace jedním voláním (předej celý seznam) |
Nástroje kontroly
Sekce “Nástroje kontroly”| Nástroj | Popis |
|---|---|
start_ai_review |
Spustí AI kontrolu PR: spočítá oblasti kontroly, rozvětví specializované recenzenty do prostoru PR, sepíše průvodce a kontrolu dokončí |
add_review_node |
Přidá strukturované zjištění kontroly (soubor, řádek, priorita P0–P3) do prostoru kontroly |
confirm_review_node |
Potvrdí zjištění kolegy; autor ho nemůže potvrdit sám |
resolve_review_node |
Označí zjištění za opravené, až se změna opravdu udělá; zapíše stopu do prostoru kontroly |
dismiss_review_node |
Zavrhne zjištění, které neplatí; zapíše fakt potlačení, aby ho recenzenti přestali znovu označovat |
request_peer_review |
Požádá jiného review agenta o druhý pohled na zjištění |
dispatch_reviewers |
Odešle odpovídající review agenty do prostoru kontroly, souběžně |
submit_reviewer_verdict |
Zveřejní verdikt Ship/Hold/Block za recenzenta, s jistotou a vysvětlením |
finalize_review |
Spočítá shodu po uzlech a verdikt za PR a kontrolu uzavře |
set_cohort_summary |
Nastaví souhrn kohorty kontroly v běžném jazyce |
add_review_diagram |
Připojí ke kohortě strukturovaný diagram ověřený proti grafu (sequence, entityRelation, stateMachine) |
publish_review_to_github |
Zveřejní dokončenou kontrolu na GitHub jako vložené komentáře a souhrnné tělo |
Nástroje paměti
Sekce “Nástroje paměti”| Nástroj | Popis |
|---|---|
search_memory |
Hledá fakta a politiky (keyword, semantic nebo hybrid — hybrid je výchozí) |
propose_fact |
Uloží krátký fakt v markdownu do domény |
supersede_fact |
Označí fakt jako nahrazený jiným |
propose_policy |
Uloží normativní pravidlo do domény (vyžaduje na ní oprávnění k zápisu) |
supersede_policy |
Vyřadí politiku — označí ji jako neaktivní a nechá ji pro audit |
list_policies |
Vypíše aktivní politiky, volitelně filtrované podle domény |
list_memory_domains |
Vypíše domény paměti pracovního prostoru s počty fakt a politik |
record_observation |
Zapíše syrové pozorování do pracovní paměti agenta |
get_my_notes |
Přečte zápisník pracovní paměti volajícího agenta |
update_my_notes |
Aktualizuje zápisník pracovní paměti volajícího agenta |
remember |
Přidá poznámku do horké pracovní paměti agenta pro tuhle relaci (omezené TTL i počtem) |
consolidate_memory |
Spustí průchod konsolidace („spánek“): vyhodí prošlé horké položky a trvalé sroluje do dlouhodobých fakt |
harmonize_memory |
Spustí sladění přesvědčení mezi agenty (SHMR) a označí rozpory |
list_memory_conflicts |
Vypíše nalezené rozpory a jak se každý vyřešil |
Nástroje správy
Sekce “Nástroje správy”| Nástroj | Popis |
|---|---|
create_goal |
Založí organizační cíl (úroveň firmy, týmu, agenta nebo úkolu) |
list_goals |
Vypíše cíle s úrovní, stavem a souhrnným postupem |
update_goal_progress |
Nastaví postup cíle |
create_approval |
Otevře schválení ve správě pro řízenou akci (odchod z plánu, sloučení, vydání, nábor, vlastní) |
list_approvals |
Vypíše schválení, volitelně filtrovaná podle stavu |
decide_approval |
Zapíše rozhodnutí: schválit, zamítnout, požádat o revizi, nebo podat znovu |
comment_approval |
Okomentuje schválení ve správě |
exit_plan_mode |
Otevře (a po schválení spotřebuje) schválení plan_exit a přepne konverzaci z režimu plánu |
agent_heartbeat |
Nahlásí životnost (alive, idle, stuck); ticho přepne zdraví runtime na recently-lost a pak na offline |
list_runtime_health |
Vypíše zdraví runtime každého agenta |
list_agent_presence |
Vypíše přítomnost každého agenta (zdraví, životní cyklus, počty běžících a ve frontě, kapacita) |
get_org_chart |
Přečte strom podřízenosti, CEO v kořeni, vnořený podle reports_to |
create_work_product |
Založí trvalý pracovní produkt připojený k ticketu |
save_work_product_revision |
Uloží novou revizi; předáním base_revision_id se při souběžné úpravě odmítne |
list_work_products |
Vypíše pracovní produkty, volitelně filtrované na jeden ticket |
get_work_product |
Přečte pracovní produkt i s historií revizí |
create_runtime_profile |
Definuje znovupoužitelný runtime profil (rodina protokolu, příkaz CLI, pevné argumenty spuštění) |
list_runtime_profiles |
Vypíše runtime profily pracovního prostoru |
Nástroje grafu kódu
Sekce “Nástroje grafu kódu”Registrují se jen tehdy, když hostitel dodá repozitář grafu kódu. Index pokrývá dodávanou sadu gramatik (Dart, JS/TS, PHP, Python, Rust, Zig, C/C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB, Ada); symboly v jakémkoli jiném jazyce v něm nejsou.
| Nástroj | Popis |
|---|---|
search_code |
Hledá indexované symboly podle jména, signatury a dokumentačního komentáře (hybridní BM25 + sémantika) |
code_symbol |
Vyhledá symboly podle přesného jména; vrací file:line a signaturu |
code_callers |
Vypíše symboly, které symbol volají nebo na něm závisí (příchozí hrany) |
code_callees |
Vypíše symboly, které symbol volá nebo na kterých závisí (odchozí hrany) |
code_impact |
Spočítá tranzitivní poloměr dopadu symbolu, do dané hloubky |
Nástroje ticketů
Sekce “Nástroje ticketů”| Nástroj | Popis |
|---|---|
create_ticket |
Založí ticket u nakonfigurovaného poskytovatele |
get_ticket |
Načte jeden ticket podle id |
list_tickets |
Vypíše tickety, volitelně filtrované podle stavu nebo přiřazení |
update_ticket |
Aktualizuje stav, název, popis, prioritu nebo štítky (stav bere aliasy jako in_progress / completed) |
assign_ticket |
Přiřadí ticket agentovi a/nebo týmu |
reassign_ticket |
Přeřadí ticket jinému agentovi |
add_ticket_collaborator |
Pozve agenta ke spolupráci na ticketu (přidá ho do jeho prostoru) |
comment_on_ticket |
Okomentuje ticket |
close_ticket |
Uzavře ticket (označí ho jako hotový) s volitelným výstupem |
fail_ticket |
Označí ticket jako selhaný, s chybovou zprávou |
delegate_ticket |
Deleguje ticket agentovi a založí sledovaný ticket |
ticket_pr_link |
Propojí nebo odpojí ticket a pull request podle id uzlu PR (action: link | unlink) |
ticket_relation |
Přidá nebo odebere vazbu mezi dvěma tickety — blocked_by, blocking, related_to, duplicate_of, duplicated_by, sub_issue_of, parent_of (action: add | remove) |
list_ticket_relations |
Vypíše rodiče ticketu, podúkoly a vazby závislostí |
Nástroje týmu a pipeline
Sekce “Nástroje týmu a pipeline”| Nástroj | Popis |
|---|---|
record_team_activity |
Zapíše záznam aktivity vedoucího týmu k ticketu |
preview_trigger |
Nanečisto zjistí, které běhy pipeline by hypotetická událost spustila, a nic nezapíše |
submit_output |
Odešle strukturovaný výstupní payload pro aktuální běh pipeline volajícího; ověří se proti deklarovanému výstupnímu schématu běhu |
Nástroje orchestrace
Sekce “Nástroje orchestrace”| Nástroj | Popis |
|---|---|
propose_orchestration |
Vydá strukturovaný plán orchestrace pro více agentů k jednomu předběžnému schválení; ověří ho a vrátí případná porušení |
Nástroje kanálu novinek
Sekce “Nástroje kanálu novinek”| Nástroj | Popis |
|---|---|
list_feeds |
Vypíše registrované kanály RSS/Atom |
list_articles |
Vypíše články, volitelně filtrované podle kanálu, nepřečtených nebo uložených |
get_article |
Načte jeden článek |
set_article_read |
Označí článek jako přečtený nebo nepřečtený |
set_article_saved |
Uloží článek, nebo uložení zruší |
refresh_feeds |
Znovu stáhne každý zapnutý kanál teď |
Nástroje izolace (stanice)
Sekce “Nástroje izolace (stanice)”Řídí jednorázové stroje — uzavřený prohlížeč nebo linuxový desktop, emulátor
Androidu, nebo iOS Simulator — zevnitř běhu. Registrují se po startu,
bezpodmínečně: jestli stroj opravdu naběhne, je otázka sondy, na kterou
nástroje odpovídají u každého volání. Opakovaná volání v jedné konverzaci
znovu použijí jeden stroj; snímky obrazovky se vracejí jako obrazový obsah
s rozpočtem jednoho obrázku na výsledek a vytažený obsah stránky nebo
rozhraní je ohrazený jako nedůvěryhodná data. Čtyři use nástroje plus
rig_close deklarují enclosureControl třídu akcí
(use nástroje deklarují taky networkEgress a processSpawn; mobile_use a
ios_use deklarují taky packageInstall), takže režimy jen pro čtení je
odmítnou. rig_list nedeklaruje žádnou — jen čte stav pracovního prostoru.
Úplný slovník sloves po plochách je v
referenci stanic.
| Nástroj | Popis |
|---|---|
computer_use |
Řídí linuxový desktop v uzavřeném VM: pohyb, klik, tažení, posun, psaní, změna velikosti, schránka, snímek obrazovky |
browser_use |
Řídí headless Chromium, Firefox nebo WebKit (engine): navigace, klik, vyplnění, extrakce (a11y/DOM/konzole), schránka, snímek obrazovky |
mobile_use |
Řídí Android přes ADB: inspekce a vstup, snímky obrazovky, instalace, start, stop, reset a odinstalace aplikací, deep linky a příkazy zařízení ve tvaru argv |
ios_use |
Řídí iOS Simulator přes WebDriverAgent/CoreSimulator: inspekce a vstup, snímky obrazovky, instalace, start, stop a odinstalace aplikací, deep linky a procesy simulátoru ve tvaru argv |
rig_list |
Vypíše stanice pracovního prostoru s plochou, stavem, velikostí displeje a řadičem |
rig_close |
Zničí stanici a zahodí stav stroje, který vlastní |
Přes MCP se nevystavuje
Sekce “Přes MCP se nevystavuje”Kalendář a schůzky nemají nástroje MCP. Agenti nemohou číst tvůj kalendář, schůzky, přepisy, akční položky ani rozhodnutí. Shrnutí, ze kterého vzniknou akční položky a rozhodnutí, běží jako vestavěná pipeline meeting_summary, ne jako nástroj, který agent může zavolat.
Brána nástrojů podle režimu
Sekce “Brána nástrojů podle režimu”Brána se vynucuje dvakrát z jedné tabulky (ModeToolPolicy): jednou v dispečeru MCP pro adaptér Claude Code a jednou v registru vestavěného harnessu. Odmítnuté volání vrátí důvod.
| Režim | Plocha nástrojů |
|---|---|
chat |
Každý registrovaný nástroj; žádný seznam povolených |
plan |
Sestavený seznam povolených. Žádné zápisy do worktree a žádná slovesa ticketů create / assign / delegate, ale paměť, artefakty, úkoly, submit_plan, exit_plan_mode a slovesa dokončení ticketu na odeslaném ticketu jsou povolená |
review |
Sestavený seznam povolených: účast na kontrole, komunikace, načítání kontextu jen pro čtení a celá sada sloves ticketů včetně create_ticket a assign_ticket |
orchestrate |
Sestavený seznam povolených: nástroje na výzkum a čtení plus propose_orchestration, create_playbook a run_playbook. Nábor, rozklad a dokončení ticketu proběhnou deterministicky po schválení, nikdy uprostřed běhu |
Povolené v každém režimu bez ohledu na seznam povolených:
| Sada | Nástroje |
|---|---|
| Paměť a artefakty | 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 |
| Graf kódu | search_code, code_symbol, code_callers, code_callees, code_impact |
| Mechanika běhu | search_tool_bm25, list_my_tools, todo_write, todo_read |
To, že nástroj je na seznamu povolených, ho ještě neudělá volatelným, a platí to i naopak: schopnost zeptat se operátora je nástroj harnessu (ask_user), takže se v tomhle katalogu MCP vůbec neobjeví.
Nástroje za schválením
Sekce “Nástroje za schválením”Nástroj smí deklarovat requiresApproval. Dispečer pak sestaví ApprovalPayload a vystaví ho přes ConfirmationPort ještě před během nástroje; cc_server ten port zapojí, takže brána je živá.
Registrované nástroje, které to deklarují: 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.
Nezávisle na tom sjednocené guardraily akcí brání každý nástroj, který deklaruje neprázdnou množinu ActionClass. Rozhodnutí prompt bez připojeného schvalovatele se odmítne. Viz Guardraily.
Schopnosti, za kterými není nástroj
Sekce “Schopnosti, za kterými není nástroj”Ne každá schopnost v produktu je pro agenta dosažitelná. Tyhle nemají nástroj vůbec, takže jméno, které jsi mohl vidět jinde, vrátí „unknown tool“:
| Schopnost | Kde žije místo toho |
|---|---|
| Nabírání, propouštění nebo úprava agenta | Rozhraní agentů. Nástroj hire_agent / fire_agent / update_agent není |
| Vytvoření pracovního prostoru | workspace.upsert přes RPC, které pracovní prostor založí a orazítkuje vlastnictví |
| Projekty (založení / výpis / úprava / zařazení) | Rozhraní ticketů. Projekty jsou plocha operátora — viz Projekty |
| Blokující otázka operátorovi | Nástroj harnessu ask_user, ne MCP. Vykreslí formulář v konverzaci a čeká na odpověď |
| Diagnostika po agentech | Nic. doctor není — viz Diagnostikujte agenta |
| Kalendář a schůzky | RPC jen pro lidské klienty (viz výše) |