Przejdź do głównej zawartości

Narzędzia MCP

cc_server hostuje jeden rejestr narzędzi MCP (JSON-RPC 2.0), udostępniany na głównym porcie serwera (domyślnie 9030) pod POST /mcp i GET /sse, w wersji protokołu 2024-11-05. Każdy klient trafia do tego samego rejestru: aplikacja desktopowa, wersja webowa, zewnętrzni klienci MCP i wbudowany runtime agentów. Zewnętrzne serwery MCP można podłączyć do tego samego rejestru jako warstwę dynamiczną.

Miara Liczba
Narzędzia zarejestrowane przez cc_server 110
Z packages/cc_mcp 108
Z packages/cc_mcp_client (odkrywanie narzędzi) 2
Zarejestrowane w rejestrze podstawowym (server_mcp_registry.dart) 63
Zarejestrowane po starcie wraz z uruchamianiem ich usług (cc_server_runtime.dart) 47
Z 63 w rejestrze podstawowym — warunkowe wobec repozytorium grafu kodu 5

Pięć narzędzi grafu kodu jest rejestrowanych tylko wtedy, gdy host przekaże repozytorium grafu kodu do buildServerMcpRegistry. cc_server zawsze je przekazuje, więc w dostarczanym pliku binarnym wszystkie 110 są aktywne.

Pełny rejestr jest ogłaszany w tools/list bez bramkowania wykrywania. Narzędzia edytujące zgłoszenia są typowane.

Wymagany w każdym narzędziu dotykającym danych o zasięgu obszaru roboczego. Brakujący lub nieprawidłowy workspace_id zwraca jawny błąd, a wartość, która nie pasuje do obszaru roboczego encji docelowej, jest odrzucana, a nie po cichu ignorowana. Pomiń go w narzędziach rzeczywiście globalnych: list_workspaces oraz sześciu narzędziach newsfeeda (list_feeds, list_articles, get_article, set_article_read, set_article_saved, refresh_feeds), które korzystają z kanału właściciela serwera dla danego użytkownika. Narzędzia odkrywania (search_tool_bm25, list_my_tools) przyjmują go opcjonalnie, aby klasyfikować wywoływalność według trybu rozmowy. Gdy agent jest wysyłany przez serwer, obszar roboczy jest wymuszany po stronie serwera, więc agent nie może sięgnąć do innego obszaru roboczego, przekazując obcy identyfikator.

Oba pochodzą z cc_mcp_client, a nie z cc_mcp, i oba konsultują strażnika trybu, więc zgłaszają, co jest wywoływalne w bieżącym trybie rozmowy.

Narzędzie Opis
search_tool_bm25 Przeszukuje katalog narzędzi po słowie kluczowym; zwraca pasujące narzędzia, ich schematy argumentów oraz informację, czy każde z nich jest teraz wywoływalne
list_my_tools Wylicza narzędzia wywoływalne teraz w tej rozmowie, przefiltrowane według jej trybu

Trzecie narzędzie odkrywania, search_tools, istnieje wyłącznie wewnątrz wbudowanego harnessu i nie należy do tego rejestru MCP. Uszeregowuje własną powierzchnię narzędzi danego uruchomienia i, w odróżnieniu od search_tool_bm25, wczytuje schematy znalezionych pozycji, aby agent mógł wywołać dopasowanie w następnej turze. Agenci działający na harnessie powinni je preferować; klienci MCP mają search_tool_bm25.

Narzędzie Opis
list_agents Wylicza zarejestrowanych agentów w obszarze roboczym

Agenci rozmawiają ze sobą przez przestrzenie (trwałe, widoczne na liście obecności). ask_agent to żądanie i odpowiedź z obowiązkowym limitem czasu; delegate_task jest chronione po stronie serwera przez pułap głębokości, wykrywanie cykli, kopertę budżetu i pułap autonomii.

Narzędzie Opis
send_to_agent Wysyła jednokierunkową wiadomość do innego agenta, adresowaną przez to_agent_id lub dokładną to_agent_name
ask_agent Zadaje innemu agentowi pytanie i czeka na jego odpowiedź albo kończy się przekroczeniem limitu czasu
delegate_task Deleguje zadanie innemu agentowi jako śledzone zgłoszenie podrzędne
consult_agent Dodaje najlepiej dopasowanego specjalistę według skilli do przestrzeni i wysyła go ze skoncentrowanym briefem
todo_read Odczytuje zapisaną listę kontrolną zadań tej rozmowy

