1c-lsp-mcp-skill

1с-lsp-mcp-skill

Manager for multiple bsl-language-server instances across 1C projects, usable via MCP or skills with a CLI, no Docker

  • 26 ★ on the repository
  • Last commit
  • LGPL-3.0
MCP server

Extended access

Why this level

  • Runs downloaded binaries and a Java server on the local machine
  • Opens local HTTP ports for the web UI and MCP
  • Can be installed as a background service
All reasons and checks
Russian stack

fserg/1c-lsp-mcp-skill

Install

Manual install

../lsp-skill install-path

First install a JVM, download a bsl-language-server release and start lsp-skill-server. This command adds the CLI to PATH for skills.

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • Runs downloaded binaries and a Java server on the local machine
  • Opens local HTTP ports for the web UI and MCP
  • Can be installed as a background service

This is third-party code. Review the repository files before installing.

What it does

Runs a separate bsl-language-server for each 1C project and manages them through a web UI. The agent gets syntax diagnostics and code navigation: symbols, definitions, references, incoming and outgoing calls. Access works through two MCP servers or through the 1c-check and 1c-lsp skills that call the lsp-skill CLI.

Who it is for. 1C developers who maintain several configurations and do not want Docker.

Good fit when

  • You want the agent to check 1C module syntax
  • The agent needs symbol navigation and call hierarchy in standard configurations
  • You work on several 1C projects and want indexes kept warm in the background
  • Docker is unavailable or unwanted

Not a fit when

  • You need refactoring and rename: the project focuses on diagnostics and navigation
  • You cannot install a JVM

Example request

Check the syntax of common module ОбщийМодуль1 and show which procedures call the ПолучитьЦену function

MCP

Transport
http
Authentication
not required

Environment variables

PROJECT_ID required
Indexed project ID in .env for skills mode

Limitations

Requires a JVM and a separately downloaded bsl-language-server, tested with v0.29.0. Indexing standard configurations such as УТ, БП and УНФ takes several minutes. bsl-language-server responses are still verbose. File paths must be relative to the project root; absolute paths are rejected.

How to disable. Remove the 1c-lsp-diagnostics and 1c-lsp-navigation MCP servers from mcp.json or the skill folders from .claude/skills, then stop lsp-skill-server. If installed as a service, run lsp-skill-server service uninstall.

FAQ

MCP or skills?

Both provide the same features. Skills need a .env with PROJECT_ID and the CLI on PATH; MCP needs the x-project-id header in the config.

Can a large project get more memory?

Yes, each bsl-language-server instance runs with its own JVM flags and its own configuration file.

Discussion

No questions or reviews yet.

Russian stack

MCP bridge to BSL Language Server: navigation, diagnostics and refactoring of 1C and OneScript code for agents

MCP serverExtended access69Repository stars
Russian stack

An MCP server that exposes the cloud 1C:Napparnik (1C.ai) assistant and a local BSL Language Server to agents in Cursor and other IDEs

MCP serverExtended access22Repository stars
Russian stack

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

MCP serverExtended access1Repository stars
Russian stack

A script installs BSL Language Server as a Linux systemd service and, with a flag, opens an MCP endpoint for AI agents

MCP serverExtended access
Russian stack

A set of skills, rules and MCP servers for 1C Enterprise 8.3 development where the agent works from real code and docs, not from memory

SkillBroad access34Repository stars
Russian stack

A small MCP server that runs BSL Language Server as a JAR file and gives an agent BSL code analysis and formatting as JSON

MCP serverExtended access6Repository stars

README in short

The cross-platform app consists of the lsp-skill-server HTTP server with a web UI and the lsp-skill CLI. It runs several bsl-language-server instances with indexing progress, pushes file changes to them and answers diagnostics and navigation requests. Releases include binaries for Windows, Linux and macOS, two skills, a sample mcp.json and sample AGENTS.md files. License is LGPL-3.0.

README badge

Original SKILL.md

---
name: 1c-lsp
description: "Use when developing, reviewing, or debugging 1C:Enterprise 8.3 / BSL code in a repository connected to the local `lsp-skill` service and you need semantic navigation through `bsl-language-server`. Covers `symbols`, `definition`, `references`, `incoming-calls`, `outgoing-calls`, and `workspace-symbols` for configured 1C projects. Prefer this skill over plain text search when you need symbol-aware answers about procedures, functions, variables, common modules, forms, object modules, and cross-file usage in 1C (`1С`) projects."
---

# 1c-lsp

Use the local `lsp-skill` CLI as the primary semantic navigation tool while working on 1C code.

Treat it as a thin wrapper over `bsl-language-server` and LSP. Use it first for symbol-aware navigation, then open the real source files to inspect surrounding code before editing behavior.

## How It Connects

The CLI discovers `PROJECT_ID` from a `.env` file in the current directory or a parent directory, and discovers the server address from `runtime.json`.

If the project is not ready (starting, stopped, error), commands will return an error — handle it when it happens instead of checking upfront. You can run `lsp-skill status` to inspect project state if needed for troubleshooting.

## Output Format

Navigation commands read `use_toon_format` from `lsp-skill` config.

- `false` keeps pretty JSON.
- `true` switches to compact TOON with aliases such as `range -> range_sl/range_sc/range_el/range_ec`, `selectionRange -> selection_range_*`, `location -> location_*`, `targetUri -> target_uri`, `containerName -> container_name`, and inlined `from_*` / `to_*`.

Example:

```text
references[2]{range_ec,range_el,range_sc,range_sl,uri}:
  5,1,0,1,"file:///a.bsl"
  9,2,4,2,"file:///b.bsl"
```

## Use Safe Coordinates And Paths

Each project has two root paths:

- **`root_path`** — the BSL root where `bsl-language-server` indexes code (e.g. `d:\projects\myproject\1c-src`).
- **`project_root_path`** — the root of the entire project where LLM agents and CLI run from (e.g. `d:\projects\myproject`).

Pass `file_path` **relative to `project_root_path`**. The server resolves the path and verifies it falls inside `root_path` automatically.

- Do not use absolute paths. The server rejects absolute or escaping paths.
- Preserve the exact directory names, including Cyrillic segments.
- Convert editor coordinates carefully: LSP `line` and `character` are zero-based.
- Re-check the exact symbol position before calling `definition` or `references`. Off-by-one mistakes are common when converting from editors or code review comments.

Report a problem

Foxx AI1c-lsp-mcp-skill
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.