bsl-mcp-bridge
A Dockerized MCP server that keeps BSL Language Server running and gives the agent code navigation, diagnostics and refactoring for 1C instead of grep search
Medium risk
We rate an entry medium when the tool runs code, makes network calls or reads project files. Check what exactly it does before installing.
Why this level
- The rename tool applies a project-wide symbol rename when apply=true
- code_actions can apply automatic fixes to code files
Install
Manual install
docker compose build && docker compose up -dOne project per container, the 1C code path is set in .env.
This is third-party code. Review the repository files before installing.
What it does
The server runs BSL Language Server on Java 21 inside a Docker container, keeps it warm and tracks indexing of the 1C codebase. The agent gets tools for symbol and text search, go-to-definition, hover with documentation, a call graph, document diagnostics with syntax errors and style issues, quick fixes, and project-wide symbol rename. The agent can pass file paths in any format (relative, container-absolute, file URI, or a host Windows path), and the server normalizes them, falling back to a suffix match when needed.
Who it is for. For 1C developers who want the agent to understand code structure through a language server rather than guessing from grep.
Good fit when
- You need precise BSL symbol navigation and a call graph before refactoring
- You need syntax diagnostics before a commit
- You need a safe project-wide symbol rename
Not a fit when
- You have no Docker and no 8+ GB of memory for BSL Language Server on a large project
- You just need quick text search without indexing
Example request
Find every place that calls the ЗаписатьВЖурнал procedure and show the call graph around itLimitations
Needs Docker and Docker Compose, an MCP-capable IDE, and enough memory: BSL Language Server is memory-hungry on large projects. The model is one project per container, so multiple configurations need multiple containers. The project builds on the approach from SteelMorgan/mcp-bsl-lsp-bridge, taken as a base.
How to disable. Stop the container with docker compose down and remove the server from your MCP client configuration.
MCP
- Transport
- http, stdio
- Authentication
- not required
| Environment variables | |
|---|---|
| MCP_PROJECT_NAME required | Project name, part of the container name. |
| HOST_PROJECTS_ROOT required | Path to the 1C code on the host. |
| WORKSPACE_ROOT required | Root directory for BSL LS inside the container. |
Security check
- The rename tool applies a project-wide symbol rename when apply=true
- code_actions can apply automatic fixes to code files
README in short
The README describes an architecture of an MCP bridge, an LSP session manager and BSL Language Server inside one Docker container, tables of tools for search, dependencies, diagnostics and refactoring, path formats, and recent changes like smart URI normalization and forced reindexing after did_change_watched_files. It notes the project builds on SteelMorgan/mcp-bsl-lsp-bridge as a base.
FAQ
Do files need to be opened manually before hover or diagnostics?
No, the bridge calls textDocument/didOpen automatically before such operations and avoids reopening already-tracked documents.
How does call_graph differ from call_hierarchy?
call_hierarchy shows one level of callers and callees, while call_graph builds the full graph using BSL Language Server.
Related
A skills library that gives coding agents a development process: brainstorming, planning, TDD, subagents and code review
Skills for real engineers by Matt Pocock
Skills For Real Engineers
Small composable skills for engineering with agents: plan grilling, TDD, bug diagnosis, code review and architecture
GitHub toolkit for spec-driven development: the specify CLI adds agent commands and skills to a project, from principles to implementation
Reference MCP servers
Model Context Protocol servers
Official reference MCP servers: Filesystem, Fetch, Git, Memory, Sequential Thinking, Time and Everything