Każda instalacja i aktualizacja przechodzi przez bramkę skanowania z domyślnym zakazem (fail-closed), zanim jakakolwiek treść skilla trafi na dysk lub do promptu agenta.

Narzędzie Opis
list_skills Wylicza slugi skilli dostępnych w obszarze roboczym
create_skill Tworzy nowy skill z treści markdown
install_skill Instaluje cały katalog skilla z repozytorium GitHub przy przypiętym refie
update_skill Aktualizuje zainstalowany skill z GitHuba do nowego refu, ponownie skanując i przypinając
list_skill_updates Wylicza skille, dla których dostępna jest nowsza wersja
verify_skills Weryfikuje zablokowane skille względem ich skrótów treści na dysku
pin_skill Haszuje istniejący skill na dysku do skills-lock.json
Narzędzie Opis
submit_plan Kontrakt wyjściowy trybu planu: emituje typowany PlanDocument, który otwiera się w Plan Studio
create_playbook Zapisuje plan jako nazwany, wersjonowany szablon z typowanymi symbolami zastępczymi {{param}}
run_playbook Tworzy instancję playbooka z wartościami parametrów, tworząc plan, który zatwierdza operator
publish_artifact Publikuje uporządkowaną listę typowanych bloków (markdown, tabela, wykres, mermaid, kod, JSON) renderowanych natywnie w kliencie
revise_artifact Zastępuje treść opublikowanego artefaktu
list_artifacts Wylicza artefakty obszaru roboczego
get_artifact Odczytuje jeden artefakt
complete_goal Ogłasza osiągnięcie aktywnego trwałego celu rozmowy (rozpoczętego przez /goal lub /loop)
Narzędzie Opis
list_workspaces Wylicza wszystkie obszary robocze wraz z ich identyfikatorami i nazwami (globalne; bez workspace_id)
Narzędzie Opis
list_repos Wylicza repozytoria zarejestrowane w obszarze roboczym. Agenci-wywołujący otrzymują ścieżki odizolowanych drzew roboczych swojej rozmowy z kopiowaniem przy zapisie, nigdy oryginalnych checkoutów
Narzędzie Opis
list_spaces Wylicza przestrzenie wiadomości w obszarze roboczym
get_messages Pobiera wiadomości z przestrzeni
send_message Wysyła wiadomość do przestrzeni jako nazwany agent-nadawca
get_space_notes Odczytuje wspólny dokument przekazania przestrzeni
update_space_notes Zastępuje wspólny dokument przekazania przestrzeni
todo_write Zastępuje listę kontrolną zadań tej rozmowy w jednym wywołaniu (przekaż pełną listę)
Narzędzie Opis
start_ai_review Rozpoczyna recenzję AI dla PR-a: oblicza obszary recenzji, rozgałęzia recenzentów-specjalistów do przestrzeni PR-a, pisze przewodnik i finalizuje
add_review_node Dodaje ustrukturyzowane ustalenie recenzji (plik, wiersz, priorytet P0–P3) do przestrzeni recenzji
confirm_review_node Potwierdza ustalenie innego recenzenta; autor nie może potwierdzić własnego
resolve_review_node Oznacza ustalenie jako naprawione po faktycznym wprowadzeniu zmiany; publikuje ślad w przestrzeni recenzji
dismiss_review_node Odrzuca ustalenie, które nie ma zastosowania; zapisuje fakt wyciszający, aby recenzenci przestali je ponownie zgłaszać
request_peer_review Prosi innego agenta-recenzenta o drugie spojrzenie na ustalenie
dispatch_reviewers Wysyła dopasowanych agentów-recenzentów do przestrzeni recenzji, współbieżnie
submit_reviewer_verdict Publikuje werdykt ship/hold/block każdego recenzenta wraz z pewnością i wyjaśnieniem
finalize_review Oblicza konsensus dla każdego węzła oraz werdykt dla PR-a i zamyka recenzję
set_cohort_summary Ustawia podsumowanie kohorty recenzji prostym językiem
add_review_diagram Dołącza ustrukturyzowany, zweryfikowany grafem diagram (sequence, entityRelation, stateMachine) do kohorty
publish_review_to_github Publikuje sfinalizowaną recenzję na GitHubie jako komentarze w linii oraz treść podsumowania
Narzędzie Opis
search_memory Przeszukuje fakty i polityki (po słowie kluczowym, semantycznie lub hybrydowo — hybrydowo jest ustawieniem domyślnym)
propose_fact Zapisuje krótki fakt w markdown w domenie
supersede_fact Oznacza fakt jako zastąpiony przez inny
propose_policy Zapisuje regułę normatywną w domenie (wymaga uprawnienia do zapisu w niej)
supersede_policy Wycofuje politykę — oznacza ją jako nieaktywną, zachowując ją do audytu
list_policies Wylicza aktywne polityki, opcjonalnie przefiltrowane według domeny
list_memory_domains Wylicza domeny pamięci obszaru roboczego wraz z liczbami faktów i polityk
record_observation Zapisuje surową obserwację do pamięci roboczej agenta
get_my_notes Odczytuje notatnik pamięci roboczej agenta wywołującego
update_my_notes Aktualizuje notatnik pamięci roboczej agenta wywołującego
remember Dodaje notatkę do gorącej pamięci roboczej agenta dla tej sesji (ograniczonej czasem życia i liczbą)
consolidate_memory Uruchamia przebieg konsolidacji („sen”): usuwa wygasłe gorące pozycje, a trwałe zwija w fakty długoterminowe
harmonize_memory Uruchamia harmonizację przekonań między agentami (SHMR) i oznacza sprzeczności
list_memory_conflicts Wylicza wykryte sprzeczności i sposób rozstrzygnięcia każdej z nich
Narzędzie Opis
create_goal Tworzy cel organizacyjny (na poziomie firmy, zespołu, agenta lub zadania)
list_goals Wylicza cele wraz z poziomem, statusem i zagregowanym postępem
update_goal_progress Ustawia postęp celu
create_approval Otwiera zatwierdzenie zarządcze dla akcji objętej nadzorem (wyjście z planu, scalenie, wydanie, zatrudnienie, niestandardowa)
list_approvals Wylicza zatwierdzenia, opcjonalnie przefiltrowane według statusu
decide_approval Zapisuje decyzję: zatwierdź, odrzuć, poproś o poprawę lub prześlij ponownie
comment_approval Komentuje zatwierdzenie zarządcze
exit_plan_mode Otwiera (a po zatwierdzeniu zużywa) zatwierdzenie plan_exit, przełączając rozmowę poza tryb planu
agent_heartbeat Raportuje żywotność (żywy, bezczynny, zablokowany); cisza przełącza zdrowie runtime na „niedawno utracony”, a następnie na offline
list_runtime_health Wylicza zdrowie runtime każdego agenta
list_agent_presence Wylicza obecność każdego agenta (zdrowie, cykl życia, liczbę uruchomionych i zakolejkowanych, pojemność)
get_org_chart Odczytuje drzewo raportowania, z CEO u korzenia, zagnieżdżone według reports_to
create_work_product Tworzy trwały produkt pracy dołączony do zgłoszenia
save_work_product_revision Zapisuje nową wersję; przekaż base_revision_id, aby zostać odrzuconym przy współbieżnej edycji
list_work_products Wylicza produkty pracy, opcjonalnie przefiltrowane do jednego zgłoszenia
get_work_product Odczytuje produkt pracy wraz z historią jego wersji
create_runtime_profile Definiuje profil uruchomieniowy wielokrotnego użytku (rodzina protokołów, polecenie CLI, stałe argumenty uruchomienia)
list_runtime_profiles Wylicza profile uruchomieniowe obszaru roboczego

