bsl-ls-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BSL_MCP_HOST | No | Network interface to bind the MCP server to. Defaults to 127.0.0.1 (localhost only). | 127.0.0.1 |
| BSL_WORKSPACE | Yes | Path to the 1C source code repository (CR export) | |
| BSL_ALLOW_REMOTE | No | Set to '1' to allow remote connections when BSL_MCP_HOST=0.0.0.0. Required for non-local access. | |
| BSL_ALLOWED_ROOTS | No | Additional allowed root paths (e.g., external processing directories) for the 'path' parameter, separated by the platform path delimiter. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| bsl_callersA | Кто вызывает функцию (incoming calls). full_name: 'ОбщийМодуль.МойМодуль.ИмяФункции'. |
| bsl_calleesB | Кого вызывает функция (outgoing calls). full_name: 'ОбщийМодуль.МойМодуль.ИмяФункции'. |
| bsl_diagnosticsA | Диагностики кода. Укажите РОВНО ОДИН адрес: module_full_name — модуль корпуса: 'ОбщийМодуль.МойМодуль' | 'Справочник.X.Форма.Имя'; path — произвольный каталог или .bsl-файл ВНЕ корпуса (внешние обработки/отчёты), напр. 'C:\1c\work<задача>\Реализация'. Индекс не нужен; text — СТРОКА кода 1С (снипет): линт до записи в файл. Обёртка в процедуру НЕ нужна (блок операторов линтуется как есть), нужна лишь синтаксическая завершённость (закрытые Если/Цикл, не оборванные выражения). Проверки ПОФАЙЛОВЫЕ, без контекста конфигурации (тип модуля/ссылки на объекты не проверяются). Для снипета по умолчанию возвращаются ВСЕ замечания (не только error+warning). По умолчанию для module/path отдаёт полным списком только error+warning, а info/hint сворачивает в сводку suppressed.by_code (счётчики по кодам) — чтобы не переполнять бюджет на крупных модулях/формах (для text порог по умолчанию 'hint' — всё). Детали: code='Typo' (все по коду, любой severity) или min_severity='hint' (всё подряд). Возвращает {"diagnostics":[...], "suppressed":{"total":N,"by_code":[...]}}. Идёт через analyze-CLI (без тёплого индекса) со своей очередью — навигационный семафор тут не нужен, проверка кода не конкурирует за граф. |
| bsl_definitionC | Где объявлен символ. full_name: 'ОбщийМодуль.МойМодуль.ИмяФункции'. |
| bsl_referencesC | Где используется символ. full_name: 'ОбщийМодуль.МойМодуль.ИмяФункции'. |
| bsl_complexityA | Сложность методов модуля (когнитивная + цикломатическая). Метрика ревьюеру. module_full_name: 'ОбщийМодуль.МойМодуль'; function (опц.) — только этот метод. |
| bsl_reindexA | Полный реиндекс корпуса (после массовых изменений конфигурации). Точечные правки модулей подхватываются автоматически — это для крупных изменений. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Every tool targets a distinct language-server operation: incoming calls, outgoing calls, declaration lookup, usage lookup, diagnostics, complexity metrics, and index rebuilding. The inverse pairs callers/callees and definition/references are clearly separated by their descriptions, so an agent is unlikely to confuse them.
All tools share the consistent bsl_ prefix and snake_case convention, and most are noun-style operations such as bsl_callers, bsl_definition, and bsl_diagnostics. The main deviation is bsl_reindex, which reads as an imperative action rather than a noun, but the overall pattern remains predictable.
Seven tools is well-scoped for a BSL code-intelligence server: four navigation tools, two code-analysis tools, and one index-maintenance command. Each tool earns its place, and the set is neither too thin nor overloaded.
The toolset covers the main analysis workflow: callers/callees for call-graph navigation, definition/references for symbol lookup, diagnostics for linting, complexity for maintainability review, and reindex for keeping the index fresh after large changes. A direct symbol-search or module-outline tool is missing, but the complexity tool can enumerate module methods, so the gap is minor and workaroundable.