Skip to main content
Glama

v8help

MCP-инструмент и CLI для чтения, индексации и поиска по файлам справки 1С:Предприятие (.hbk).

Извлекает HTML-страницы из V8-контейнера справки, конвертирует их в Markdown, строит полнотекстовый индекс (SQLite FTS5) и отдаёт поиск через MCP-сервер (stdio или streamable-http) или командную строку.

Возможности

  • Самодостаточная пересборка корпуса из .hbk одной командой build (распаковка → консолидация → индексация).

  • Чтение контейнеров Format15 с корректным парсингом TOC (включая свободные блоки, которые ломают штатный onec_dtools.read_entries).

  • Единый конвертер HTML → Markdown: заголовки по V8SH_pagetitle (синтакс- помощник), имена по пути архива (язык запросов и др.), переписывание ссылок v8help://... в относительные .md.

  • Полнотекстовый поиск FTS5 с лексическим расширением (разбиение PascalCase-идентификаторов, например СтрНайтиПоРегулярномуВыражению).

  • Ранжирование FTS с весами полей title/description/body (9/3/1): совпадение в заголовке или в секции «Описание» метода весомее совпадения в теле.

  • Чанкование длинных статей (настраиваемые chunk_size/chunk_overlap) с метаданными чанка (родитель, соседние чанки) — единицы поиска и чтения.

  • Векторный и гибридный поиск (FTS + эмбеддинги, RRF-фьюжн) через OpenAI-совместимый API эмбеддингов (LM Studio, Ollama, Hugging Face).

  • Асинхронная сборка через MCP: build возвращает job_id сразу, прогресс — через build_status; поиск при этом не блокируется (атомарная подмена БД).

  • Автодискавери: каталог bin платформы (реестр Uninstall/ФС), установленный 1C:EDT и доступные эмбеддеры на localhost-портах; настройка через MCP (config_get/config_set).

  • Справка по командной строке 1C:EDT: если найден 1cedtcli, сборка добавляет статьи по режимам запуска, всем командам и кодам возврата (префикс edtcli__, раздел edt).

Related MCP server: onec-meta-mcp

Требования

  • Python 3.11+

  • Установленная платформа 1С:Предприятие (каталог bin с .hbk-файлами) — нужна только для пересборки индекса; для поиска достаточно готовой БД (см. «Готовые индексы»).

  • (опционально) эмбеддер для векторного поиска — LM Studio, Ollama или Hugging Face.

Установка

Локальная установка

python -m venv .venv
.venv\Scripts\activate        # Windows
pip install -e .

Установка регистрирует два консольных скрипта: v8help (CLI) и v8help-mcp (MCP-сервер).

Установка в Docker

Готовый контейнер с HTTP-интерфейсом (streamable-http), БД на volume и опциональной авто-загрузкой индекса — см. Запуск в Docker.

Быстрый старт

copy v8help.example.toml v8help.toml    # Windows (Linux/macOS: cp)
# укажите bin_dir своей платформы в v8help.toml
v8help build                            # собрать индекс (несколько минут)
v8help search "регулярному"             # поиск

Для векторного/гибридного поиска настройте эмбеддер (см. Эмбеддинги).

Документация

Лицензия

MIT — см. LICENSE.

Благодарности

Конвертер HTML → Markdown портирован из hbk-to-md.

Available Tools

9 tools
buildBuildA

Пересобрать индекс: распаковка .hbk -> консолидация md-корпуса -> индексация.

