Skip to main content
Glama

BSL Atlas

Docker Hub

Публичный MCP-сервер для быстрой индексации и поиска по исходникам 1С. Работает с XML/BSL-выгрузкой конфигурации или расширения и отдает структурный и, при необходимости, семантический поиск для AI-ассистентов.

Что умеет

  • искать функции, процедуры и модули через SQLite/FTS

  • искать объекты метаданных, реквизиты и связи

  • строить контекст по вызовам и структуре модулей

  • работать в fast режиме без внешних embedding API

  • переиндексировать проект после новой выгрузки

Related MCP server: onec-meta-mcp

Режимы

Режим

Что дает

Что нужно

fast

быстрый структурный поиск

Docker и выгруженные исходники 1С

full

структурный + семантический поиск

Docker, исходники и embedding backend/API key

fast — основной и рекомендуемый стартовый режим.

Важно: mount исходников обязателен

Если вы запускаете bsl-atlas в Docker, контейнер обязан видеть реальные исходники проекта через bind mount SOURCE_PATH -> /data/source.

  • SOURCE_PATH нужен для индексации файлов

  • если bind mount настроен неверно, /data/source внутри контейнера может существовать, но будет пустым

  • в этом случае Atlas честно сообщит, что каталог исходников пустой

Это отдельная тема от RLM: Atlas читает файлы проекта напрямую, поэтому без source mount индексировать нечего.

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

1. Выгрузите исходники 1С

В конфигураторе используйте Конфигурация -> Выгрузить конфигурацию в файлы и укажите пустой каталог.

2. Скачайте конфиги

curl -O https://raw.githubusercontent.com/Arman-Kudaibergenov/bsl-atlas/master/docker-compose.yml
curl -O https://raw.githubusercontent.com/Arman-Kudaibergenov/bsl-atlas/master/.env.example
cp .env.example .env

3. Заполните .env

SOURCE_PATH=C:\bsl-src
INDEXING_MODE=fast

Для full режима дополнительно укажите embedding provider и нужные ключи.

4. Запустите контейнер

docker compose up -d

5. Подключите MCP в Claude

Добавьте в claude_desktop_config.json или в .mcp.json проекта:

{
  "mcpServers": {
    "bsl-atlas": {
      "type": "http",
      "url": "http://localhost:8000/mcp"
    }
  }
}

Windows: что важно

Docker Desktop на Windows часто ломается на путях с пробелами или кириллицей. Если реальный путь выглядит как C:\1С\Выгрузки\МояКонфигурация, лучше сначала сделать ASCII-алиас.

cmd /c mklink /D C:\bsl-src "C:\1С\Выгрузки\МояКонфигурация"

После этого в .env используйте:

SOURCE_PATH=C:\bsl-src

Если Atlas пишет, что SOURCE_PATH пустой, проблема почти всегда в bind mount, а не в самом приложении.

Поддерживаемые структуры

Каталог исходников может выглядеть так:

SOURCE_PATH/
  cf/
    Catalogs/
    Documents/
    CommonModules/

или так:

SOURCE_PATH/
  Catalogs/
  Documents/
  CommonModules/

или так:

SOURCE_PATH/
  cfe/
    MyExtension/
      Catalogs/
      CommonModules/

Основные инструменты

  • search_function(name) — найти функцию или процедуру по имени

  • get_module_functions(path) — список функций модуля

  • get_function_context(name) — контекст вызовов

  • metadatasearch(query) — поиск по объектам метаданных

  • get_object_details(full_name) — структура объекта

  • codesearch(query) — семантический поиск в full режиме

  • helpsearch(query) — поиск по help/knowledge слою в full режиме

  • reindex(force_chromadb) — переиндексация после изменений

  • stats() — статистика индекса

Переиндексация

После новой выгрузки исходников:

curl -X POST http://localhost:8000/reindex

Embedding defaults

  • рекомендуемое семейство: qwen3-embedding-8b

  • OpenRouter: qwen/qwen3-embedding-8b

  • Ollama: qwen3-embedding:8b

LLM-стикеры функций

Стикер — короткое русское описание назначения BSL-функции: что она делает, что возвращает и какой имеет побочный эффект. Он помогает найти функцию по смыслу, когда точное имя неизвестно. Стикеры хранятся в symbols.doc_generated и добавляются к карточке функции при следующей векторной индексации.

Генерировать стикеры стоит только для функций без хорошего //-комментария: экспортных методов, обработчиков, точек входа и центральных узлов графа. Формы и очевидные вспомогательные функции обычно не окупают стоимость генерации.

Пример генерации через Claude Haiku

Актуальный закреплённый ID модели — claude-haiku-4-5-20251001.

import json
import os

from anthropic import Anthropic

client = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
function = {
    "id": 42,
    "name": "ОбработкаПроведения",
    "module": "Документы/ЗаказКлиента/Ext/ObjectModule.bsl",
    "signature": "Процедура ОбработкаПроведения(Отказ, РежимПроведения)",
    "body": "Движения.Взаиморасчеты.Записать();",
}

response = client.messages.create(
    model="claude-haiku-4-5-20251001",
    temperature=0,
    max_tokens=200,
    system=(
        "Создай один русский стикер для поиска по BSL-коду. "
        "Укажи назначение, возвращаемое значение и побочный эффект, если они видны. "
        "Не выдумывай объекты и бизнес-смысл. Не более 160 символов. "
        "Верни только JSON: {\"id\": число, \"description\": \"текст\"}."
    ),
    messages=[{
        "role": "user",
        "content": json.dumps(function, ensure_ascii=False),
    }],
)
print(response.content[0].text)

Ожидаемый результат:

{"id": 42, "description": "Проводит заказ клиента и записывает движения по взаиморасчётам."}

Для массовой генерации используйте Anthropic Message Batches: пакетный API дешевле обычных синхронных запросов. Сохраняйте результат как JSON {symbol_id: description}:

{"42": "Проводит заказ клиента и записывает движения по взаиморасчётам."}

Импорт:

python scripts/import_generated_docs.py descriptions.json --db data/bsl_index.db

После импорта выполните reindex_changed, чтобы обновить векторы затронутых модулей. Скрипт не принимает и не хранит токены LLM.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that transforms codebases into intelligent, queryable knowledge bases, enabling AI assistants to perform semantic search, explore architecture, and analyze code relationships.
    167
    -
  • 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