Skip to main content

1C Code Search MCP

Локальный MCP-сервер для семантического поиска по кодовой базе 1С. Поддерживает множество информационных баз, различные модели эмбеддингов и векторные движки.

Ключевые возможности

  • Мульти-конфигурация: Поддержка нескольких баз кода (информационных баз) одновременно.
  • Гибкий выбор моделей: Поддержка любых моделей совместимых с HuggingFace/ONNX (по умолчанию cointegrated/rubert-tiny2).
  • Векторный поиск: Использование Qdrant, LanceDB или ChromaDB для эффективного поиска.
  • Веб-интерфейс: Удобное управление базами и настройками через браузер.
  • MCP Протокол: Легкая интеграция с Claude, Cursor, Kiro и другими MCP-клиентами.

Установка

  1. Клонируйте репозиторий.
  2. Установите зависимости:
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. Рекомендуемые:

  1. cointegrated/rubert-tiny2 (Default) — Быстрая, легкая, хорошая точность.
  2. intfloat/multilingual-e5-small — Высокая точность, мультиязычность.
  3. 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

  1. Перейдите в Cursor Settings > Features > MCP.
  2. Нажмите Add New MCP Server.
  3. Type: SSE.
  4. URL: http://localhost:8000/sse

Kiro / Supermaven

В файл ~/.kiro/settings/mcp.json:

{
  "mcpServers": {
    "1c-rag": {
      "url": "http://localhost:8000/sse"
    }
  }
}

Лицензия

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_rsyuzyov_bsl_mcp-0.1.0.tar.gz (510.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_rsyuzyov_bsl_mcp-0.1.0-py3-none-any.whl (525.5 kB view details)

Uploaded Python 3

File details

Details for the file iflow_mcp_rsyuzyov_bsl_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_rsyuzyov_bsl_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 510.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_rsyuzyov_bsl_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8e766b52745e458a7319c0c23c4d357352642d4f281a623c6cbc694dc61f39b1
MD5 5f6a3124b14ebe2da3d4216e1e707f58
BLAKE2b-256 3149428a243492af8237d908ba34aa1a2e28de40ac439c23a46ceabe610e5ffa

See more details on using hashes here.

File details

Details for the file iflow_mcp_rsyuzyov_bsl_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_rsyuzyov_bsl_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 525.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_rsyuzyov_bsl_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ce7650cde13c350e9eb1791093cd0de6f37976bf6c3141ff854f59bd8c365d56
MD5 5c74f511b19354915b2dc28363dea9dc
BLAKE2b-256 72d5bbefc043db63b050e645846535722bef79e86b86fa23c6f19dc77e94e5c8

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page