Rejestrowane tylko wtedy, gdy host dostarczy repozytorium grafu kodu. Indeks obejmuje dostarczany zestaw gramatyk (Dart, JS/TS, PHP, Python, Rust, Zig, C/C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB, Ada); symboli w jakimkolwiek innym języku nie ma.

Narzędzie Opis
search_code Przeszukuje zindeksowane symbole po nazwie, sygnaturze i komentarzu dokumentacyjnym (hybrydowo BM25 + semantycznie)
code_symbol Wyszukuje symbole po dokładnej nazwie; zwraca file:line i sygnaturę
code_callers Wylicza symbole, które wywołują dany symbol lub od niego zależą (krawędzie przychodzące)
code_callees Wylicza symbole, które dany symbol wywołuje lub od których zależy (krawędzie wychodzące)
code_impact Oblicza przechodni promień wpływu symbolu, do podanej głębokości
Narzędzie Opis
create_ticket Tworzy zgłoszenie u skonfigurowanego dostawcy
get_ticket Pobiera jedno zgłoszenie po identyfikatorze
list_tickets Wylicza zgłoszenia, opcjonalnie przefiltrowane według statusu lub osoby przypisanej
update_ticket Aktualizuje status, tytuł, opis, priorytet lub etykiety (status przyjmuje aliasy, takie jak in_progress / completed)
assign_ticket Przypisuje zgłoszenie do agenta i/lub zespołu
reassign_ticket Przypisuje zgłoszenie ponownie do innego agenta
add_ticket_collaborator Zaprasza agenta do współpracy nad zgłoszeniem (dodawany do jego przestrzeni)
comment_on_ticket Komentuje zgłoszenie
close_ticket Zamyka zgłoszenie (oznacza je jako ukończone) z opcjonalnym wynikiem
fail_ticket Oznacza zgłoszenie jako nieudane wraz z komunikatem błędu
delegate_ticket Deleguje zgłoszenie agentowi, tworząc śledzone zgłoszenie
ticket_pr_link Łączy lub rozłącza zgłoszenie i pull request według identyfikatora węzła PR-a (action: link | unlink)
ticket_relation Dodaje lub usuwa relację między dwoma zgłoszeniami — blocked_by, blocking, related_to, duplicate_of, duplicated_by, sub_issue_of, parent_of (action: add | remove)
list_ticket_relations Wylicza zgłoszenie nadrzędne, podzgłoszenia i łącza zależności
Narzędzie Opis
record_team_activity Zapisuje wpis aktywności lidera zespołu wobec zgłoszenia
preview_trigger Sprawdza próbnie, które uruchomienia potoków rozpoczęłoby hipotetyczne zdarzenie, nie zatwierdzając niczego
submit_output Przesyła ustrukturyzowany ładunek wyjściowy dla bieżącego uruchomienia potoku wywołującego; walidowany względem zadeklarowanego schematu wyjściowego uruchomienia
Narzędzie Opis
propose_orchestration Emituje ustrukturyzowany plan orkiestracji wielu agentów do jednego zatwierdzenia z góry; waliduje i zwraca wszelkie naruszenia
Narzędzie Opis
list_feeds Wylicza zarejestrowane kanały RSS/Atom
list_articles Wylicza artykuły, opcjonalnie przefiltrowane według kanału, nieprzeczytanych lub zapisanych
get_article Pobiera jeden artykuł
set_article_read Oznacza artykuł jako przeczytany lub nieprzeczytany
set_article_saved Zapisuje lub usuwa artykuł z zapisanych
refresh_feeds Ponownie pobiera teraz każdy włączony kanał

