About Bsl MCP
Bsl MCP is an MCP server published by rsyuzyov in the Developer Tools category: 1C Code Search MCP - Local MCP server for semantic code search in 1C codebase.
The repository has 11 stars and 3 forks, with the last commit 12 days ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/rsyuzyov/bsl-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Bsl MCP
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- !Dependencies pinnedNo lockfile. Installs can pull different code over time.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
1C Code Search MCP
Локальный MCP-сервер для семантического поиска по кодовой базе 1С. Поддерживает множество информационных баз, различные модели эмбеддингов и векторные движки.
Ключевые возможности
- Мульти-конфигурация: Поддержка нескольких баз кода (информационных баз) одновременно.
- Гибкий выбор моделей: Поддержка любых моделей совместимых с HuggingFace/ONNX (по умолчанию
cointegrated/rubert-tiny2). - Векторный поиск: Использование Qdrant, LanceDB или ChromaDB для эффективного поиска.
- Веб-интерфейс: Удобное управление базами и настройками через браузер.
- MCP Протокол: Легкая интеграция с Claude, Cursor, Kiro и другими MCP-клиентами.
Установка
- Клонируйте репозиторий.
- Установите зависимости:
python install.py
Запуск
python code-search.py
или
python -m code_search
Сервер запустится на порту 8000 (по умолчанию). Откройте http://localhost:8000 в браузере для настройки баз.
Конфигурация (config.yaml)
Файл config.yaml создается автоматически при первом запуске. Вы можете редактировать его вручную или через веб-интерфейс.
Пример конфигурации:
global:
port: 8000
check_interval: 300
ibs:
- name: "trade"
title: "Управление Торговлей"
source_dir: "C:/Projects/Trade/src"
index_dir: "./indices/trade"
embedding_model: "cointegrated/rubert-tiny2"
vector_db: "qdrant"
- name: "erp"
title: "1С:ERP"
source_dir: "C:/Projects/ERP/src"
index_dir: "./indices/erp"
embedding_model: "intfloat/multilingual-e5-small"
vector_db: "qdrant"
Параметры
Global:
port: Порт веб-сервера.check_interval: Интервал фоновой проверки изменений файлов (в секундах).
IBs (Информационные базы):
name: Уникальный ID базы (латиница).title: Человекочитаемое название.source_dir: Путь к каталогу с выгрузкой конфигурации (XML файлы).index_dir: Путь для хранения векторного индекса.embedding_model: Имя модели эмбеддингов.vector_db: Исполнитель поиска (qdrant).
Настройка производительности и параметров
Помимо базовой настройки в config.yaml, существуют внутренние параметры, влияющие на скорость индексации и потребление ресурсов. Они заданы константами в коде.
Файл code_search/indexer/engine.py
-
BATCH_SIZE(по умолчанию500)- Где хранится: Константа в начале файла.
- Что это: Количество фрагментов (чанков), которые накапливаются в памяти перед записью в векторную БД.
- Влияние: Увеличение может слегка ускорить процесс (реже коммиты в БД), но увеличит потребление RAM. Уменьшение экономит память.
-
READ_WORKERS(по умолчанию1)- Где хранится: Константа в начале файла.
- Что это: Количество потоков для чтения файлов и первичной обработки.
- Влияние: Увеличение ускоряет чтение с диска, но повышает нагрузку на CPU. Так как генерация векторов тоже требует CPU, ставить много потоков (больше 2-4) обычно бессмысленно — "бутылочным горлышком" станет нейросеть. Уменьшение до 1 делает систему отзывчивее.
-
EMBED_BATCH_SIZE(по умолчанию64)- Где хранится: Константа в начале файла.
- Что это: Размер пачки текстов, которая отправляется в нейросеть за один раз.
- Влияние: Сильно влияет на скорость и память. Увеличение ускоряет работу (особенно с GPU/AVX), но линейно "ест" память. Если падает с ошибкой OOM (Out Of Memory) — уменьшайте.
Файл code_search/config.py
CHUNK_SIZE(по умолчанию1024) иCHUNK_OVERLAP(по умолчанию100)- Что это: Размер куска кода в символах и перекрытие между ними.
- Влияние: Определяет, как "режется" код. 1024 символа ~ 20-30 строк кода. Если менять, то придется переиндексировать всё с нуля.
Поддерживаемые модели и движки
Модели эмбеддингов
Сервер автоматически загружает и конвертирует в ONNX модели с HuggingFace. Рекомендуемые:
cointegrated/rubert-tiny2(Default) — Быстрая, легкая, хорошая точность.intfloat/multilingual-e5-small— Высокая точность, мультиязычность.ai-forever/sbert_large_nlu_ru— Крупная модель для русского языка.
Векторные движки
- Qdrant (по умолчанию) — Быстрый, работает локально, проверен.
- LanceDB — Встраиваемая (embedded) база, очень быстрая, хранит данные в файлах.
- ChromaDB — Популярная open-source векторная БД.
Укажите нужное значение (qdrant, lancedb или chromadb) в поле vector_db в config.yaml.
Подключение к клиентам (MCP)
Сервер работает по протоколу MCP через SSE (Server-Sent Events), что позволяет подключать его удаленно или через сеть.
URL для подключения: http://<ваш-сервер>:8000/sse
Claude Desktop
В файл claude_desktop_config.json:
{
"mcpServers": {
"1c-rag": {
"url": "http://localhost:8000/sse"
}
}
}
Cursor
- Перейдите в Cursor Settings > Features > MCP.
- Нажмите Add New MCP Server.
- Type:
SSE. - URL:
http://localhost:8000/sse
Kiro / Supermaven
В файл ~/.kiro/settings/mcp.json:
{
"mcpServers": {
"1c-rag": {
"url": "http://localhost:8000/sse"
}
}
}
Лицензия
MIT
README fetched from the repository 7 days ago. The original is authoritative.