BPMN-MCP

使用说明

  • 项目简介

    • 本仓库实现的是一个基于 MCP(Model Context Protocol)的服务器端应用,能够通过 MCP 客户端注册并执行一组用于 BPMN 2.0 工作流图的工具,例如创建图、添加元素、连线、导出 XML/SVG、导入已有 BPMN XML 等。服务器采用 Node.js/TypeScript 编写,使用 stdio 传输方式进行 JSON-RPC 交互,适用于与大语言模型(LLM)等客户端协作生成和管理 BPMN 图。
  • 主要功能点

    • 注册工具集合:create_bpmn_diagram、add_bpmn_element、connect_bpmn_elements、export_bpmn_xml、export_bpmn_svg、list_bpmn_elements、import_bpmn_xml。
    • BPMN 图管理:在内存中维护 Diagram 状态(包含模型、XML、元素映射),支持动态创建、修改、导出等操作。
    • 无头环境渲染:使用 bpmn-js 以头部无渲染方式生成 BPMN 图的 XML/SVG。
    • JSON-RPC 接口:通过 MCP 协议处理工具查询与调用,并返回结构化的文本内容响应。
    • 开发/运行模式:可通过命令行构建并在标准输入输出(stdio)方式运行,便于与各类 LLM 客户端集成。
  • 安装步骤

    1. 克隆仓库并进入项目目录。
    2. 安装依赖:npm install
    3. 构建项目:npm run build
    4. 启动服务(在开发阶段可直接运行生成的 dist/index.js,或在集成环境中通过 MCP 客户端启动命令调用)
  • 服务器配置(MCP 客户端需要了解的启动信息) 下面的配置用于告诉 MCP 客户端如何启动该 MCP 服务器。请将实际路径替换为你本地环境中的绝对路径。 { "server_name": "bpmn-mcp", "command": "node", "args": ["/absolute/path/to/BPMN-MCP/dist/index.js"] } 说明:上述配置中的 dist/index.js 为构建输出入口。MCP 客户端仅需要知道服务器的启动命令和参数,实际连接由 MCP 框架负责。

  • 基本使用方法

    • 在与你的 LLM 客户端集成时,先通过 MCP 客户端加载并连接服务器(使用上述配置启动命令)。
    • 调用工具时,LLM 可以触发以下操作序列,如:创建新图 -> 添加元素 -> 连接元素 -> 导出 BPMN XML/SVG,或导入现有 BPMN XML 进行编辑。
    • 示例工作流(概念性描述):
      1. 创建一个新的 BPMN 图,获得 diagramId。
      2. 向图中添加开始事件、任务、结束事件等元素,记录元素ID。
      3. 使用连线工具把元素按照需要的顺序连接起来。
      4. 将图导出为 BPMN XML 或 SVG,保存或展示。
    • 常见问题和提示:在导出 XML 时,若图中存在未连接的元素,系统会给出警告信息,提醒通过 connect_bpmn_elements 添加必要的序列流。

服务器信息