Fast indexing and search for 1C:Enterprise source code
BSL Atlas
Публичный MCP-сервер для быстрой индексации и поиска по исходникам 1С. Работает с XML/BSL-выгрузкой конфигурации или расширения и отдает структурный и, при необходимости, семантический поиск для AI-ассистентов.
Что умеет
- искать функции, процедуры и модули через SQLite/FTS
- искать объекты метаданных, реквизиты и связи
- строить контекст по вызовам и структуре модулей
- работать в
fastрежиме без внешних embedding API - переиндексировать проект после новой выгрузки
Режимы
| Режим | Что дает | Что нужно |
|---|---|---|
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-4b - OpenRouter:
qwen/qwen3-embedding-4b - Ollama:
qwen3-embedding:4b
Tools (9)
search_functionFind a function or procedure by nameget_module_functionsGet a list of functions in a moduleget_function_contextGet the context of calls for a specific functionmetadatasearchSearch by metadata objectsget_object_detailsGet the structure of a metadata objectcodesearchPerform semantic code search (full mode only)helpsearchSearch by help/knowledge layer (full mode only)reindexReindex the project after changesstatsGet index statisticsEnvironment Variables
SOURCE_PATHrequiredPath to the 1C source code directoryINDEXING_MODErequiredIndexing mode: fast or fullConfiguration
{"mcpServers": {"bsl-atlas": {"type": "http", "url": "http://localhost:8000/mcp"}}}