BSL代码分析服务器

BSL MCP服务器通过BSL Language Server分析目录并返回JSON格式的错误/警告信息,提供BSL/OS文件的全面分析和代码格式化功能。

  • by phsin
  • Python
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 phsin/mcp-bsl-ls

使用说明

BSL MCP服务器

BSL-MCP MCP服务器分析目录 BSL语言服务器 并向JSON发送错误/警告。平台语法检查1C和功能不起作用。

机会

  • BSL分析:运行带有详细诊断的BSL/OS文件综合分析
  • 代码格式:将BSL文件转换为BSL语言服务器规则

安装

先决条件

源代码安装

  1. 克隆存储库:
git clone <repository-url>
cd mcp-bsl-python
  1. 建立依赖关系:
pip install -r requirements.txt
  1. 安装包:
pip install -e .

设置

MCP配置

添加到 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "bsl-mcp": {
      "command": "python",
      "args": ["-m", "mcp_bsl.server"],
      "env": {
        "BSL_JAR": "C:\\1C\\AI\\bsl\\bsl-language-server-0.24.2-exec.jar",
        "BSL_MEMORY_MB": "4096",
        "BSL_CONFIG": "C:\\1C\\AI\\bsl\\.bsl-language-server.json",
        "BSL_LOG_LEVEL": "ERROR"
      },
      "debug": false
    }
  }
}

备注: 意义 BSL_LOG_LEVEL 安装在 ERROR将日志输出最小化为Cursor IDE。要找出问题,请使用 DEBUG.

使用

在 Cursor IDE

# Анализ директории (используйте АБСОЛЮТНЫЙ путь!)
mcp bsl-mcp C:\1C\lk\src\CommonModules\

# Если нужны DEBUG логи для отладки:
# В mcp.json измените: "BSL_LOG_LEVEL": "DEBUG"

可用工具

bsl_analyze

在源目录或文件上运行BSL分析。

参数:

  • srcDir (必填):指向.bsl/.OS目录或文件的路径

例子:

{
  "name": "bsl_analyze",
  "arguments": {
    "srcDir": "C:\\1C\\MyProject\\src"
  }
}

bsl_format

在源目录中格式化BSL文件。

参数:

  • srcDir (必填):指向.bsl/.OS目录或文件的路径

例子:

{
  "name": "bsl_format",
  "arguments": {
    "srcDir": "C:\\1C\\MyProject\\src"
  }
}

输出格式

分析结果

工具 bsl_analyze 签发:

  1. 人类可读摘要 C:

    • 成功/失败(success/error)
    • 处理的文件数
    • 按重要性级别计数诊断
    • 顶级文件位置问题
  2. 结构化JSON输出 C:

    • 完整的诊断信息
    • 文件路径、行/列号
    • 重要程度和信息
    • 综合统计

格式化结果

工具 bsl_format 签发:

  • 状态成功/错误
  • 处理的文件数
  • BSL语言服务器

BSL语言服务器

创建文件 .bsl-language-server.json 在项目的根:

{
  "language": "bsl",
  "diagnostics": {
    "computeTrigger": "onSave",
    "skipSupport": "never"
  },
  "codeLens": {
    "showCognitiveComplexity": true,
    "showCyclomaticComplexity": true
  },
  "traceLog": {
    "enabled": false
  }
}

错误处理

服务器处理各种紧急情况:

  • 文件未找到:检查运行前路径是否正确
  • 错误的jar:检查是否存在BSL语言服务器JAR文件
  • 超时5分钟分析,2分钟格式化
  • 内存限制:自定义JVM内存分配
  • 解析错误:正确处理不正确的BSL输出

开发

项目结构

mcp-bsl-python/
├── pyproject.toml          # Метаданные проекта и зависимости
├── requirements.txt        # Зависимости
├── README.md               # Этот файл
├── src/
│   └── mcp_bsl/
│       ├── __init__.py
│       ├── server.py       # Основная реализация MCP-сервера
│       ├── bsl_runner.py   # Обертка запуска JAR BSL
│       └── config.py       # Управление конфигурацией
└── .bsl-language-server.json  # Пример конфигурации BSL

运行测试

python -m pytest tests/

装配

python -m build

故障排除

典型问题

  1. “源路径不存在”

    • 始终使用绝对路径 (例如, C:\dev\project\src\Module.bsl)
    • 相对路径可能无法正确地与MCP服务器一起工作
    • 见E/CN.4/Sub.2/2000/SR.1。 PATH_UAGE_GUIDE.md 详情
    • 检查参数是否 srcDir 指定现有文件或目录
    • 检查文件访问权限
  2. “目录不包含BSL/OS文件”

    • 确保目录包含文件 .bsl 或 .os
    • 检查文件扩展名是否正确
  3. Java执行错误

    • 检查Java是否已安装并在Path中可用
    • 确保正确设置JVM内存限制
    • 检查JAR BSL Language Server与Java版本的兼容性
  4. 错误:BSL分析stderr detected

    • 问题已修复-输出进度栏现在已过滤
    • 只显示真实的错误
    • 更新到最新版本,如果你看到这个问题
  5. 复制日志消息

    • 问题已修复-已修复处理程序累积
    • 每个日志消息现在只显示一次
    • 见E/CN.4/Sub.2/2000/SR.1。 FIX_DUPLICATE_LOGS.md 详情

调试和日志模式

服务器支持由环境变量控制的日志级别 BSL_LOG_LEVEL:

  • 错误 (建议制作)-仅限严重错误
  • 警告 (默认)-警告和错误
  • 信息 -信息通信
  • 调试 -详细调试信息

在MCP配置中启用调试日志:

{
  "mcpServers": {
    "bsl-mcp": {
      "env": {
        "BSL_LOG_LEVEL": "DEBUG"
      }
    }
  }
}

详情见附件一。在 登录_配置.md.

许可证

它是根据MIT许可证发行的。

对项目的贡献

  1. 分叉存储库
  2. 创建一个功能分支
  3. 修改
  4. 发送Pull Request

支持

如果您有问题或遇到问题:

  • 在存储库中创建问题
  • 查看现有文档
  • 查看BSL语言服务器文档