Выполняется асинхронно: возвращает job_id сразу, результат и прогресс — через build_status. Может занять минуты.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoЯзык: ru/en (по умолчанию из конфига).
forceNoПересобрать даже если индекс актуален.
cleanupNoУдалить corpus после индексации.
sourcesNoИсточники для сборки (по умолчанию все из конфига).
chunk_sizeNoЦелевой размер чанка в символах (по умолчанию 1500).
chunk_overlapNoПерекрытие соседних чанков в символах (по умолчанию 200).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose key behavior: asynchronous execution, immediate job_id return, progress/result via build_status, and possible multi-minute duration. It omits the destructive/overwrite nature of a rebuild and any resource or concurrency constraints, which is a notable gap for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the pipeline, then the async contract and duration. Every sentence earns its place and there is no repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an async pipeline tool with an output schema covering the job_id return, the description supplies the essential execution model, timing, and status-routing. It would be fully complete with a note on overwriting the existing index and any permission requirements, but the core is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters (lang, force, cleanup, sources, chunk_size, chunk_overlap) are documented in the input schema. The description adds no parameter-level detail, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('rebuild the index') and even itemizes the pipeline stages (.hbk unpack -> md-corpus consolidation -> indexing). It is clear what the tool does, though it never states what it is not for relative to siblings like search or discover.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies the tool is used to (re)build the index and explicitly routes status/progress checks to the sibling build_status. However, it never states when a rebuild is warranted versus alternatives, nor when not to use it, leaving selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_statusBuild StatusA

Статус асинхронной сборки по job_id (running/done/error + прогресс).

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesИдентификатор job из build.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that the operation is async and that the result surface includes running/done/error plus progress, but it says nothing about permissions, whether state is retained after completion, or timeout/expiry behavior for job_ids.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence that front-loads the operation, the input (job_id), and the observable outcomes. Nothing is redundant and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, non-nested status tool with an output schema present, the description covers what is needed to invoke it and even previews the state values. Minor gaps in workflow placement (when/how often to poll) keep it from a 5, but the return format does not need explaining given the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single job_id parameter is documented as the identifier coming from 'build'. The description adds no format, length, or lifecycle detail beyond that, so it neither compensates for nor extends the schema — the baseline 3 for high coverage applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: it returns the status of an asynchronous build identified by job_id, and even enumerates the possible result states (running/done/error + progress). This clearly distinguishes it from the sibling 'build' tool that presumably initiates the job, though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the word 'асинхронной' (asynchronous) and the required job_id signal that this is a polling tool used after a build has been started, but there is no explicit when-to-use statement, no guidance on polling cadence, and no named alternative. A caller must infer the workflow from the tool name and siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

config_getConfig GetB

Текущие настройки (эффективный конфиг): эмбеддер, search.backend, bin_dir, книги.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It does add one meaningful trait beyond the schema: that this is the *effective* (merged/computed) configuration rather than raw stored values. However, it says nothing about permissions, side effects, or freshness/caching behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no waste, front-loading the purpose and then listing the covered fields. It is a fragment rather than a sentence, but every token earns its place for a zero-argument getter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained in prose, and for a zero-param read tool the description is nearly sufficient. The only real gap is that key fields are listed redundantly rather than using that space for usage context or the relationship to config_set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4. The description adds no parameter meaning, but there is nothing for it to clarify on that dimension.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: it returns the current (effective) settings and enumerates the key sections covered (embedder, search.backend, bin_dir, books). An agent can tell it is a read-only config reader, but it does not explicitly name the sibling config_set as its write counterpart, so it is clear without full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, and no alternative is named even though config_set sits in the sibling list as the obvious counterpart. The read-vs-write intent is only implied by the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

config_setConfig SetA

Изменить настройки и сохранить в v8help.toml (атомарно).

Ключи: search.backend (fts|hybrid|vectors), search.limit, search.max_chunks_per_page, build.cleanup, build.chunk_size, build.chunk_overlap, embedder.index/query.{model,base_url,api_key,dims, batch_size,embed_chars,threads}, bin_dir, lang, books.

