MCP-сервер для многомерной аналитики в ФАП мощным инструментом query_data.
Server has 4 tools with basic schemas but significant quality gaps. Tool descriptions are present but minimal (10-80 chars, below the 50-200 char baseline for LLM optimization). Parameter descriptions exist but are sparse. No output schemas documented. Error handling is absent, no recovery guidance, no categorization, no actionable error messages. Tools lack idempotency hints and composition support. The query_data tool has a complex filters parameter accepting multiple types (object|array|string|null) without clear guidance on format or usage.
Список всех доступных источников данных
Измерения указанного источника
Меры указанного источника
Query multidimensional data with dimensions, measures, filters, and aggregation options
Tool descriptions are too brief (10-80 chars vs. 50-200 char baseline). 'Список всех доступных источников данных' (Russian, ~40 chars) lacks context for LLM selection. Descriptions should explain WHAT the tool does, WHEN to use it, and any prerequisites.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., source_id, dimension names) without knowing response structure. Every tool must document return types.
query_data filters parameter accepts union type (object|array|string|null) with no format guidance. LLMs cannot determine valid filter syntax. Should document expected structure: e.g., '{"field": "value"}' or '[{"field": "value"}]' with examples.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
No error handling or recovery guidance. Tools will fail silently or return raw HTTP errors. Implement error categorization (retryable vs. user-fixable) and actionable messages: 'Source not found. Call get_data_sources() to list available sources.'
No tool annotations (readOnlyHint, idempotentHint). All tools are READ_ONLY but this is not declared in the tool definition. Agents cannot distinguish safe-to-retry tools from destructive ones without explicit hints.