Sterują jednorazowymi maszynami — odizolowaną przeglądarką lub pulpitem Linuksa, emulatorem Androida albo Symulatorem iOS — z wnętrza uruchomienia. Rejestrowane po starcie, bezwarunkowo: to, czy maszyna rzeczywiście może się uruchomić, jest pytaniem sondy, na które narzędzia odpowiadają przy każdym wywołaniu. Powtarzane wywołania w jednej rozmowie korzystają z jednej maszyny; zrzuty ekranu wracają jako treść obrazu z budżetem jednego obrazu na wynik, a wyodrębniona treść strony/interfejsu jest ogrodzona jako niezaufane dane. Cztery narzędzia użycia oraz rig_close deklarują enclosureControl jako klasę działań (narzędzia użycia deklarują też networkEgress i processSpawn; mobile_use i ios_use deklarują też packageInstall), więc tryby tylko do odczytu ich odmawiają. rig_list nie deklaruje żadnej — odczytuje wyłącznie stan obszaru roboczego. Pełny słownik czasowników dla każdej powierzchni znajduje się w dokumentacji referencyjnej rigów.

Narzędzie Opis
computer_use Steruje pulpitem Linuksa w odizolowanej VM: ruch, kliknięcie, przeciąganie, przewijanie, wpisywanie, zmiana rozmiaru, schowek, zrzut ekranu
browser_use Steruje Chromium, Firefoksem lub WebKitem bez interfejsu graficznego (engine): nawigacja, kliknięcia, wypełnianie, ekstrakcja (a11y/DOM/konsola), schowek, zrzut ekranu
mobile_use Steruje Androidem przez ADB: inspekcja/wprowadzanie, zrzuty ekranu, instalowanie/uruchamianie/zatrzymywanie/resetowanie/odinstalowywanie aplikacji, deep linki i polecenia urządzenia w kształcie argv
ios_use Steruje Symulatorem iOS przez WebDriverAgent/CoreSimulator: inspekcja/wprowadzanie, zrzuty ekranu, instalowanie/uruchamianie/zatrzymywanie/odinstalowywanie aplikacji, deep linki i procesy symulatora w kształcie argv
rig_list Wylicza rigi obszaru roboczego wraz z powierzchnią, statusem, rozmiarem wyświetlania i kontrolerem
rig_close Niszczy riga i odrzuca należący do niego stan maszyny