ParametersJSON Schema
NameRequiredDescriptionDefault
valuesYesПлоские ключи -> значения.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it does disclose one important trait: the write to v8help.toml is atomic. However it omits mutation semantics that matter here, e.g. whether supplied values merge with existing config or replace it, and whether invalid keys are rejected or silently ignored.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely tight: the mutating action and its atomic persistence are front-loaded in the first clause, followed by a compact key reference list that earns its length by documenting valid configuration keys. No filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema covers return values and the parameter is documented, so those needs are met. As a mutation tool with zero annotations, though, the description should say whether updates are partial/merge-style, whether invalid keys error, and whether a restart is needed for changes to take effect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the single 'values' object parameter is already documented, but the description goes beyond the schema by enumerating the recognized keys and giving an enum for one of them (search.backend: fts|hybrid|vectors). That compensates for the schema's permissive additionalProperties, which otherwise gives no key validation guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Изменить настройки' / change settings) and adds the persistence target ('сохранить в v8help.toml, атомарно'), so an agent knows exactly what the tool mutates. It does not explicitly name the read counterpart (config_get) as the sibling it is not, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the verb 'change settings'; there is no statement of when to use this versus config_get or config_get-style reads, nor any prerequisites or warnings. The agent can infer it is the write path for configuration, but nothing is made explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discoverDiscoverB

Показать конфиг и автодискавери.

Каталог bin установленной платформы 1С (реестр Uninstall/ФС), установка 1C:EDT CLI (1cedtcli), доступные эмбеддеры на localhost-портах (LM Studio/Ollama) и состояние индекса.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It implies a read-only reconnaissance operation by listing what it 'shows,' but never states side-effect behavior or prerequisites. The presence of an output schema partly compensates by documenting return values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first clause, followed by a tight enumerated list of discovered items. It is appropriately sized for a no-argument tool with no redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter discovery tool with an output schema, the description adequately covers what will be surfaced (tools/embedders/index state), and the output schema covers the exact return shape. The only gap is the absence of explicit read-only/behavioral framing in the face of missing annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline is 4. No parameter semantics are fabricated or misrepresented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a concrete verb ('Показать') and enumerates the specific resources discovered: the 1C platform bin catalog, 1C:EDT CLI install, embedders on localhost ports (LM Studio/Ollama), and index state. It is far more specific than a tautology, though it does not explicitly differentiate itself from the closest sibling config_get.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance and no mention of alternatives among siblings like config_get or config_set. The 'autodiscovery' framing implies it is an environment-reconnaissance/setup step, but the agent must infer this rather than being told.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pageGet PageA

Полный текст страницы справки по идентификатору (filename без .md или числовой id).

id может быть строкой (одна страница) или массивом строк (несколько страниц одним вызовом, 2-10 статей, пока суммарно не превышено max_chars). Длинные статьи (>4000 символов) целиком НЕ возвращаются: отдаётся список чанков и первый чанк; конкретный чанк читается через chunk=N.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesСтраница или список страниц.
chunkNoНомер чанка (0-based) для чтения части длинной статьи.
max_charsNoЛимит суммарного размера ответа (для массива id).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that long articles (>4000 chars) are truncated to a chunk list plus first chunk, that chunk=N retrieves a specific part, and that array batching is capped at 2-10 articles / max_chars. It omits auth requirements and not-found behavior, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then the id-form and truncation rules in two tight sentences. Every clause conveys a distinct behavioral fact with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value documentation is unnecessary. Given the three-parameter tool with batching and chunking complexity, the description covers the important behaviors; only edge cases (missing id, chunk out of range) are left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description genuinely adds meaning beyond the terse schema text: id as string vs array with the 2-10 batching limit, max_chars as an aggregate response cap for arrays, and chunk as the mechanism for reading truncated long articles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: retrieve the full text of a help page identified by filename (without .md) or numeric id. Purpose is unambiguous, but it never distinguishes itself from siblings like search, related, or discover, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: use it once you already have an id. It gives mechanics (batching, chunking) but no guidance on when to prefer this over search or related for locating content, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hierarchyHierarchyA

