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_definitionB | Где объявлен метод. 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
Most tools target clearly distinct aspects: complexity, definition, callees, callers, diagnostics, and reindex. However, bsl_references ('where the method is used') and bsl_callers ('who calls the function') could be confused as overlapping in purpose, even though callers is more specific to incoming calls.
All tool names use a consistent bsl_ prefix followed by a single descriptive concept in lowercase snake_case (e.g., bsl_complexity, bsl_definition, bsl_callers). The pattern is predictable and uniform across the set.
Seven tools is well-scoped for a language server focused on navigation, call analysis, diagnostics, and indexing. Each tool earns its place without redundancy or excessive breadth.
The surface covers core navigation (definition, references), call hierarchy (callers/callees), complexity, diagnostics, and reindexing. Minor gaps exist, such as direct module content retrieval or symbol search, but these are not critical for the stated purpose.