Server has 10 tools with explicit Zod schemas and descriptions. Strengths: all tools follow verb_noun naming (moysklad_get_*, moysklad_create_*), all parameters have type definitions and descriptions, pagination is implemented via limit/offset. Weaknesses: descriptions are in Russian and generic (50-100 chars, below the 194-char baseline), output schemas are not documented in the source, error handling is minimal with no recovery guidance, and no tool annotations (readOnlyHint/destructiveHint). The create_order tool mixes array items with inline properties (positions array with object properties) which is correctly structured in Zod but output formatting is undefined. No evidence of parameter validation beyond type checking or caller identity verification.
Создать новый заказ покупателя в МойСклад
Получить список контрагентов с возможностью поиска по имени, ИНН, телефону
Получить детальную информацию о контрагенте по ID
Получить сводку показателей: продажи, заказы, деньги за сегодня
Получить детальную информацию о заказе с позициями по ID
Получить список заказов покупателей с фильтрацией по дате, контрагенту, статусу
Получить детальную информацию о товаре по ID
Tool descriptions are uniformly generic and under 100 characters (baseline: 194 chars). They state WHAT the tool does but omit WHEN to use it, prerequisites, or dependencies. Example: 'Получить детальную информацию о товаре по ID' (40 chars) lacks context for LLM selection vs. moysklad_get_products. This violates the pattern:tool-description requirement.
No output schema documentation. The source code shows tools return ToolResult<T> with success boolean and optional data field, but the T type and expected fields are never specified. LLMs cannot plan downstream tool calls or extract data without knowing response structure. This violates pattern:tool schema requirements.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 50 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 45 | - | v1 |
Получить список товаров из МойСклад с возможностью фильтрации и поиска
Получить остатки товаров по всем складам
Получить остатки товаров по конкретному складу
No error recovery guidance. The catch handler in server.ts returns generic error messages ('Ошибка выполнения: {message}') with no actionable hints. Per pattern:recovery-guide, errors must guide the LLM: 'Item not found. Try calling search_* first' or 'Invalid ID format. Use UUID (e.g., 12345678-1234-5678-1234-567890abcdef)'. Current error handling gives agents nothing to do next.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). moysklad_create_order performs a WRITE operation but carries no destructiveHint annotation. Without this, agents cannot reason about side effects, retryability, or confirmation requirements. Per the 2026-07-28 spec, all tools should declare their safety profile.
Missing parameter validation. Parameters like 'id' are declared as strings but no format constraint is enforced. The description says 'ID товара (UUID)' but the code does not validate UUID format at tool invocation. Invalid UUIDs will be passed to the API, causing 400s with no actionable error message to the LLM. Per review:param-validation-rules, constraints must be enforced early.
create_order has a complex nested structure (positions array with object properties). The schema is valid Zod but the response format when items fail partially is undefined. Per pattern:response-shaper, multi-item operations should return per-item success/failure status, not blanket pass/fail.
No confirmation pattern for irreversible operations. moysklad_create_order modifies state without a dry-run or confirmation step. Per pattern:confirmation-request, destructive tools should support 'confirm_before_execute' to prevent agent mistakes from causing real data changes.
Tool descriptions are in Russian, not English. While technically valid, this creates friction for English-speaking developers, LLM training data dominance in English, and cross-cultural tool discovery. Descriptions should be in English for universal tooling adoption.