Оглавление: без section — сводка по разделам; с section — группы страниц раздела.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNoРаздел для детализации (objects/tables/lang/query/clang/platform/edt).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses two distinct behaviors: a section-level summary when section is omitted, and page groups when section is supplied. This is useful, but it omits safety context (e.g., read-only nature) and any operational details like pagination or limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that begins with the resource name and then contrasts the two parameter states. Every clause earns its place, with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one optional parameter, a complete schema description, and an output schema, the description is largely complete because it clarifies both usage modes and the effect of the parameter. The only minor gap is absence of guidance on when to prefer this tool over its siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by explaining the concrete effect of supplying or omitting the section parameter: it changes the output from a section summary to page groups for the chosen section.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource (table of contents / hierarchy) and distinguishes two modes based on the optional section parameter, so an agent can tell what the tool returns. However, it does not name or contrast with sibling tools like config_get or discover, leaving sibling differentiation implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what happens with and without the section parameter but gives no guidance on when to choose this tool over alternatives such as config_get or search. There are no prerequisites, exclusions, or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv0.14.0
    • Changedbuild27 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / chunk_overlap / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / chunk_overlap / default
        Added value: +null
      • changedInput schema / properties / chunk_overlap / description
        Previous value: -"Перекрытие соседних чанков в символах (по умолчанию 200)"New value: +"Перекрытие соседних чанков в символах (по умолчанию 200)."
      • removedInput schema / properties / chunk_overlap / type
        Removed value: -"integer"
      • addedInput schema / properties / chunk_size / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / chunk_size / default
        Added value: +null
      • changedInput schema / properties / chunk_size / description
        Previous value: -"Целевой размер чанка в символах (по умолчанию 1500)"New value: +"Целевой размер чанка в символах (по умолчанию 1500)."
      • removedInput schema / properties / chunk_size / type
        Removed value: -"integer"
      • addedInput schema / properties / cleanup / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / cleanup / default
        Added value: +null
      • changedInput schema / properties / cleanup / description
        Previous value: -"Удалить corpus после индексации"New value: +"Удалить corpus после индексации."
      • removedInput schema / properties / cleanup / type
        Removed value: -"boolean"
      • addedInput schema / properties / force / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / force / default
        Added value: +null
      • changedInput schema / properties / force / description
        Previous value: -"Пересобрать даже если индекс актуален"New value: +"Пересобрать даже если индекс актуален."
      • removedInput schema / properties / force / type
        Removed value: -"boolean"
      • addedInput schema / properties / lang / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / lang / default
        Added value: +null
      • changedInput schema / properties / lang / description
        Previous value: -"Язык: ru/en (по умолчанию из конфига)"New value: +"Язык: ru/en (по умолчанию из конфига)."
      • removedInput schema / properties / lang / type
        Removed value: -"string"
      • addedInput schema / properties / sources / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / sources / default
        Added value: +null
      • changedInput schema / properties / sources / description
        Previous value: -"Источники для сборки (по умолчанию все из конфига)"New value: +"Источники для сборки (по умолчанию все из конфига)."
      • removedInput schema / properties / sources / items
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / sources / type
        Removed value: -"array"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "type": "object"
        +}
    • Changedbuild_status3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / job_id / description
        Previous value: -"Идентификатор job из build"New value: +"Идентификатор job из build."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "type": "object"
        +}
    • Changedconfig_get2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "type": "object"
        +}
    • Changedconfig_set4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / values / additionalProperties
        Added value: +true
      • changedInput schema / properties / values / description
        Previous value: -"Плоские ключи -> значения"New value: +"Плоские ключи -> значения."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "type": "object"
        +}
    • Changeddiscover2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "type": "object"
        +}
    • Changedget_page13 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / chunk / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / chunk / default
        Added value: +null
      • changedInput schema / properties / chunk / description
        Previous value: -"Номер чанка (0-based) для чтения части длинной статьи"New value: +"Номер чанка (0-based) для чтения части длинной статьи."
      • removedInput schema / properties / chunk / type
        Removed value: -"integer"
      • addedInput schema / properties / id / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / id / description
        Previous value: -"Страница или список страниц"New value: +"Страница или список страниц."
      • removedInput schema / properties / id / oneOf
        Removed value: -[
        -  {
        -    "description": "Идентификатор страницы",
        -    "type": "string"
        -  },
        -  {
        -    "description": "Несколько идентификаторов страниц",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  }
        -]
      • addedInput schema / properties / max_chars / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / max_chars / default
        Added value: +null
      • changedInput schema / properties / max_chars / description
        Previous value: -"Лимит суммарного размера ответа (для массива id)"New value: +"Лимит суммарного размера ответа (для массива id)."
      • removedInput schema / properties / max_chars / type
        Removed value: -"integer"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "type": "object"
        +}
    • Changedhierarchy6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / section / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / section / default
        Added value: +null
      • changedInput schema / properties / section / description
        Previous value: -"Раздел для детализации"New value: +"Раздел для детализации (objects/tables/lang/query/clang/platform/edt)."
      • removedInput schema / properties / section / type
        Removed value: -"string"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "type": "object"
        +}
    • Changedrelated3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / id / description
        Previous value: -"Идентификатор страницы"New value: +"Идентификатор страницы (filename или числовой id)."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "type": "object"
        +}
    • Changedsearch15 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / kind / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / kind / default
        Added value: +null
      • changedInput schema / properties / kind / description
        Previous value: -"Фильтр по kind: page/member/index"New value: +"Фильтр по kind: page/member/index."
      • removedInput schema / properties / kind / type
        Removed value: -"string"
      • addedInput schema / properties / limit / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / limit / default
        Added value: +null
      • changedInput schema / properties / limit / description
        Previous value: -"Максимум результатов"New value: +"Максимум результатов."
      • removedInput schema / properties / limit / type
        Removed value: -"integer"
      • changedInput schema / properties / query / description
        Previous value: -"Поисковый запрос"New value: +"Поисковый запрос."
      • addedInput schema / properties / section / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / section / default
        Added value: +null
      • changedInput schema / properties / section / description
        Previous value: -"Фильтр по разделу: objects/tables/lang/query/clang"New value: +"Фильтр по разделу: objects/tables/lang/query/clang/platform/edt."
      • removedInput schema / properties / section / type
        Removed value: -"string"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "type": "object"
        +}
  2. 9 tool updatesv0.10.0
    • First observedbuild
    • First observedbuild_status
    • First observedconfig_get
    • First observedconfig_set
    • First observeddiscover
    • First observedget_page
    • First observedhierarchy
    • First observedrelated
    • First observedsearch

