Перейти до вмісту

Інструменти 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 повертає явну помилку, а значення, яке не збігається з робочим простором цільової сутності, відхиляється, а не тихо ігнорується. Пропускайте його в справді глобальних інструментах: 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. Агенти не можуть читати ваш календар, зустрічі, транскрипти, пункти дій чи рішення. Підсумок, який створює пункти дій і рішення, виконується як вбудований конвеєр 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 лише для людських клієнтів (див. вище)