sdlc-hub/tests/fixtures/baseline/mcp_tools.expected.json
Andrey Epifancev 5b01b91710 Модуль jira: заметки, API, MCP и импорт без статуса по факту (#104)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 16:47:12 +04:00

484 lines
15 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[
{
"description": "Задачи зеркала по фильтрам (спринт, исполнитель, вид работы, статус Jira, метка, эпик,\nподстрока темы/ключа, neighbor=1 — только соседние). Компактная таблица.",
"inputSchema": {
"properties": {
"assignee": {
"default": "",
"title": "Assignee",
"type": "string"
},
"epic": {
"default": "",
"title": "Epic",
"type": "string"
},
"label": {
"default": "",
"title": "Label",
"type": "string"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
},
"neighbor": {
"default": "",
"title": "Neighbor",
"type": "string"
},
"q": {
"default": "",
"title": "Q",
"type": "string"
},
"sprint": {
"default": "",
"title": "Sprint",
"type": "string"
},
"status": {
"default": "",
"title": "Status",
"type": "string"
},
"work_kind": {
"default": "",
"title": "Work Kind",
"type": "string"
}
},
"title": "issuesArguments",
"type": "object"
},
"name": "issues"
},
{
"description": "Задача целиком: поля, связи в обе стороны, служебные заметки, последние команды, описание. Комментарии — 5\nпоследних с номером, текст до 300 символов; полный текст — инструмент comment по номеру. Вложения — списком\n(номер, имя, размер, где упомянуты, скачано ли); содержимое — инструмент attachment.",
"inputSchema": {
"properties": {
"key": {
"title": "Key",
"type": "string"
}
},
"required": [
"key"
],
"title": "issueArguments",
"type": "object"
},
"name": "issue"
},
{
"description": "Один комментарий задачи целиком: автор, время, полный текст. comment_id — номер из ответа issue («#123»).",
"inputSchema": {
"properties": {
"comment_id": {
"title": "Comment Id",
"type": "string"
},
"key": {
"title": "Key",
"type": "string"
}
},
"required": [
"key",
"comment_id"
],
"title": "commentArguments",
"type": "object"
},
"name": "comment"
},
{
"description": "Скачать вложение задачи и вернуть путь к локальной копии (читайте файл по этому пути). attachment — номер из\nissue/comment («#31337» или «31337») либо точное имя файла; при нескольких одноимённых берётся самое новое.\nХаб просит агента скачать файл и сохраняет копию в downloads/ каталога данных; ожидание — до wait_seconds (1…600,\nпо умолчанию 120), не дождался — вызовите инструмент ещё раз: вторая команда не поставится. Файлы больше 10 МБ\nскачиваются только в Jira.",
"inputSchema": {
"properties": {
"attachment": {
"title": "Attachment",
"type": "string"
},
"key": {
"title": "Key",
"type": "string"
},
"wait_seconds": {
"default": 120,
"title": "Wait Seconds",
"type": "integer"
}
},
"required": [
"key",
"attachment"
],
"title": "attachmentArguments",
"type": "object"
},
"name": "attachment"
},
{
"description": "Лента изменений задач: смена статуса, правка описания, сроки, новые комментарии. По умолчанию — с начала\nсегодняшнего дня; hours — за последние N часов; since/until — ISO-8601 (без смещения — местное время); kinds — через запятую из\nstatus, description, dates, comment, other или all; key — одна задача (без привязки к проекту).",
"inputSchema": {
"properties": {
"hours": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Hours"
},
"key": {
"default": "",
"title": "Key",
"type": "string"
},
"kinds": {
"default": "",
"title": "Kinds",
"type": "string"
},
"since": {
"default": "",
"title": "Since",
"type": "string"
},
"until": {
"default": "",
"title": "Until",
"type": "string"
}
},
"title": "changesArguments",
"type": "object"
},
"name": "changes"
},
{
"description": "Правка служебных заметок задачи (только переданные поля).",
"inputSchema": {
"properties": {
"done_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Done Text"
},
"key": {
"title": "Key",
"type": "string"
},
"owner_note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Owner Note"
},
"rest_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Rest Text"
},
"work_kind": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Work Kind"
}
},
"required": [
"key"
],
"title": "notes_setArguments",
"type": "object"
},
"name": "notes_set"
},
{
"description": "Поставить пакет команд. Каждая команда — {\"type\": <тип>, \"params\": {...}}. Хвостовой refresh хаб добавит сам.\nПараметры по типам (необязательные — в [ ]):\n- ensure_issue: temp_key (new:<n>), issue_type (task|epic|bug), summary; [description, priority, duedate (YYYY-MM-DD), planned_start (YYYY-MM-DD), planned_end (YYYY-MM-DD), labels (список), epic_key (ключ или new:<n>), assignee (логин Jira)]\n- ensure_fields: key; [summary, description, priority, duedate (YYYY-MM-DD), planned_start (YYYY-MM-DD), planned_end (YYYY-MM-DD), epic_key (ключ или new:<n>), assignee (логин Jira), labels_add (список), labels_remove (список)] — хотя бы одно поле\n- ensure_comment: key, marker (метка в начале комментария), body\n- ensure_status: key, target (статус или список-путь)\n- ensure_link: source, target, link_type (логическое имя из link_types); [replace (true|false)]\n- ensure_sprint: key, sprint (имя спринта или backlog)\n- ensure_attachment: key, file (sha256 из POST /files; в MCP — path к локальному файлу), filename (имя вложения)\n- fetch_attachment: key, attachment_id (id вложения из issue (цифры))\n- refresh: —; [keys (список), jql] — keys или jql\nПроект: метку проекта сессии хаб дописывает в ensure_issue сам, метки других проектов запрещены, а команды над задачами вне проекта отклоняются; board_id для ensure_sprint выставляет хаб.\nensure_attachment из чата: вместо file передайте path — абсолютный путь к локальному файлу (до 10 МБ); MCP загрузит\nфайл в хаб и подставит file, filename по умолчанию — имя файла.",
"inputSchema": {
"properties": {
"commands": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Commands",
"type": "array"
},
"title": {
"title": "Title",
"type": "string"
}
},
"required": [
"title",
"commands"
],
"title": "batch_createArguments",
"type": "object"
},
"name": "batch_create"
},
{
"description": "Состояние пакета и его команд.",
"inputSchema": {
"properties": {
"id": {
"title": "Id",
"type": "integer"
}
},
"required": [
"id"
],
"title": "batch_statusArguments",
"type": "object"
},
"name": "batch_status"
},
{
"description": "Ждать завершения пакета (до 60 мин), вернуть итог по командам. Ожидание не блокирует event loop сервера.",
"inputSchema": {
"properties": {
"id": {
"title": "Id",
"type": "integer"
},
"timeout_minutes": {
"default": 10,
"title": "Timeout Minutes",
"type": "integer"
}
},
"required": [
"id"
],
"title": "batch_waitArguments",
"type": "object"
},
"name": "batch_wait"
},
{
"description": "Последние пакеты со статусом.",
"inputSchema": {
"properties": {
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
}
},
"title": "batchesArguments",
"type": "object"
},
"name": "batches"
},
{
"description": "Повторить команду — новый пакет с теми же параметрами.",
"inputSchema": {
"properties": {
"id": {
"title": "Id",
"type": "integer"
}
},
"required": [
"id"
],
"title": "command_retryArguments",
"type": "object"
},
"name": "command_retry"
},
{
"description": "Отменить пакет: команды в очереди отменяются; взятую агентом команду отмена не останавливает —\nв ответе подсказка (POST /commands/N/cancel с force).",
"inputSchema": {
"properties": {
"id": {
"title": "Id",
"type": "integer"
}
},
"required": [
"id"
],
"title": "batch_cancelArguments",
"type": "object"
},
"name": "batch_cancel"
},
{
"description": "Обновить зеркало из Jira: по ключам или полностью (базовая JQL). По умолчанию только ставит пакет;\nwait=true — дождаться результата (до 30 мин).",
"inputSchema": {
"properties": {
"full": {
"default": false,
"title": "Full",
"type": "boolean"
},
"keys": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Keys"
},
"wait": {
"default": false,
"title": "Wait",
"type": "boolean"
}
},
"title": "refreshArguments",
"type": "object"
},
"name": "refresh"
},
{
"description": "Агент: онлайн/офлайн, версия, текущая команда, 429 за сутки, команды без ответа, опубликованная версия,\nсостояние самообновления и запускатель.",
"inputSchema": {
"properties": {},
"title": "agent_statusArguments",
"type": "object"
},
"name": "agent_status"
},
{
"description": "Журнал обновлений зеркала.",
"inputSchema": {
"properties": {
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
}
},
"title": "sync_logArguments",
"type": "object"
},
"name": "sync_log"
},
{
"description": "Настройки хаба (все или одна по ключу).",
"inputSchema": {
"properties": {
"key": {
"default": "",
"title": "Key",
"type": "string"
}
},
"title": "settings_getArguments",
"type": "object"
},
"name": "settings_get"
},
{
"description": "Записать настройку: value — JSON. Поднимает settings_version.",
"inputSchema": {
"properties": {
"key": {
"title": "Key",
"type": "string"
},
"value": {
"title": "Value",
"type": "string"
}
},
"required": [
"key",
"value"
],
"title": "settings_setArguments",
"type": "object"
},
"name": "settings_set"
},
{
"description": "Проекты хаба: метка, название, доска, тип доски, число задач; текущий проект сессии отмечен.",
"inputSchema": {
"properties": {},
"title": "projectsArguments",
"type": "object"
},
"name": "projects"
},
{
"description": "Завести проект (метка Jira, название, необязательно id доски). Хаб ставит пакет обновления; в ответе — фрагмент\n.mcp.json для репозитория проекта.",
"inputSchema": {
"properties": {
"board_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Board Id"
},
"label": {
"title": "Label",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
}
},
"required": [
"label",
"name"
],
"title": "project_createArguments",
"type": "object"
},
"name": "project_create"
}
]