Инструменты MCP
Все инструменты actari-mcp с описаниями и параметрами.
Справочник перечисляет инструменты, которые actari-mcp отдаёт агенту. Он собирается из кода пакета при каждой сборке документации: каждое имя ниже — якорь, на него можно ссылаться. Как подключить пакет, описано в разделе Установка actari-mcp и плагина.
Версия пакета actari-mcp: 0.27.1. Инструментов: 36.
accept
Принять задачу (событие Accepted). Допустимо из REPORTED. evidence — чем подтверждена приёмка (хэш коммита, ссылка на прогон); обязательность задаёт политика проекта. Проверь, что решения из спеки и отчёта записаны как adr.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| task_id | string | обязательный | |
| evidence | string | нет | Подтверждение приёмки: хэш коммита/мержа, ссылка на прогон CI, вывод тестов |
| outcome | string | нет | accepted (default) | accepted-with-fixes |
answer_question
Ответить на вопрос AI-продакта по фиче: текст попадает в ветку вопроса, вопрос становится «отвечен». Ответ подписывается владельцем токена с пометкой «через MCP». Фича — ключ (project, slug), question_id — из feature_questions. Снятый вопрос или вопрос другой фичи облако отклоняет с причиной.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| project | string | обязательный | Проект журнала (с cloud_workspace_id) |
| slug | string | обязательный | Slug фичи (ключ вместе с project) |
| question_id | string | обязательный | Id вопроса из feature_questions |
| text | string | обязательный | Текст ответа |
architecture_check
Для приёмки: действующие ADR элементов карты, которых касается задача журнала, — с текстом «Решения» и строкой «Искать в диффе: …» (идентификаторы из решения), плюс открытые вопросы архитектора и открытые расхождения прошлых приёмок фичи. Без AI: сверку с диффом делаете вы, итог — строка architecture: вердикта. Проект берётся из префикса task_id (project/…). Нет карты или облако недоступно — вернёт строку «Архитектура: <причина>», приёмку продолжайте без блока. Только чтение.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| task_id | string | обязательный | Id задачи журнала вида project/дата-slug |
architecture_review
Разбор фичи AI-архитектором из облака: затронутые компоненты и сущности карты системы, действующие ADR, конфликты, риски и вопросы архитектора (со статусами и id для feature_questions / answer_question). Ровно одно из: slug — сохранённый разбор опубликованной фичи (текст фичи изменился или разбора нет — облако ставит свежий в очередь, ответ «поставлен в очередь», повторите через минуту); text — синхронный разбор черновика брифа без записи (до полутора минут). Нет карты системы, AI выключен или облако недоступно — вернёт строку «Архитектура: <причина>» (или текст про карту), не ошибку: работу продолжайте без блока. Только чтение.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| project | string | обязательный | Проект журнала (с cloud_workspace_id) |
| slug | string | нет | Slug опубликованной фичи (ключ вместе с project) |
| text | string | нет | Текст черновика брифа для разбора без записи |
| title | string | нет | Название фичи для text (необязательно) |
connect
Подключить журнал к облаку Actari (или к своему on-premise через url): проверяет связь (GET курсора с токеном) и при успехе сам пишет sync.json рядом с базой — ручная настройка не нужна. Токен личный: один токен покрывает все пространства пользователя, журнал раскладывается по ним согласно sync_scope. journal_id по умолчанию собирается из имени пользователя и машины. Повторный connect перезаписывает конфиг (осознанная смена облака/токена); чтобы ДОБАВИТЬ вторую цель, а не заменить текущую, передай alias — журнал будет пушиться во все цели сразу. При ошибке связи конфиг не трогается.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| url | string | нет | Базовый URL инстанса: не указан — управляемое облако Actari; свой on-premise — напр. https://wh.acme.internal (можно с префиксом прокси). Пути эндпоинтов сервер добавит сам |
| token | string | обязательный | Личный MCP-токен (Bearer) |
| journal_id | string | нет | Имя журнала (default: <username>-<hostname>, нормализованное) |
| alias | string | нет | Имя цели в конфиге. Задан — цель добавляется к уже настроенным (журнал поедет во все); не задан — конфиг перезаписывается как раньше |
delegate
Отметить делегацию задачи исполнителю (событие Delegated). Допустимо из DRAFT или REWORK. Запуск исполнителя — вне журнала.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| task_id | string | обязательный | |
| executor | string | обязательный | grok / codex / subagent / inline |
draft_task
Поставить задачу в журнал (событие TaskDrafted). task_text — полный текст задания для исполнителя.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| project | string | обязательный | Имя проекта, напр. dom-pro |
| slug | string | нет | Короткий латинский слаг, напр. gantt-ranks |
| title | string | обязательный | Человекочитаемое название |
| task_text | string | обязательный | Полный текст задания для исполнителя |
| task_id | string | нет | Явный id (иначе соберётся как <project>/<дата>-<slug>) |
| intent_task_id | string | нет | Id облачного Task-намерения (из take): связка journal→intent едет в payload события |
drop_task
Отказаться от черновика (событие Dropped), только из DRAFT. Задача остаётся в истории и находится search_precedents; вернуть нельзя — передумали, заведи новую задачу и свяжи relates.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| task_id | string | обязательный | |
| reason | string | обязательный | Почему отказываемся (обязательно) |
feature_questions
Вопросы AI-продакта по фиче из облака: по каждому id, статус (открыт / отвечен / снят), текст, ссылка на вкладку фичи и ветка ответов «автор (источник): текст». Фича задаётся ключом (project, slug) — тем же, что у publish_intent. Только чтение. Ответить — answer_question.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| project | string | обязательный | Проект журнала (с cloud_workspace_id) |
| slug | string | обязательный | Slug фичи (ключ вместе с project) |
get_artifact
Полный текст артефакта по id (id даёт search_precedents / list_artifacts).
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| id | number | обязательный |
get_policy
Эффективная политика проекта: правила постановки, отчёта и приёмки (enforce + guidance по актам draft/delegate/report/accept) и откуда она взята — пространство, проект, default или lenient.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| project | string | обязательный |
get_task
Состояние задачи, хронология событий (тип и время), связи и артефакты. Задание, отчёт и payload событий — только с full: true.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| task_id | string | обязательный | |
| full | boolean | нет | true — задание, отчёт и payload событий целиком |
inbox
Инбокс намерений из облака: мои и свободные задачи фич в работе, мои первыми, по приоритету (pull: облако только отдаёт список, забирается через take). Токен личный — у каждой строки видно пространство и проект журнала, привязанный к нему. При нескольких целях синка собирается со всех.
Параметров нет.
intent_status
Состояние облачного намерения: выведенное состояние и факт журнала, ручное решение человека (отменено / сделано вручную) с автором и комментарием, исполнитель, приоритет, критерии приёмки с версией и разницей с тем, что ты уже видел. Помечает критерии увиденными — после этого accept по новым критериям пройдёт. task_id — id намерения или журнальной задачи (project/…).
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| task_id | string | обязательный | Id намерения облака или задачи журнала |
link_tasks
Связать задачи (событие TaskLinked, направленно from → to). kind: continues («from — продолжение to»; для продолжения заводи НОВУЮ задачу и линкуй на старую), relates, blocks («from блокирует to»), discovered_from («from найдена в ходе to»).
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| from_task_id | string | обязательный | |
| to_task_id | string | обязательный | |
| kind | string | обязательный | continues | relates | blocks | discovered_from |
list_artifacts
Список артефактов с фильтрами по проекту/типу/задаче (без тела — только заголовки).
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| project | string | нет | |
| kind | string | нет | spec | plan | adr | decision | note | doc |
| task_id | string | нет | |
| limit | number | нет | default 20 |
list_projects
Реестр проектов: имя, путь на диске, маппинг на пространство в облаке.
Параметров нет.
list_tasks
Список задач журнала с фильтрами по статусу/проекту.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| status | string | нет | DRAFT | DELEGATED | REPORTED | ACCEPTED | REWORK | FAILED | DROPPED |
| project | string | нет | |
| limit | number | нет | default 20 |
log_time
Списать время на задачу в облаке — от имени владельца токена, как «Списать время» в карточке. task_id — id задачи облака либо id задачи журнала (берётся её намерение, intent_task_id). hours — часы числом (1.5 = 1 ч 30 мин), минимум 15 минут; date — ГГГГ-ММ-ДД, по умолчанию сегодня. Пишет только в облако, локальный журнал не меняется; без доступа к облаку — ошибка.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| task_id | string | обязательный | Id задачи облака или задачи журнала (с intent_task_id) |
| hours | number | обязательный | Часы, больше 0: 1.5 = 1 ч 30 мин |
| date | string | нет | Дата списания ГГГГ-ММ-ДД, по умолчанию сегодня |
| note | string | нет | Комментарий к списанию |
log_usage
Записать токены AI по задаче (событие UsageRecorded): расход исполнителя или приёмки. Статус задачи не меняет; допустимо из любого статуса, кроме DRAFT. Числа — только из результата субагента или вывода запуска, не на глаз. Лучше всего передать session { client, id }: сервер сам найдёт токены по id, который вернул клиент (Claude Code — agentId субагента или session_id, opencode — id из <task id="ses_…">, Codex — thread_id или task_name из spawn_agent). Или usage_file: сервер посчитает токены из транскрипта Claude Code (JSONL), вывода `claude -p --output-format json`, `opencode run --format json` или `codex exec --json`. Либо total_tokens, либо разбивка (input/output/cache), либо usage_file, либо session — один источник на вызов. role: executor — исполнитель, acceptance — приёмка. source: subagent — субагент/форк Claude Code, headless — внешний исполнитель по профилю.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| project | string | обязательный | Зарегистрированный проект задачи |
| task_id | string | обязательный | |
| role | string | обязательный | executor | acceptance |
| source | string | обязательный | subagent | headless |
| model | string | нет | Модель (из usage_file, если не передана) |
| usage_file | string | нет | Путь к файлу запуска: транскрипт субагента (~/.claude/projects/…/subagents/agent-<id>.jsonl), вывод claude -p --output-format json, opencode run --format json или codex exec --json. Числа считает сервер. |
| session | object | нет | Сессия клиента, токены которой сервер найдёт сам: { client: claude-code | opencode | codex, id }. claude-code — agentId субагента или session_id; opencode — id сессии ses_…; codex — thread_id (UUID) или task_name субагента (/root/…). Числа считает сервер. |
| total_tokens | number | нет | Всего токенов (целое ≥ 0) |
| input_tokens | number | нет | |
| output_tokens | number | нет | |
| cache_read_tokens | number | нет | |
| cache_write_tokens | number | нет | |
| cost_usd | number | нет | Стоимость по данным клиента (≥ 0) |
mark_failed
Закрыть задачу как проваленную (событие Failed), из DELEGATED/REPORTED/REWORK.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| task_id | string | обязательный | |
| reason | string | обязательный |
publish_intent
Опубликовать бриф в облако: создаёт или обновляет фичу (текст — бриф) и её намерение (критерии) по ключу (project, slug) в пространстве проекта. Повтор обновляет, дублей нет; карточку, закрытую вручную, не пересоздаёт. intent_task_id — привязать бриф к намерению из inbox вместо создания. Отказ не мешает локальному флоу. Дальше: /feature → take <id намерения>.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| project | string | обязательный | Проект журнала (с cloud_workspace_id) |
| slug | string | обязательный | Slug брифа/фичи — ключ идемпотентности вместе с project |
| title | string | обязательный | Заголовок фичи |
| text | string | обязательный | Бриф целиком → описание фичи |
| acceptance_criteria | string | обязательный | Критерии готовности из брифа |
| intent_task_id | string | нет | Id намерения из inbox — привязать, не создавать |
record_artifact
Зафиксировать артефакт: спеку, план, ADR, решение или заметку (событие ArtifactRecorded). Повторная запись с тем же title = новая версия (старая остаётся в истории). kind=adr — архитектурное решение, которое дорого отменить: выбор модели данных, библиотеки, протокола, границы модулей. Тело — markdown с разделами «## Контекст», «## Решение» (обязательны), «## Последствия», «## Альтернативы» (по желанию); без «Контекста» и «Решения» запись отклоняется. Привяжи ADR к задаче через task_id: так облако положит его в документы фичи. Повторная запись с тем же title обновляет тот же ADR.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| project | string | обязательный | |
| kind | string | обязательный | spec | plan | adr | decision | note | doc. adr — архитектурное решение в формате «Контекст / Решение / Последствия / Альтернативы» (первые два раздела обязательны) |
| title | string | обязательный | |
| body | string | обязательный | Полный текст артефакта (markdown) |
| task_id | string | нет | Опциональная привязка к задаче журнала (для adr — чтобы облако нашло фичу) |
record_incident
Записать грабли/урок (событие IncidentRecorded). Для инцидентов вне конкретной задачи task_id можно опустить.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| description | string | обязательный | Что случилось |
| lesson | string | обязательный | Как обходить впредь |
| task_id | string | нет |
record_release
Записать выпуск (событие Released): что уехало на прод в проекте. Пишет любой процесс выкатки после того, как изменения на проде. items — свободные строки (slug фич или что угодно), журнал их с задачами не сверяет; ref — коммит или тег выкатки. После sync облако рассылает уведомление о выпуске. Передай notes — название и фразу «что нового» на каждый пункт: облако соберёт из них понятное сообщение о выпуске. В облаке закрывает открытый (или замороженный) релиз пространства: фичи выкатки попадают в релиз, следующий открывается сам.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| project | string | обязательный | Зарегистрированный проект журнала |
| items | string[] | обязательный | Что выкачено: slug фич или свободные строки |
| ref | string | нет | Коммит или тег выкатки |
| summary | string | нет | Короткое пояснение (необязательно) |
| notes | object[] | нет | Для людей, на каждый пункт items: название и одна фраза, что изменилось для пользователя (до 160 символов). Из них облако собирает сообщение о выпуске в Telegram; у фичи с карточкой в облаке название берётся из карточки, фраза — отсюда. Без notes пункт покажется slug'ом. |
register_project
Зарегистрировать проект (событие ProjectRegistered): имя = неймспейс задач, root_path = привязка к папке на диске, cloud_workspace_id = маппинг на пространство в облаке (опционально). Повторная регистрация обновляет путь/маппинг. Задачи и артефакты принимаются только для зарегистрированных проектов.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| name | string | обязательный | Короткое имя (латиница/цифры/дефисы), напр. dom-pro |
| root_path | string | обязательный | Абсолютный путь к корню проекта |
| cloud_workspace_id | string | нет | Id пространства в облаке (опционально) |
| force | boolean | нет | Осознанно зарегистрировать несмотря на похожий проект (guard от почти-дублей) |
release_intent
Отпустить взятое намерение обратно в инбокс облака. Нельзя, пока по нему есть живые попытки в журнале (DELEGATED / REPORTED / REWORK) — сначала mark_failed. Черновик не мешает: облако отсекает прежние попытки. note — причина, её увидит команда.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| task_id | string | обязательный | Id намерения облака |
| note | string | нет | Причина (необязательно) |
request_rework
Вернуть задачу на доработку (событие ReworkRequested), из REPORTED. Дальше — новая delegate.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| task_id | string | обязательный | |
| reason | string | обязательный | Что именно не так (по итогам верификации) |
resolve_project
Найти уже зарегистрированный проект ПЕРЕД register_project/бутстрапом: по пути (какой проект покрывает эту папку) и/или по имени (похожие имена, dompro ~ dom-pro). Пустой ответ = проекта нет.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| path | string | нет | Абсолютный путь (папка проекта или файла внутри него) |
| name | string | нет | Предполагаемое имя проекта |
search_precedents
Поиск похожих задач (задания + отчёты), артефактов и инцидентов по всем проектам: слова с морфологией (ru/en), проект текущего каталога выше остальных; артефакт — одной записью, свежайшей подходящей версией (у старой версии — version_label). project — жёсткий фильтр (инциденты без проекта при нём не возвращаются). Инциденты — первые 280 символов; целиком — с full: true.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| query | string | обязательный | Ключевые слова (любой язык) |
| limit | number | нет | Максимум задач и артефактов (default 5) |
| project | string | нет | Искать только в этом проекте |
| full | boolean | нет | true — инциденты целиком |
set_policy
Задать локальную политику: без project — default для всех локальных проектов, с project — для одного. Тело — целиком (schemaVersion, name, enforce, guidance). Для проекта, привязанного к пространству облака, отказ: его политика правится в настройках пространства.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| project | string | нет | Имя проекта; пусто — default |
| policy | object | обязательный | Тело политики (см. get_policy) |
submit_report
Записать отчёт исполнителя (событие ReportSubmitted). Допустимо из DELEGATED. Архитектурные решения, принятые в работе, — отдельным record_artifact kind=adr.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| task_id | string | обязательный | |
| report | string | обязательный | Полный текст отчёта исполнителя |
| duration_minutes | number | нет | Сколько минут заняла работа (необязательно): если передано, облако считает время AI по ней |
sync
Принудительно отправить журнал в облако (push, только вверх): GET курсор → POST события с seq > курсора. Конфиг: sync.json рядом с базой (url, token, journalId) либо env ACTARI_SYNC_URL/TOKEN/JOURNAL_ID. Без конфига синк выключен.
Параметров нет.
sync_scope
Область синка: какие проекты журнала в какое пространство уезжают. Токен личный, пространств у пользователя может быть несколько — привязка называет пространство его SLUG'ом: sync_scope { workspace: "dom-pro", projects: [...] } (список пространств спрашивается у облака, id руками знать не нужно). Пустой массив projects снимает привязку к этому пространству. Параметр target выбирает СЕРВЕР при нескольких целях синка (алиас из sync.json). Без аргументов — показать по каждому серверу пространства пользователя и какие проекты в какое уедут. Локальный журнал один на машину и хранит все проекты сразу — без области при нескольких пространствах журнал никуда не поедет.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| projects | string[] | нет | Имена зарегистрированных проектов, которые синкаются в это пространство. Пустой массив снимает привязку со всех проектов этого пространства. |
| workspace | string | нет | Slug пространства, к которому привязываются проекты (из списка облака). Не нужен, если пространство одно. |
| target | string | нет | Цель синка (СЕРВЕР): алиас из sync.json или её url. Не нужен, если цель одна. |
system_map
Карта системы пространства из облака (C4: система, контейнеры, компоненты, сущности домена) текстом. Без element/level/query — контекст и контейнеры. element — ключ элемента: описание, технологии, состав, связи в обе стороны, источники. level — все элементы уровня. query — поиск по словам запроса (имя, описание, технологии). Приоритет: element, затем query, затем level. Элемент с пометкой «по истории — проверьте» не подтверждён человеком. Только чтение; карту собирают и правят на странице «Система» в облаке.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| project | string | обязательный | Проект журнала (с cloud_workspace_id) |
| element | string | нет | Ключ элемента карты, например backend_api |
| level | string | нет | Уровень: context, container, component или entity (сущности домена) Значения: context, container, component, entity. |
| query | string | нет | Слова для поиска по карте |
take
Забрать намерение из инбокса облака (атомарно; повторный take своего — тот же контекст). Отвечает болванкой для draft_task: контекст фичи, текст намерения, критерии приёмки с версией, приоритет, проект журнала этого пространства, intent_task_id. Чужое, отменённое или из фичи не в работе — отказ с причиной. Дальше: search_precedents → draft_task (с intent_task_id) → delegate → …
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| task_id | string | обязательный | Id облачного Task-намерения (из inbox) |