Kalendarz i spotkania nie mają narzędzi MCP. Agenci nie mogą czytać Twojego kalendarza, spotkań, transkrypcji, zadań ani decyzji. Podsumowanie, które tworzy zadania i decyzje, działa jako wbudowany potok meeting_summary, a nie jako narzędzie, które agent może wywołać.

Bramkowanie jest egzekwowane dwukrotnie z jednej tabeli (ModeToolPolicy): raz w dyspozytorze MCP dla adaptera Claude Code, a raz w rejestrze wbudowanego harnessu. Zablokowane wywołanie zwraca powód.

Tryb Powierzchnia narzędzi
chat Każde zarejestrowane narzędzie; bez listy dozwolonych
plan Starannie dobrana lista dozwolonych. Brak zapisów do drzewa roboczego i brak czasowników zgłoszeń create / assign / delegate, ale dozwolone są pamięć, artefakty, listy zadań, submit_plan, exit_plan_mode oraz czasowniki ukończenia zgłoszenia na wysłanym zgłoszeniu
review Starannie dobrana lista dozwolonych: udział w recenzji, komunikacja, pobierające kontekst tylko do odczytu oraz pełny zestaw czasowników zgłoszeń, w tym create_ticket i assign_ticket
orchestrate Starannie dobrana lista dozwolonych: narzędzia badawcze i odczytu oraz propose_orchestration, create_playbook i run_playbook. Zatrudnianie, dekompozycja i ukończenie zgłoszenia zachodzą deterministycznie po zatwierdzeniu, nigdy w trakcie uruchomienia

Dozwolone w każdym trybie niezależnie od listy dozwolonych:

Zestaw Narzędzia
Pamięć i 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 kodu search_code, code_symbol, code_callers, code_callees, code_impact
Mechanika uruchomienia search_tool_bm25, list_my_tools, todo_write, todo_read

Obecność na liście dozwolonych nie czyni narzędzia wywoływalnym, a zachodzi też odwrotność: zdolność zadania pytania operatorowi to narzędzie harnessu (ask_user), więc nie pojawia się w tym katalogu MCP w ogóle.

Narzędzie może deklarować requiresApproval. Dyspozytor buduje wtedy ApprovalPayload i udostępnia go przez ConfirmationPort, zanim narzędzie się uruchomi; cc_server podłącza ten port, więc bramka działa.

Zarejestrowane narzędzia, które ją 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.

Niezależnie od tego ujednolicone guardraile działań obejmują bramką każde narzędzie, które deklaruje niepusty zbiór ActionClass. Decyzja prompt bez podłączonego zatwierdzającego jest odrzucana. Zobacz Guardraile.

Nie każda możliwość w produkcie jest osiągalna dla agenta. Te nie mają żadnego narzędzia, więc nazwa, którą być może widziałeś cytowaną gdzie indziej, zwraca „unknown tool”:

Możliwość Gdzie się zamiast tego znajduje
Zatrudnianie, zwalnianie i edycja agenta Interfejs agentów. Nie ma narzędzia hire_agent / fire_agent / update_agent
Tworzenie obszaru roboczego workspace.upsert przez RPC, które zasiewa i stempluje własność
Projekty (tworzenie / lista / aktualizacja / przypisanie) Interfejs zgłoszeń. Projekty to powierzchnia operatora — zobacz Projekty
Zadanie operatorowi blokującego pytania Narzędzie harnessu ask_user, nie MCP. Renderuje formularz w rozmowie i czeka zablokowane na odpowiedź
Diagnostyka poszczególnych agentów Nic. Nie ma doctor — zobacz Diagnostyka agenta
Kalendarz i spotkania RPC tylko dla klientów-ludzi (zobacz wyżej)