MCP Hub
Back to servers

BSL Atlas

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.

Stars
10
Updated
Feb 28, 2026
Validated
Mar 2, 2026

BSL Atlas

Docker Hub

MCP-сервер для 1С:Предприятие — векторный поиск, структурный индекс и граф вызовов в одном инструменте. Даёт AI-ассистентам мгновенный доступ к вашей конфигурации: находит функции, строит граф вызовов, ищет объекты метаданных и выполняет семантические запросы по BSL-коду — без чтения сырых файлов.

Что умеет

  • Структурный поиск (SQLite + FTS5, мгновенно): поиск функций по имени, список процедур модуля, граф вызовов (что вызывает что), поиск объектов метаданных (справочники, документы, регистры и др.)
  • Семантический поиск (ChromaDB, векторный): найти код по описанию — "как реализовано проведение", "где логируются ошибки"
  • Два слоя: SQLite пересобирается за секунды при старте; ChromaDB индексируется один раз в фоне через провайдер эмбеддингов на ваш выбор

Что нужно

  • Docker + Docker Compose
  • 1С:Предприятие 8.3 (Конфигуратор для выгрузки конфигурации)
  • API-ключ OpenRouter — openrouter.ai/keys

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

1. Выгрузить конфигурацию

В Конфигураторе: Конфигурация → Выгрузить конфигурацию в файлы

Укажите пустую папку, например C:\my-config\. После выгрузки появятся сотни XML-файлов и .bsl-модулей.

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
mv .env.example .env

Отредактировать .env:

SOURCE_PATH=C:\my-config     # папка с выгрузкой (содержит cf/)
OPENROUTER_API_KEY=sk-or-v1-...

3. Запустить

docker compose up -d

Образ скачается автоматически с Docker Hub (~500 МБ, один раз). SQLite проиндексируется сразу, ChromaDB векторизует в фоне — прогресс: http://localhost:8000/health.

4. Подключить к Claude

Claude Desktop — добавить в claude_desktop_config.json:

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

Расположение файла:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Claude Code — добавить в .mcp.json в корне проекта:

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

Инструменты MCP

Структурные (SQLite — мгновенно)

ИнструментЧто делает
search_function(name)Найти функцию/процедуру по имени во всех модулях
get_module_functions(path)Список всех процедур/функций модуля
get_function_context(name)Граф вызовов: что вызывает функция и кто вызывает её
metadatasearch(query)Полнотекстовый поиск по объектам метаданных
get_object_details(full_name)Реквизиты, табличные части, измерения регистра

Семантические (ChromaDB — векторный поиск)

ИнструментЧто делает
codesearch(query)Поиск кода по описанию на естественном языке
helpsearch(query)Поиск по проиндексированной справке
search_code_filtered(query, object_type)Векторный поиск с фильтром (например, только Документы)

Утилиты

ИнструментЧто делает
reindex(force_chromadb)Перестроить индексы после изменений конфигурации
stats()Статистика индекса: количество объектов, функций и др.

Настройка

Все параметры задаются через переменные окружения в .env.

Провайдеры эмбеддингов

Сервер использует три отдельных провайдера — можно комбинировать:

ПеременнаяИспользуется дляПо умолчанию
INDEXING_PROVIDERПервоначальное заполнение ChromaDB (один раз)openrouter
SEARCH_PROVIDERКаждый поисковый запросopenrouter
REINDEX_PROVIDERПереиндексация после изменений кодаopenrouter

Поддерживаемые значения: openrouter, openai, ollama, cohere, jina

Гибридная схема (рекомендуется если есть Ollama)

Если у вас запущен Ollama локально — поиск и переиндексация становятся бесплатными, облако используется только для первоначальной индексации:

INDEXING_PROVIDER=openrouter    # облако, быстро, параллельно — один раз
SEARCH_PROVIDER=ollama          # бесплатный локальный инференс для каждого запроса
REINDEX_PROVIDER=ollama         # бесплатный локальный инференс для переиндексации

OLLAMA_BASE_URL=http://host.docker.internal:11434
OLLAMA_MODEL=qwen3-embedding:8b  # лучшая модель для русского/BSL

qwen3-embedding:8b требует ~5 ГБ RAM. Скачать: ollama pull qwen3-embedding:8b

Модель OpenRouter

По умолчанию используется qwen/qwen3-embedding-8b — оптимизирована для русского языка и кириллического кода. Переопределить:

EMBEDDING_MODEL=openai/text-embedding-3-small

Параметры индексации

AUTO_INDEX=true              # пересобирать SQLite при каждом старте
CHROMADB_AUTO_INDEX=true     # векторизовать при первом запуске; после — false
EMBEDDING_CONCURRENCY=5      # параллельные запросы к API (5 — безопасно, 10 — быстрее)
EMBEDDING_BATCH_SIZE=10      # текстов в одном запросе к API

После первого запуска установите CHROMADB_AUTO_INDEX=false — векторный индекс сохраняется в папке chroma_db/ рядом с docker-compose.yml (или по пути CHROMA_PATH если задан в .env). При повторном запуске индекс загружается из этой папки — повторная векторизация не нужна.


Обновление индекса после изменений конфигурации

После повторной выгрузки конфигурации из 1С:

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

Или через MCP-инструмент: reindex(force_chromadb=True) для обновления векторов.


Структура директории с исходниками

Сервер ожидает выгрузку конфигурации по пути SOURCE_PATH. Ищет подпапку cf/:

SOURCE_PATH/
└── cf/
    ├── Catalogs/
    │   ├── Контрагенты.xml
    │   └── Контрагенты/Ext/ObjectModule.bsl
    ├── Documents/
    ├── CommonModules/
    └── ...

Это стандартный результат Конфигуратор → Выгрузить конфигурацию в файлы.


Health check

curl http://localhost:8000/health
{
  "status": "ok",
  "sqlite": {"objects": 345, "functions": 1240},
  "chromadb": {"indexed": 1240, "status": "ready"}
}

Лицензия

MIT

Reviews

No reviews yet

Sign in to write a review