BSL MCP Server
Enables analysis of BSL/OS files using the BSL Language Server, providing diagnostics and code formatting.
README
BSL MCP Server
MCP-сервер bsl-mcp анализирует каталог через BSL Language Server и отдает ошибки/предупреждения в JSON. Платформенную проверку синтаксиса 1С и функций не выполняет.
Возможности
- BSL-анализ: запуск комплексного анализа файлов BSL/OS с подробной диагностикой
- Форматирование кода: приведение BSL-файлов к правилам BSL Language Server
Установка
Предварительные требования
- Python 3.10 или новее
- Java Runtime Environment (JRE) 8 или новее
- JAR-файл BSL Language Server
Установка из исходников
- Клонируйте репозиторий:
git clone <repository-url>
cd mcp-bsl-python
- Установите зависимости:
pip install -r requirements.txt
- Установите пакет:
pip install -e .
Настройка
Конфигурация MCP
Добавьте в ~/.cursor/mcp.json:
{
"mcpServers": {
"bsl-mcp": {
"command": "python",
"args": ["-m", "mcp_bsl.server"],
"env": {
"BSL_JAR": "C:\\1C\\AI\\bsl\\bsl-language-server-0.24.2-exec.jar",
"BSL_MEMORY_MB": "4096",
"BSL_CONFIG": "C:\\1C\\AI\\bsl\\.bsl-language-server.json",
"BSL_LOG_LEVEL": "ERROR"
},
"debug": false
}
}
}
Примечание: значение
BSL_LOG_LEVELустановлено вERROR, чтобы минимизировать вывод логов в Cursor IDE. Для поиска проблем используйтеDEBUG.
Использование
В Cursor IDE
# Анализ директории (используйте АБСОЛЮТНЫЙ путь!)
mcp bsl-mcp C:\1C\lk\src\CommonModules\
# Если нужны DEBUG логи для отладки:
# В mcp.json измените: "BSL_LOG_LEVEL": "DEBUG"
Доступные инструменты
bsl_analyze
Запуск анализа BSL по каталогу исходников или файлу.
Параметры:
srcDir(обязательно): путь к каталогу или файлу с .bsl/.os
Пример:
{
"name": "bsl_analyze",
"arguments": {
"srcDir": "C:\\1C\\MyProject\\src"
}
}
bsl_format
Форматирование BSL-файлов в каталоге исходников.
Параметры:
srcDir(обязательно): путь к каталогу или файлу с .bsl/.os
Пример:
{
"name": "bsl_format",
"arguments": {
"srcDir": "C:\\1C\\MyProject\\src"
}
}
Форматы вывода
Результаты анализа
Инструмент bsl_analyze выдает:
-
Человекочитаемую сводку с:
- статусом (success/error)
- количеством обработанных файлов
- подсчетом диагностик по уровням важности
- топ-проблемами с указанием местоположения в файлах
-
Структурированный JSON-вывод с:
- полной диагностической информацией
- путями к файлам, номерами строк/столбцов
- уровнями важности и сообщениями
- сводной статистикой
Результаты форматирования
Инструмент bsl_format выдает:
- статус успех/ошибка
- количество обработанных файлов
- сырой вывод BSL Language Server
Конфигурация BSL Language Server
Создайте файл .bsl-language-server.json в корне проекта:
{
"language": "bsl",
"diagnostics": {
"computeTrigger": "onSave",
"skipSupport": "never"
},
"codeLens": {
"showCognitiveComplexity": true,
"showCyclomaticComplexity": true
},
"traceLog": {
"enabled": false
}
}
Обработка ошибок
Сервер обрабатывает различные нештатные ситуации:
- Файл не найден: проверяет корректность путей до запуска
- Неверный JAR: проверяет наличие JAR-файла BSL Language Server
- Таймаут: 5 минут для анализа, 2 минуты для форматирования
- Лимиты памяти: настраиваемое выделение памяти JVM
- Ошибки разбора: корректная обработка некорректного вывода BSL
Разработка
Структура проекта
mcp-bsl-python/
├── pyproject.toml # Метаданные проекта и зависимости
├── requirements.txt # Зависимости
├── README.md # Этот файл
├── src/
│ └── mcp_bsl/
│ ├── __init__.py
│ ├── server.py # Основная реализация MCP-сервера
│ ├── bsl_runner.py # Обертка запуска JAR BSL
│ └── config.py # Управление конфигурацией
└── .bsl-language-server.json # Пример конфигурации BSL
Запуск тестов
python -m pytest tests/
Сборка
python -m build
Устранение неполадок
Типичные проблемы
-
"Source path does not exist"
- Всегда используйте абсолютные пути (например,
C:\dev\project\src\Module.bsl) - Относительные пути могут работать некорректно с MCP-сервером
- См. PATH_USAGE_GUIDE.md для подробностей
- Проверьте, что параметр
srcDirуказывает на существующий файл или каталог - Проверьте права доступа к файлам
- Всегда используйте абсолютные пути (например,
-
"Directory contains no BSL/OS files"
- Убедитесь, что каталог содержит файлы
.bslили.os - Проверьте корректность расширений файлов
- Убедитесь, что каталог содержит файлы
-
Ошибки выполнения Java
- Проверьте, что Java установлена и доступна в PATH
- Убедитесь, что лимиты памяти JVM заданы разумно
- Проверьте совместимость версии JAR BSL Language Server с вашей версией Java
-
Сообщение "ERROR: BSL analysis stderr detected"
- Проблема исправлена — вывод прогресс-бара теперь фильтруется
- Отображаются только реальные ошибки
- Обновитесь до последней версии, если видите эту проблему
-
Дублирование сообщений логов
- Проблема исправлена — устранено накопление обработчиков
- Каждое сообщение лога теперь выводится ровно один раз
- См. FIX_DUPLICATE_LOGS.md для деталей
Режим отладки и логирование
Сервер поддерживает уровни логирования, управляемые переменной окружения BSL_LOG_LEVEL:
- ERROR (рекомендуется для продакшена) — только критические ошибки
- WARNING (по умолчанию) — предупреждения и ошибки
- INFO — информационные сообщения
- DEBUG — подробная отладочная информация
Чтобы включить отладочное логирование в конфигурации MCP:
{
"mcpServers": {
"bsl-mcp": {
"env": {
"BSL_LOG_LEVEL": "DEBUG"
}
}
}
}
Подробности см. в LOGGING_CONFIGURATION.md.
Лицензия
Проект распространяется по лицензии MIT.
Вклад в проект
- Сделайте форк репозитория
- Создайте feature-ветку
- Внесите изменения
- Отправьте pull request
Поддержка
Если у вас есть вопросы или вы столкнулись с проблемами:
- Создайте issue в репозитории
- Изучите существующую документацию
- Ознакомьтесь с документацией BSL Language Server
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.