MCP batch_create: параметры команд в описании и в ошибке 422 #44

Closed
opened 2026-10-15 19:22:47 +03:00 by aep · 1 comment
Owner

Проблема

Описание MCP-инструмента batch_create (src/jira_hub/mcp_server.py:166) говорит только «params по контракту specs/commands». Клиент MCP этот файл не видит и угадывает имена параметров.

Случай 15.10.2026: перевод AURORA-1527 в «Ожидание разработки» — ensure_status {key, status} → 422 bad_batch: команда 1 (ensure_status): нет target. Со второй попытки прошло с target, но правильное имя пришлось угадывать: ошибка называет только недостающее поле и не говорит, какие поля ожидаются.

Что сделать (bounded)

  1. Описание batch_create: перечислить параметры каждого типа команды (обязательные и необязательные), например ensure_status {key, target}, ensure_sprint {key, sprint — имя или backlog}, ensure_fields {key, duedate YYYY-MM-DD, …}. Источник — SPEC в commands.py (required / optional), чтобы описание не расходилось с валидацией: собрать текст из SPEC, а не дублировать руками.
  2. Сообщения 422 в commands.validate (нет …, лишние параметры …): добавлять ожидаемый набор, например команда 1 (ensure_status): нет target; ожидаются key, target. Тогда клиент с устаревшим описанием исправит пакет с одной попытки.

Готово, когда

  • описание batch_create в MCP содержит параметры всех типов команд, тест сверяет его с SPEC;
  • ошибки «нет …» и «лишние параметры …» называют ожидаемые параметры, тесты на оба случая;
  • make check зелёный.
## Проблема Описание MCP-инструмента `batch_create` (`src/jira_hub/mcp_server.py:166`) говорит только «params по контракту specs/commands». Клиент MCP этот файл не видит и угадывает имена параметров. Случай 15.10.2026: перевод AURORA-1527 в «Ожидание разработки» — `ensure_status {key, status}` → `422 bad_batch: команда 1 (ensure_status): нет target`. Со второй попытки прошло с `target`, но правильное имя пришлось угадывать: ошибка называет только недостающее поле и не говорит, какие поля ожидаются. ## Что сделать (bounded) 1. **Описание `batch_create`**: перечислить параметры каждого типа команды (обязательные и необязательные), например `ensure_status {key, target}`, `ensure_sprint {key, sprint — имя или backlog}`, `ensure_fields {key, duedate YYYY-MM-DD, …}`. Источник — `SPEC` в `commands.py` (`required` / `optional`), чтобы описание не расходилось с валидацией: собрать текст из `SPEC`, а не дублировать руками. 2. **Сообщения 422 в `commands.validate`** (`нет …`, `лишние параметры …`): добавлять ожидаемый набор, например `команда 1 (ensure_status): нет target; ожидаются key, target`. Тогда клиент с устаревшим описанием исправит пакет с одной попытки. ## Готово, когда - описание `batch_create` в MCP содержит параметры всех типов команд, тест сверяет его с `SPEC`; - ошибки «нет …» и «лишние параметры …» называют ожидаемые параметры, тесты на оба случая; - `make check` зелёный.
aep closed this issue 2026-10-15 22:16:52 +03:00
Author
Owner

Сделано в PR #45 (merge 68de173, коммит 1a66aea). Отложенный рулинг R-1 — в follow-up issue.

Сделано в PR #45 (merge 68de173, коммит 1a66aea). Отложенный рулинг R-1 — в follow-up issue.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: aep/sdlc-hub#44
No description provided.