MCP server for searching and managing 1C platform help documentation with hybrid search (BM25 + semantic), API element discovery, and multi-version platform support
Server has 11 tools with mixed quality. Strengths: all tools have descriptions and input schemas are mostly present with type definitions. Weaknesses: descriptions are inconsistent in detail and usefulness; many parameters lack descriptions; no output schemas documented; error handling is present but generic; some tool names are ambiguous or combine multiple responsibilities. The server is in the 'Fair' range, noticeable gaps in schema completeness, parameter documentation, and error guidance. Tool naming follows verb_noun patterns (search_, get_, list_, manage_, index_) which is good. However, 'manage_platform_help' violates single-responsibility principle by handling 11+ different actions via a string parameter, forcing LLMs to reason about action names rather than selecting tools. Per-tool analysis shows tools 1-4 and 6-7 score 60-70 range (moderate quality), while tool 5 (manage_platform_help) and tools 8-11 score 50-65 (poor naming/schema clarity).
Получить полную информацию об API элементе платформы 1С с описанием, параметрами, примерами
Получить список свойств и методов для типа платформы 1С
Получает список всех проиндексированных версий платформы с показом доступных версий, проиндексированных версий и статистики
Получает информацию о конкретной версии платформы с доступностью файлов справки, статусом индексации и статистикой коллекции
Индексирует справку для указанной версии платформы 1С. Процесс включает: парсинг HBK файлов, построение BM25 корпуса, векторизацию текстов, сохранение в Qdrant
Получает список доступных версий платформы 1С с информацией об индексации
Tool 5 (manage_platform_help) and Tool 11 (manage_default_platform_version) combine multiple distinct operations into a single tool controlled by a string 'action' parameter without enum constraints. This forces LLMs to memorize action names and violates the single-responsibility principle.
No output schemas documented for any of the 11 tools. LLMs cannot plan downstream calls or extract data without knowing what fields are returned. This forces LLMs to infer output structure from experience or error.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 61 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 50 | - | v1 |
Управление версией платформы по умолчанию. Поддерживает действия: 'set' (установить версию), 'get' (получить текущую), 'clear' (очистить версию)
Унифицированный tool для всех операций с версиями платформы и индексами справки. Поддерживает действия: list, list_indexed, info, index, reindex, default_get, default_set, default_clear
Переиндексирует справку для указанной версии платформы. Если коллекция существует, она будет перезаписана при force=True
Поиск в справке 1С с поддержкой гибридного поиска (BM25 + семантический)
Поиск API элементов платформы 1С (функции, методы, свойства, типы, конструкторы) по имени. Сначала точное совпадение по имени, затем семантика с фильтром по имени/английскому имени.
Enum constraints are missing from multiple parameters where they should be explicit: search_1c_platform_api.element_type (should list: type, method, property, constructor, enum, function), get_1c_platform_type_members.member_type (property, method, both), manage_platform_help.action (11+ options undocumented), manage_default_platform_version.action (set, get, clear).
Many parameter descriptions are missing or minimal. Examples: get_1c_platform_element.element_id lacks description of expected format/source; get_1c_platform_type_members.member_type lacks enum documentation; manage_platform_help.show_indexed_only is boolean but its conditional behavior across different actions is unclear.
Tools returning formatted text strings (emoji + markdown) instead of structured JSON objects. Example: manage_default_platform_version returns '✅ Версия платформы по умолчанию установлена: 8.3.24...' instead of {"status": "success", "version": "8.3.24"}. LLMs cannot parse emoji and text formatting reliably.
Cross-tool dependencies are undocumented. Example: get_1c_platform_element requires element_id from search_1c_platform_api output, but this dependency is not stated in parameter descriptions. LLMs must infer tool chaining from context.
Parameter types are loosely specified. Multiple tools use plain 'string' for version (e.g., '8.3.24') without format constraints. Parameter descriptions mention format (e.g., 'например, 8.3.24') but schema does not enforce it. LLMs may pass '8.3' or '83' and cause failures.
Error responses return unstructured text with emoji and markdown. Error guidance is present in source code but not in tool descriptions. LLMs cannot reliably parse recovery instructions from formatted strings.
Destructive operations lack confirmation or dry-run patterns. reindex_platform_version is marked DESTRUCTIVE but provides no way to preview impact or confirm before deletion. Tool description warns about 'force=True' but no dry-run mode is offered.
Tool annotations are missing. No tools are marked with readOnlyHint, destructiveHint, or idempotentHint. This prevents LLM safety systems from classifying operations and applying appropriate guards.