Přeskočit na obsah

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.

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.

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.

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

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

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