Arman-Kudaibergenov

BSL Atlas

Updated

MCP-сервер для 1С/BSL: векторный поиск, структурный индекс, граф вызовов

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

MCP Server · Populars

MCP Server · New

    mnemox-ai

    idea-reality-mcp

    Pre-build reality check for AI coding agents. Scans GitHub, HN, npm, PyPI & Product Hunt — returns a 0-100 reality signal. MCP tool. Try: mnemox.ai/check

    Community mnemox-ai
    sveltejs

    @sveltejs/mcp

    The official svelte MCP for all your agentic needs.

    Community sveltejs
    boltmcp

    BoltMCP

    MCP Server

    Community boltmcp
    6551Team

    opentwitter-mcp

    Twitter/X Data · User Profiles · Tweet Search · Follower Events · KOL Tracking

    Community 6551Team
    ZeroPointRepo

    YouTube Skills for AI Agents 🎬

    YouTube Transcript API skills for AI agents. Get transcripts, search videos, browse channels. Works with OpenClaw, ClawdBot, Claude Code, Cursor, Windsurf.

    Community ZeroPointRepo