Інструменти MCP
cc_server містить один реєстр інструментів MCP (JSON-RPC 2.0), який обслуговується на головному порту сервера (типово 9030) за POST /mcp і GET /sse, версія протоколу 2024-11-05. Кожен клієнт дістається того самого реєстру: настільний застосунок, вебзбірка, зовнішні клієнти MCP і вбудоване середовище виконання агентів. Зовнішні сервери MCP можна змішувати в той самий реєстр як динамічний шар.
Розмір реєстру
Розділ із назвою «Розмір реєстру»| Показник | Кількість |
|---|---|
Інструменти, які реєструє cc_server |
110 |
З packages/cc_mcp |
108 |
З packages/cc_mcp_client (виявлення інструментів) |
2 |
Зареєстровано в базовому реєстрі (server_mcp_registry.dart) |
63 |
Зареєстровано після завантаження, коли піднімаються їхні сервіси (cc_server_runtime.dart) |
47 |
| З 63 базового реєстру — умовні на наявність репозиторію з графом коду | 5 |
П’ять інструментів графа коду реєструються лише тоді, коли хост передає репозиторій із графом коду в buildServerMcpRegistry. cc_server завжди передає його, тож усі 110 живі в бінарнику, який постачається.
Повний реєстр оголошується в tools/list без жодного фільтрування на етапі виявлення. Правки тікетів — це типізовані інструменти.
Спільні параметри
Розділ із назвою «Спільні параметри»workspace_id
Розділ із назвою «workspace_id»Обов’язковий для кожного інструмента, який торкається даних з областю робочого простору. Відсутній або неправильний workspace_id повертає явну помилку, а значення, яке не збігається з робочим простором цільової сутності, відхиляється, а не тихо ігнорується. Пропускайте його в справді глобальних інструментах: list_workspaces і шести інструментах стрічки новин (list_feeds, list_articles, get_article, set_article_read, set_article_saved, refresh_feeds), які працюють із персональним списком стрічок власника сервера. Інструменти виявлення (search_tool_bm25, list_my_tools) беруть його необов’язково, щоб класифікувати викликуваність за режимом розмови. Коли агента відправляє сервер, робочий простір примусово задається на боці сервера, тож агент не може дістатися іншого робочого простору, передавши чужий ідентифікатор.
Виявлення інструментів
Розділ із назвою «Виявлення інструментів»Обидва походять із cc_mcp_client, а не cc_mcp, і обидва звертаються до вартового режиму, тож повідомляють те, що можна викликати в поточному режимі розмови.
| Інструмент | Опис |
|---|---|
search_tool_bm25 |
Шукати в каталозі інструментів за ключовим словом; повертає відповідні інструменти, їхні схеми аргументів і те, чи можна кожен викликати просто зараз |
list_my_tools |
Перелічити інструменти, які можна викликати просто зараз у цій розмові, відфільтровані за її режимом |
Третій інструмент виявлення, search_tools, існує лише всередині вбудованого harness і не входить до цього реєстру MCP. Він ранжує власну поверхню інструментів запуску й, на відміну від search_tool_bm25, завантажує схеми того, що знаходить, щоб агент міг викликати збіг наступного ходу. Агенти на harness мають віддавати йому перевагу; у клієнтів MCP є search_tool_bm25.
Інструменти агента
Розділ із назвою «Інструменти агента»| Інструмент | Опис |
|---|---|
list_agents |
Перелічити зареєстрованих агентів у робочому просторі |
Обмін повідомленнями й делегування між агентами
Розділ із назвою «Обмін повідомленнями й делегування між агентами»Агенти спілкуються між собою через простори (довготривалі, видимі в реєстрі). ask_agent — це запит/відповідь з обов’язковим тайм-аутом; delegate_task захищений на боці сервера обмеженням глибини, виявленням циклів, бюджетною оболонкою та стелею автономності.
| Інструмент | Опис |
|---|---|
send_to_agent |
Надіслати односпрямоване повідомлення іншому агентові, адресоване за to_agent_id або точною to_agent_name |
ask_agent |
Поставити іншому агентові запитання й дочекатися його відповіді або вичерпати тайм-аут |
delegate_task |
Делегувати завдання іншому агентові як відстежуваний дочірній тікет |
consult_agent |
Додати до простору найкращого спеціаліста за навичками й відправити його із зосередженим брифом |
todo_read |
Прочитати збережений контрольний список завдань цієї розмови |
Інструменти навичок
Розділ із назвою «Інструменти навичок»Кожне встановлення й оновлення проходить шлюз сканування з відмовою за замовчуванням, перш ніж якийсь вміст навички дістанеться диска чи промпту агента.
| Інструмент | Опис |
|---|---|
list_skills |
Перелічити slug-и навичок, доступних у робочому просторі |
create_skill |
Створити нову навичку з вмісту markdown |
install_skill |
Встановити цілий каталог навички з репозиторію GitHub за закріпленим ref |
update_skill |
Оновити встановлену GitHub-навичку до нового ref, повторно просканувавши й перезакріпивши |
list_skill_updates |
Перелічити навички, для яких є новіша версія |
verify_skills |
Перевірити закріплені навички за хешами їхнього вмісту на диску |
pin_skill |
Захешувати наявну навичку з диска у skills-lock.json |
Інструменти планів, плейбуків і артефактів
Розділ із назвою «Інструменти планів, плейбуків і артефактів»| Інструмент | Опис |
|---|---|
submit_plan |
Контракт виводу режиму плану: видати типізований PlanDocument, який відкривається в Plan Studio |
create_playbook |
Зберегти план як іменований версіонований шаблон із типізованими заповнювачами {{param}} |
run_playbook |
Інстанціювати плейбук зі значеннями параметрів, утворюючи план, який затверджує оператор |
publish_artifact |
Опублікувати впорядкований список типізованих блоків (markdown, таблиця, діаграма, mermaid, код, JSON), які рендеряться нативно в клієнті |
revise_artifact |
Замінити вміст опублікованого артефакту |
list_artifacts |
Перелічити артефакти робочого простору |
get_artifact |
Прочитати один артефакт |
complete_goal |
Оголосити активну довготривалу мету розмови (розпочату через /goal або /loop) досягнутою |
Інструменти робочого простору
Розділ із назвою «Інструменти робочого простору»| Інструмент | Опис |
|---|---|
list_workspaces |
Перелічити всі робочі простори з їхніми ідентифікаторами й назвами (глобально; без workspace_id) |
Інструменти репозиторіїв
Розділ із назвою «Інструменти репозиторіїв»| Інструмент | Опис |
|---|---|
list_repos |
Перелічити репозиторії, зареєстровані в робочому просторі. Агенти-викликачі отримують ізольовані шляхи worktree своєї розмови з copy-on-write, а не оригінальні чекаути |
Інструменти повідомлень
Розділ із назвою «Інструменти повідомлень»| Інструмент | Опис |
|---|---|
list_spaces |
Перелічити простори повідомлень у робочому просторі |
get_messages |
Витягнути повідомлення з простору |
send_message |
Надіслати повідомлення в простір від імені агента-відправника |
get_space_notes |
Прочитати спільний документ передачі справ простору |
update_space_notes |
Замінити спільний документ передачі справ простору |
todo_write |
Замінити контрольний список завдань цієї розмови одним викликом (передайте повний список) |
Інструменти перевірки
Розділ із назвою «Інструменти перевірки»| Інструмент | Опис |
|---|---|
start_ai_review |
Запустити ШІ-перевірку для PR: обчислити області перевірки, розгалузити рецензентів-фахівців у простір PR, написати покроковий огляд і фіналізувати |
add_review_node |
Додати структуровану знахідку перевірки (файл, рядок, пріоритет P0–P3) до простору перевірки |
confirm_review_node |
Підтвердити знахідку іншого рецензента; автор не може підтвердити власну |
resolve_review_node |
Позначити знахідку виправленою після фактичного внесення зміни; публікує трасування в простір перевірки |
dismiss_review_node |
Відхилити знахідку, яка не застосовується; записує факт придушення, щоб рецензенти більше не позначали її |
request_peer_review |
Попросити іншого агента-рецензента про другий погляд на знахідку |
dispatch_reviewers |
Розіслати відібраних агентів-рецензентів у простір перевірки, одночасно |
submit_reviewer_verdict |
Опублікувати вердикт ship/hold/block для кожного рецензента з упевненістю та поясненням |
finalize_review |
Обчислити консенсус за кожним вузлом і вердикт за кожним PR та закрити перевірку |
set_cohort_summary |
Задати простими словами підсумок когорти перевірки |
add_review_diagram |
Прикріпити до когорти структуровану, перевірену графом діаграму (sequence, entityRelation, stateMachine) |
publish_review_to_github |
Опублікувати фіналізовану перевірку в GitHub як рядкові коментарі плюс тіло підсумку |
Інструменти пам’яті
Розділ із назвою «Інструменти пам’яті»| Інструмент | Опис |
|---|---|
search_memory |
Шукати факти й політики (ключове слово, семантика або гібрид — гібрид типовий) |
propose_fact |
Зберегти короткий факт у markdown у домені |
supersede_fact |
Позначити факт заміненим іншим |
propose_policy |
Зберегти нормативне правило в домені (потрібен дозвіл на запис у нього) |
supersede_policy |
Вивести політику з ужитку — позначає її неактивною, зберігаючи для аудиту |
list_policies |
Перелічити активні політики, за потреби відфільтровані за доменом |
list_memory_domains |
Перелічити домени пам’яті робочого простору з кількістю фактів і політик |
record_observation |
Записати сире спостереження в робочу пам’ять агента |
get_my_notes |
Прочитати чернетку робочої пам’яті агента, який викликає |
update_my_notes |
Оновити чернетку робочої пам’яті агента, який викликає |
remember |
Додати нотатку в гарячу робочу пам’ять агента для цієї сесії (обмежену TTL і кількістю) |
consolidate_memory |
Запустити прохід консолідації («сон»): витіснити прострочені гарячі елементи, перевести довготривалі в довгострокові факти |
harmonize_memory |
Запустити узгодження переконань між агентами (SHMR) і позначити суперечності |
list_memory_conflicts |
Перелічити виявлені суперечності та те, як кожну розв’язано |
Інструменти врядування
Розділ із назвою «Інструменти врядування»| Інструмент | Опис |
|---|---|
create_goal |
Створити організаційну мету (рівня компанії, команди, агента чи завдання) |
list_goals |
Перелічити мети з рівнем, статусом і зведеним поступом |
update_goal_progress |
Задати поступ мети |
create_approval |
Відкрити схвалення ради для керованої дії (вихід із плану, мердж, випуск, найм, власне) |
list_approvals |
Перелічити схвалення, за потреби відфільтровані за статусом |
decide_approval |
Записати рішення: схвалити, відхилити, попросити ревізію або подати повторно |
comment_approval |
Прокоментувати схвалення ради |
exit_plan_mode |
Відкрити (і, після схвалення, використати) схвалення plan_exit, виводячи розмову з режиму плану |
agent_heartbeat |
Повідомити про живучість (alive, idle, stuck); тиша перемикає стан виконання на recently-lost, а потім на offline |
list_runtime_health |
Перелічити стан виконання кожного агента |
list_agent_presence |
Перелічити присутність кожного агента (стан, життєвий цикл, кількість запущених і в черзі, місткість) |
get_org_chart |
Прочитати дерево підзвітності — CEO в корені, вкладене за reports_to |
create_work_product |
Створити довготривалий робочий продукт, прикріплений до тікета |
save_work_product_revision |
Зберегти нову ревізію; передайте base_revision_id, щоб виклик відхилили за одночасної правки |
list_work_products |
Перелічити робочі продукти, за потреби звужені до одного тікета |
get_work_product |
Прочитати робочий продукт разом з історією його ревізій |
create_runtime_profile |
Визначити багаторазовий профіль середовища виконання (сімейство протоколу, команда CLI, фіксовані аргументи запуску) |
list_runtime_profiles |
Перелічити профілі середовища виконання робочого простору |
Інструменти графа коду
Розділ із назвою «Інструменти графа коду»Реєструються лише тоді, коли хост надає репозиторій із графом коду. Індекс охоплює граматики, які постачаються (Dart, JS/TS, PHP, Python, Rust, Zig, C/C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB, Ada); символів будь-якою іншою мовою там немає.
| Інструмент | Опис |
|---|---|
search_code |
Шукати проіндексовані символи за назвою, сигнатурою й коментарем документації (гібрид BM25 + семантика) |
code_symbol |
Знайти символи за точною назвою; повертає file:line і сигнатуру |
code_callers |
Перелічити символи, які викликають символ або залежать від нього (вхідні ребра) |
code_callees |
Перелічити символи, які символ викликає або від яких залежить (вихідні ребра) |
code_impact |
Обчислити транзитивний радіус впливу символу до заданої глибини |
Інструменти тікетів
Розділ із назвою «Інструменти тікетів»| Інструмент | Опис |
|---|---|
create_ticket |
Створити тікет у налаштованого постачальника |
get_ticket |
Витягнути один тікет за ідентифікатором |
list_tickets |
Перелічити тікети, за потреби відфільтровані за статусом чи виконавцем |
update_ticket |
Оновити статус, заголовок, опис, пріоритет чи мітки (статус приймає аліаси, як-от in_progress / completed) |
assign_ticket |
Призначити тікет агентові та/або команді |
reassign_ticket |
Перепризначити тікет іншому агентові |
add_ticket_collaborator |
Запросити агента до співпраці над тікетом (його додають до простору тікета) |
comment_on_ticket |
Прокоментувати тікет |
close_ticket |
Закрити тікет (позначає його виконаним) з необов’язковим виводом |
fail_ticket |
Позначити тікет невдалим із повідомленням про помилку |
delegate_ticket |
Делегувати тікет агентові, створюючи відстежуваний тікет |
ticket_pr_link |
Зв’язати чи розв’язати тікет і pull request за ідентифікатором вузла PR (action: link | unlink) |
ticket_relation |
Додати чи прибрати зв’язок між двома тікетами — blocked_by, blocking, related_to, duplicate_of, duplicated_by, sub_issue_of, parent_of (action: add | remove) |
list_ticket_relations |
Перелічити батьківський тікет, підтікети й зв’язки залежностей тікета |
Інструменти команд і конвеєрів
Розділ із назвою «Інструменти команд і конвеєрів»| Інструмент | Опис |
|---|---|
record_team_activity |
Записати запис активності лідера команди щодо тікета |
preview_trigger |
Прогнати вхолосту, які запуски конвеєрів розпочала б гіпотетична подія, не фіксуючи нічого |
submit_output |
Подати структурований вивід для поточного запуску конвеєра викликача; перевіряється за оголошеною схемою виводу запуску |
Інструменти оркестрації
Розділ із назвою «Інструменти оркестрації»| Інструмент | Опис |
|---|---|
propose_orchestration |
Видати структурований план оркестрації багатьох агентів для одного схвалення наперед; перевіряє та повертає будь-які порушення |
Інструменти стрічки новин
Розділ із назвою «Інструменти стрічки новин»| Інструмент | Опис |
|---|---|
list_feeds |
Перелічити зареєстровані стрічки RSS/Atom |
list_articles |
Перелічити статті, за потреби відфільтровані за стрічкою, непрочитаністю чи збереженістю |
get_article |
Витягнути одну статтю |
set_article_read |
Позначити статтю прочитаною чи непрочитаною |
set_article_saved |
Зберегти чи прибрати статтю зі збережених |
refresh_feeds |
Повторно витягнути кожну увімкнену стрічку просто зараз |
Інструменти ізольованих середовищ (rig)
Розділ із назвою «Інструменти ізольованих середовищ (rig)»Керуйте одноразовими машинами — ізольованим браузером чи робочим столом Linux,
емулятором Android або симулятором iOS — зсередини запуску. Реєструються після
завантаження, безумовно: чи машина справді може завантажитися — це питання-проба,
на яке інструменти відповідають під час кожного виклику. Повторні виклики в одній
розмові повторно використовують одну машину; скриншоти повертаються як вміст
зображення з бюджетом в одне зображення на результат, а вилучений вміст сторінки
чи інтерфейсу загорнуто як недовірені дані. Чотири інструменти використання разом
із rig_close оголошують клас дій
enclosureControl (інструменти використання також оголошують networkEgress і
processSpawn; mobile_use та ios_use також оголошують packageInstall), тож
режими лише для читання їх забороняють. rig_list не оголошує жодного — він лише
читає стан робочого простору. Повний словник дієслів для кожної поверхні — у
довідці з rigs.
| Інструмент | Опис |
|---|---|
computer_use |
Керувати робочим столом Linux в ізольованій ВМ: рух, клацання, перетягування, прокручування, введення, зміна розміру, буфер обміну, скриншот |
browser_use |
Керувати headless-браузером Chromium, Firefox або WebKit (engine): навігація, клацання, заповнення, вилучення (a11y/DOM/консоль), буфер обміну, скриншот |
mobile_use |
Керувати Android через ADB: огляд/введення, скриншоти, встановлення/запуск/зупинка/скидання/видалення застосунків, глибокі посилання та команди пристрою у формі argv |
ios_use |
Керувати симулятором iOS через WebDriverAgent/CoreSimulator: огляд/введення, скриншоти, встановлення/запуск/зупинка/видалення застосунків, глибокі посилання та процеси симулятора у формі argv |
rig_list |
Перелічити rig робочого простору з поверхнею, статусом, розміром екрана й контролером |
rig_close |
Знищити rig і відкинути стан його машини |
Не доступні через MCP
Розділ із назвою «Не доступні через MCP»Календар і зустрічі не мають інструментів MCP. Агенти не можуть читати ваш календар, зустрічі, транскрипти, пункти дій чи рішення. Підсумок, який створює пункти дій і рішення, виконується як вбудований конвеєр meeting_summary, а не як інструмент, який агент може викликати.
Фільтрування інструментів за режимом
Розділ із назвою «Фільтрування інструментів за режимом»Фільтрування забезпечується двічі з однієї таблиці (ModeToolPolicy): один раз у диспетчері MCP для адаптера Claude Code і один раз у реєстрі вбудованого harness. Заблокований виклик повертає причину.
| Режим | Поверхня інструментів |
|---|---|
chat |
Кожен зареєстрований інструмент; жодного списку дозволених |
plan |
Дібраний список дозволених. Жодних записів у worktree і жодних дієслів тікетів create / assign / delegate, але пам’ять, артефакти, списки завдань, submit_plan, exit_plan_mode і дієслова завершення тікета для відправленого тікета дозволено |
review |
Дібраний список дозволених: участь у перевірці, спілкування, призначені лише для читання витягувачі контексту та повний набір дієслів тікетів, зокрема create_ticket і assign_ticket |
orchestrate |
Дібраний список дозволених: інструменти дослідження й читання плюс propose_orchestration, create_playbook і run_playbook. Найм, декомпозиція й завершення тікетів відбуваються детерміновано після схвалення, ніколи посеред запуску |
Дозволено в кожному режимі незалежно від списку дозволених:
| Набір | Інструменти |
|---|---|
| Пам’ять і артефакти | 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 |
| Граф коду | search_code, code_symbol, code_callers, code_callees, code_impact |
| Механіка запуску | search_tool_bm25, list_my_tools, todo_write, todo_read |
Перебування в списку дозволених не робить інструмент доступним для виклику, і навпаки: можливість поставити запитання операторові — це інструмент harness (ask_user), тож він узагалі не з’являється в цьому каталозі MCP.
Інструменти за шлюзом схвалення
Розділ із назвою «Інструменти за шлюзом схвалення»Інструмент може оголосити requiresApproval. Тоді диспетчер будує ApprovalPayload і показує його через ConfirmationPort, перш ніж інструмент запуститься; cc_server підключає цей порт, тож шлюз чинний.
Зареєстровані інструменти, які його оголошують: 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.
Окремо уніфіковані обмеження дій ставлять на шлюз кожен інструмент, що оголошує непорожній набір ActionClass. Рішення prompt без під’єднаного затверджувача відхиляється. Див. Обмеження.
Можливості, за якими не стоїть жодного інструмента
Розділ із назвою «Можливості, за якими не стоїть жодного інструмента»Не кожна можливість у продукті доступна агентові. Ці не мають жодного інструмента взагалі, тож назва, яку ви, можливо, бачили деінде, повертає «невідомий інструмент»:
| Можливість | Де вона живе натомість |
|---|---|
| Наймання, звільнення чи редагування агента | Інтерфейс агентів. Інструментів hire_agent / fire_agent / update_agent немає |
| Створення робочого простору | workspace.upsert через RPC, який засіює та проставляє володіння |
| Проєкти (створення / перелік / оновлення / прив’язка) | Інтерфейс тікетів. Проєкти — це поверхня оператора — див. Проєкти |
| Запитання операторові, що блокує | Інструмент harness ask_user, а не MCP. Він рендерить у розмові форму й блокує до відповіді |
| Діагностика окремого агента | Нічого. Інструмента doctor немає — див. Діагностика агента |
| Календар і зустрічі | RPC лише для людських клієнтів (див. вище) |