Server has 9 tools with complete Zod schemas and descriptions in Russian. All tools are properly registered with input schemas visible in src/tools/*.ts. However, descriptions are minimal (10-50 chars), lack actionable context for LLM selection, and do not explain when to use each tool vs. alternatives. Parameters have types and descriptions but lack constraints (enums, ranges, patterns). Output schemas are not documented, responses are JSON stringified but structure is opaque to the LLM. Error handling is absent; no recovery guidance. Naming is clear (verb_noun pattern) but generic descriptions undermine discoverability. No tool annotations (readOnlyHint/destructiveHint) despite clear read/write distinction.
Добавить комментарий к элементу приложения ELMA365.
Создать новый элемент в приложении ELMA365.
Получить список элементов приложения ELMA365 по namespace и code.
Получить комментарии к элементу приложения ELMA365.
Получить список бизнес-процессов ELMA365.
Получить список BPM-задач ELMA365.
Получить пользователя ELMA365 по ID.
Descriptions are too brief (10-50 chars) and lack actionable context. E.g., 'Получить список элементов приложения ELMA365 по namespace и code' does not explain when to call get_app_items vs. get_tasks, what fields are returned, or pagination behavior. LLMs cannot reliably select the right tool.
Output schemas are not documented. Tools return JSON.stringify(result) but the LLM does not know what fields to expect (e.g., does get_app_items return {items: [], total: 0} or {data: []}?). This forces the LLM to guess field names for downstream tool calls.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Получить список пользователей ELMA365.
Запустить бизнес-процесс ELMA365 по коду.
No error handling or recovery guidance. If elmaRequest() fails (network error, invalid token, 404), the LLM receives a raw error with no actionable next step. E.g., 'ELMA365_TOKEN not set' should suggest 'Configure ELMA365_TOKEN in .mcp.json'.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). create_item, start_process, and add_comment are destructive writes but are not marked as such. LLMs cannot distinguish safe reads from risky mutations without explicit hints.
Parameters lack constraints. 'from' and 'size' accept any number but should have min/max bounds (e.g., size: 1 - 100). 'data' in create_item is an unconstrained object, no schema for required fields or field types. This invites invalid API calls.