MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

M
MCP Bsl Lsp Bridge

MCP-сервер, который даёт ИИ-агентам (Cursor, Claude Code и др.) доступ к возможностям BSL Language Server для работы с кодом 1С и OneScript: навигация, поиск, диагностика, рефакторинг. Цель - обеспечить детерминированные операции над кодом и экономия токенов (конечно модель всё может сделать грепами, но сколько токенов сожжет?)

Created 1/25/2026
Updated 3 days ago
Repository documentation and setup instructions

MCP BSL LS Bridge

MCP-сервер, который даёт ИИ-агентам (Cursor, Claude Code и др.) доступ к возможностям BSL Language Server для работы с кодом 1С и OneScript: навигация, поиск, диагностика, рефакторинг. Цель - обеспечить детерминированные операции над кодом и экономия токенов (конечно модель всё может сделать грепами, но сколько токенов сожжет?)

Особенности проекта

  • BSL LS поднимается заранее и сразу начинает подготовку кеша.
  • добавлена надстройка call_graph для формирования полного графа вызовов силами BSL LS

Как это работает

┌─────────────────────────────────────────────────────────────────┐
│  HOST (Windows/Linux/macOS)                                     │
│                                                                 │
│  ┌──────────────┐      ┌──────────────────────────────────────┐ │
│  │   Cursor     │      │         Кодовая база 1С              │ │
│  │   (IDE)      │      │   D:/Projects/MyConfig               │ │
│  └──────┬───────┘      └──────────────┬───────────────────────┘ │
│         │ docker exec -i              │ volume mount            │
└─────────┼─────────────────────────────┼─────────────────────────┘
          │                             │
          ▼                             ▼
┌─────────────────────────────────────────────────────────────────┐
│  DOCKER CONTAINER                                               │
│                                                                 │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │  mcp-lsp-bridge (MCP Server)                             │   │
│  │  Принимает запросы от IDE, транслирует в LSP             │   │
│  └──────────────────────┬───────────────────────────────────┘   │
│                         │ TCP :9999                             │
│  ┌──────────────────────▼───────────────────────────────────┐   │
│  │  lsp-session-manager                                     │   │
│  │  Держит BSL LS запущенным, следит за индексацией         │   │
│  │  ┌────────────────────────────────────────────────────┐  │   │
│  │  │  File Watcher (polling)                            │  │   │
│  │  │  Отслеживает изменения файлов, уведомляет BSL LS   │  │   │
│  │  └────────────────────────────────────────────────────┘  │   │
│  └──────────────────────┬───────────────────────────────────┘   │
│                         │ stdio                                 │
│  ┌──────────────────────▼───────────────────────────────────┐   │
│  │  BSL Language Server (Java)                              │   │
│  │  Индексация, диагностика, навигация, рефакторинг         │   │
│  └──────────────────────────────────────────────────────────┘   │
│                         ▲                                       │
│  ┌──────────────────────┴───────────────────────────────────┐   │
│  │  /projects (смонтированная кодовая база)                 │   │
│  └──────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘

Требования

  • Docker + Docker Compose
  • IDE с поддержкой MCP (Cursor, Claude Code)
  • 8+ ГБ RAM (BSL LS требователен к памяти на больших проектах)

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

Принцип: один проект = один контейнер (каталог проекта задаётся в .env)

1. Клонируй репозиторий

git clone https://github.com/SteelMorgan/mcp-bsl-lsp-bridge.git
cd mcp-bsl-lsp-bridge

2. Настрой окружение

cp env.example .env

Отредактируй .env — минимум нужно указать:

  • MCP_PROJECT_NAME — имя проекта (будет частью имени контейнера)
  • HOST_PROJECTS_ROOT — путь к коду 1С на хосте
  • WORKSPACE_ROOT — путь внутри контейнера к каталогу с кодом

Настройка WORKSPACE_ROOT

WORKSPACE_ROOT определяет корневой каталог для BSL LS внутри контейнера.

Один каталог с кодом:

WORKSPACE_ROOT=/projects/main-config

Основная конфигурация + расширения: Если нужно работать с несколькими каталогами кода (конфигурация + расширения), укажите их общий родительский каталог:

# Структура:
# /projects/
#   ├── main-config/    <- основная конфигурация
#   └── extension1/     <- расширение

WORKSPACE_ROOT=/projects

BSL LS проиндексирует все подкаталоги и будет видеть связи между конфигурацией и расширениями.

Все параметры описаны в env.example.

3. Собери и запусти контейнер

docker compose build
docker compose up -d

Имя контейнера: ${MCP_CONTAINER_PREFIX}-${MCP_PROJECT_NAME} (например mcp-lsp-demo)

4. Подключи MCP в IDE

Создай .cursor/mcp.json (или аналог для твоего MCP-клиента):

{
  "mcpServers": {
    "lsp-bsl-bridge": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "exec",
        "-i",
        "mcp-lsp-demo",
        "mcp-lsp-bridge"
      ],
      "env": {}
    }
  }
}

Замени mcp-lsp-demo на реальное имя контейнера.

5. Проверь подключение

В IDE вызови tool lsp_status — должен показать статус подключения и прогресс индексации.


Возможности (Tools)

Поиск и навигация

| Tool | Что делает | Когда использовать | |------|------------|-------------------| | project_analysis | Универсальный поиск: символы, файлы, текст | Найти процедуру по имени, обзор проекта | | symbol_explore | Детальный поиск с кодом и документацией | Нужна полная информация о символе | | definition | Перейти к определению | "Где объявлена эта процедура?" | | hover | Документация и сигнатура | "Какие параметры у функции?" | | get_range_content | Получить фрагмент кода | Извлечь код по координатам |

Анализ зависимостей

| Tool | Что делает | Когда использовать | |------|------------|-------------------| | call_hierarchy | Кто вызывает / что вызывает (1 уровень) | Быстро понять связи | | call_graph | Полный граф вызовов | Глубокий анализ перед рефакторингом |

Диагностика и проверка кода

| Tool | Что делает | Когда использовать | |------|------------|-------------------| | document_diagnostics | Синтаксические ошибки, предупреждения, стилистика | Проверка кода перед коммитом, поиск ошибок | | code_actions | Автоматические исправления | Quick-fix для найденных ошибок |

document_diagnostics — основной инструмент для синтаксического контроля. Возвращает все диагностики BSL LS: синтаксические ошибки, неиспользуемые переменные, deprecated методы, нарушения стиля и т.д.

Рефакторинг

| Tool | Что делает | Когда использовать | |------|------------|-------------------| | prepare_rename | Проверить возможность переименования | Перед переименованием | | rename | Переименовать символ везде | apply=false для preview |

Служебные

| Tool | Что делает | Когда использовать | |------|------------|-------------------| | lsp_status | Статус LSP и прогресс индексации | Проверить готовность | | did_change_watched_files | Уведомить об изменении файлов | После git pull |

Подробнее: docs/tools/tools-reference.md


Документация


Дорожная карта

  • [ ] Улучшить File Watcher для Win + Docker (пока polling, ищем решения)
  • [ ] Автообновление BSL LS при запуске контейнера
  • [ ] Сократить количество tools, упаковать логику в навыки
  • [ ] Сделать решение под Windows. Если использовать докер в Windows (WSL 2), то скорость чтения примаунченных каталогов ограничена. 40к файлов у меня читает около 12 минут. 9к файлов - в районе 3-5 минут. (упирается в общую "пропускную способность докера).

Вклад в проект

См. CONTRIBUTING.md. Баги и идеи — через Issues.

Благодарности

https://github.com/rockerBOO/mcp-lsp-bridge - взято за основу https://github.com/nixel2007 - за консультации по BSL LS

Quick Setup
Installation guide for this server

Installation Command (package not published)

git clone https://github.com/SteelMorgan/mcp-bsl-lsp-bridge
Manual Installation: Please check the README for detailed setup instructions and any additional dependencies required.

Cursor configuration (mcp.json)

{ "mcpServers": { "steelmorgan-mcp-bsl-lsp-bridge": { "command": "git", "args": [ "clone", "https://github.com/SteelMorgan/mcp-bsl-lsp-bridge" ] } } }