MCP BSL LS桥
MCP是一个允许人工智能代理(Cursor、Claude Code等)访问BSL语言服务器功能的服务器,用于处理代码1C和OneScript:导航、搜索、诊断和重构。目标是提供确定性代码操作和代币经济(当然,模型可以做任何事情,但它会燃烧多少代币?)
项目特点
- BSL LS提前上升,并立即开始缓存准备。
- 添加了callu graph插件以形成BSL LS的完整调用图
它是如何工作的
┌─────────────────────────────────────────────────────────────────┐
│ HOST (Windows/Linux/macOS) │
│ │
│ ┌──────────────┐ ┌──────────────────────────────────────┐ │
│ │ Cursor │ │ Кодовая база 1С │ │
│ │ (IDE) │ │ D:/Projects/MyConfig │ │
│ └──────┬───────┘ └──────────────┬───────────────────────┘ │
│ │ docker exec -i │ volume mount │
└─────────┼─────────────────────────────┼─────────────────────────┘
│ │
▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ DOCKER CONTAINER │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ mcp-lsp-bridge (MCP Server) │ │
│ │ Принимает запросы от IDE, транслирует в LSP │ │
│ └──────────────────────┬───────────────────────────────────┘ │
│ │ TCP :9999 │
│ ┌──────────────────────▼───────────────────────────────────┐ │
│ │ lsp-session-manager │ │
│ │ Держит BSL LS запущенным, следит за индексацией │ │
│ │ ┌────────────────────────────────────────────────────┐ │ │
│ │ │ File Watcher (polling) │ │ │
│ │ │ Отслеживает изменения файлов, уведомляет BSL LS │ │ │
│ │ └────────────────────────────────────────────────────┘ │ │
│ └──────────────────────┬───────────────────────────────────┘ │
│ │ stdio │
│ ┌──────────────────────▼───────────────────────────────────┐ │
│ │ BSL Language Server (Java) │ │
│ │ Индексация, диагностика, навигация, рефакторинг │ │
│ └──────────────────────────────────────────────────────────┘ │
│ ▲ │
│ ┌──────────────────────┴───────────────────────────────────┐ │
│ │ /projects (смонтированная кодовая база) │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘要求
- Docker+Docker组合
- 支持MCP的IDE(Cursor,Claude Code)
- 8 GB RAM(BSL LS在大型项目中需要内存)
快速启动
原则:一个项目=一个容器 .env)
1.克隆存储库
git clone https://github.com/SteelMorgan/mcp-bsl-lsp-bridge.git
cd mcp-bsl-lsp-bridge2.自定义环境
cp env.example .env编辑 .env -至少要指出:
MCP_PROJECT_NAME-项目名称(作为容器名称的一部分)HOST_PROJECTS_ROOT-主机上的1C代码路径WORKSPACE_ROOT-容器内的路径到带有代码的目录
配置workspace_root
WORKSPACE_ROOT 定义容器中BSL LS的根目录。
一个代码目录:
WORKSPACE_ROOT=/projects/main-config基本配置+扩展: 如果要使用多个代码目录(配置+扩展),请指定它们的父共享目录:
# Структура:
# /projects/
# ├── main-config/ **`document_diagnostics`** -语法控制的主要工具。返回所有BSL LS诊断:语法错误、未使用变量、deprecated方法、样式异常等。D.其他事项
### 重构
ÐÐÐÐÐÐÐÐÐÐÐÐÐ
|------|------------|-------------------|
| `prepare_rename` 在改名之前,先检查一下是否可以改名。
| `rename` 到处都是符号。 `apply=false` 为preview。
### 公务
ÐÐÐÐÐÐÐÐÐÐÐÐÐ
|------|------------|-------------------|
| `lsp_status` ≫LSP状态和索引进度≫检查就绪≫
| `did_change_watched_files` 在Git Pull之后通知文件更改。
> 更多信息: `docs/tools/tools-reference.md`
______________________________________________________________________
## 文档
- [配置](docs/configuration.md) -参数 `.env` 和 `lsp_config.json`
- [代码体系结构](docs/codebase-guide.md) -定位器项目结构
- [工具手册](docs/tools/tools-reference.md) -工具的完整描述
- [Tool → LSP映射](docs/tools/lsp-methods-map.md) -哪些LSP方法调用每个工具
______________________________________________________________________
## 路线图
- \[\]改进Win+Docker的文件监视器(同时抛光,寻找解决方案)
- \[\]启动容器时BSL LS自动更新
- \[\]减少工具的数量,将逻辑打包到技能中
- \[\]在Windows下进行解决方案。如果在Windows(WSL 2)中使用Docker,则链接目录的读取速度受到限制。40K文件读我大约12分钟。9K文件-约3-5分钟。(取决于Docker的整体吞吐量)。
______________________________________________________________________
## 对项目的贡献
见E/CN.4/Sub.2/2000/SR.1。 `CONTRIBUTING.md`错误和想法-通过问题。
## 致谢
https://github.com/rockerBOO/mcp-lsp-bridge-基于
https://github.com/nixel2007-BSL LS咨询