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 客户端集成。
-
安装步骤
- 克隆仓库并进入项目目录。
- 安装依赖:npm install
- 构建项目:npm run build
- 启动服务(在开发阶段可直接运行生成的 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 进行编辑。
- 示例工作流(概念性描述):
- 创建一个新的 BPMN 图,获得 diagramId。
- 向图中添加开始事件、任务、结束事件等元素,记录元素ID。
- 使用连线工具把元素按照需要的顺序连接起来。
- 将图导出为 BPMN XML 或 SVG,保存或展示。
- 常见问题和提示:在导出 XML 时,若图中存在未连接的元素,系统会给出警告信息,提醒通过 connect_bpmn_elements 添加必要的序列流。