TDQS

A3.5/5.0

Scored across 9 tools

Disambiguation4/5

Most tools have clearly distinct purposes: search finds pages, get_page retrieves full text, related handles links, hierarchy provides the TOC, and build/build_status form a trigger/check pair. The only real overlap is config_get vs discover, since both surface current configuration (discover additionally does autodiscovery), which could cause occasional misselection.

Naming Consistency3/5

Naming mixes single-word noun/verb tools (search, related, hierarchy, build, discover) with verb_noun patterns (get_page, build_status) and noun_verb patterns (config_get, config_set). The ordering of config_get/config_set (noun_verb) conflicts with build_status (verb_noun), so conventions are readable but not fully predictable.

Tool Count5/5

Nine tools is well-scoped for a documentation search/index server. Each tool covers a distinct operation (search, retrieval, related links, TOC, build lifecycle, config) with no obvious redundancy beyond the minor config overlap.

Completeness4/5

The surface covers the full lifecycle: discovery, config get/set, index building with async status, search, page retrieval with chunking, related links, and hierarchy browsing. Minor gaps exist (e.g., no direct way to enumerate books or list all pages), but core retrieval workflows are complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server for 1C:Enterprise that provides AI assistants with access to configuration data via vector search, structural indexing, and call graphs. It enables semantic code queries and rapid metadata object lookups without requiring the direct reading of raw files.
    78
    AGPL 3.0
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server for searching and analyzing 1C enterprise metadata and BSL code using a SQLite backend. Enables querying configuration structure, code routines, and performing compliance checks via natural language.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for RAG-based search over 1C Enterprise configuration documentation, enabling natural language queries to find objects like справочники, документы, and отчеты.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for 1C:Enterprise that provides precise syntax reference cards (call signatures, parameters, return types, examples) by element name and lists object members. It helps AI agents answer 1C development questions using the official Russian help book.
    MIT