BPMN流程图生成工具

一个用于编程创建和操作BPMN 2.0工作流图的模型上下文协议服务器,支持生成、编辑和导出标准BPMN格式的业务流程图。

  • by dattmavis
  • JavaScript
  • 本地部署
  • 15 星标
  • 更新于
在 GitHub 查看 dattmavis/BPMN-MCP

使用说明

BPMN-MCP

用于以编程方式创建和操纵BPMN 2.0工作流图的模型上下文协议(MCP)服务器。此服务器使AI助手和其他工具能够以标准BPMN格式生成、编辑和导出业务流程图。

特性

  • 创建BPMN图:从头开始生成新的工作流程图
  • 添加流程元素:插入事件、任务、网关和子流程
  • 连接元素:在工作流组件之间创建序列流
  • 导出格式:将图表另存为BPMN 2.0 XML或SVG
  • 进口支持:加载和修改现有BPMN XML文件
  • 智能提示:获得有用的提示,以确保具有适当连接的完整工作流程

安装

先决条件

  • Node.js(v16或更高版本)
  • npm或纱线

本地设置

  1. 克隆存储库:
git clone https://github.com/dattmavis/BPMN-MCP.git
cd BPMN-MCP
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

配置

适用于克劳德桌面

将以下内容添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "bpmn": {
      "command": "node",
      "args": ["/absolute/path/to/BPMN-MCP/dist/index.js"]
    }
  }
}

替换 /absolute/path/to/BPMN-MCP 使用克隆此存储库的实际路径。

其他AI工具

此MCP服务器可与支持模型上下文协议的任何工具配合使用。将其配置为运行:

node /path/to/BPMN-MCP/dist/index.js

用法

配置后,您可以要求您的AI助手创建BPMN图。以下是一些示例请求:

创建简单工作流

Create a BPMN diagram for an order processing workflow with these steps:
1. Order Received (start event)
2. Validate Order (user task)
3. Process Payment (service task)
4. Order Complete (end event)

Connect them with sequence flows.

使用决策点创建工作流

Create a BPMN diagram for customer support ticket routing:
- Start: Ticket Received
- Task: Categorize Ticket
- Gateway: Check Priority
  - If High: Escalate to Senior Support
  - If Normal: Assign to Support Team
- Both paths lead to: Ticket Resolved (end)

可用工具

MCP服务器提供以下工具:

create_bpmn_diagram

创建新的BPMN图并返回图ID。

add_bpmn_element

向图表中添加元素。支持的类型:

  • 活动: bpmn:StartEvent, bpmn:EndEvent, bpmn:IntermediateCatchEvent, bpmn:IntermediateThrowEvent
  • 任务: bpmn:Task, bpmn:UserTask, bpmn:ServiceTask, bpmn:ScriptTask, bpmn:ManualTask, bpmn:BusinessRuleTask, bpmn:SendTask, bpmn:ReceiveTask
  • 网关: bpmn:ExclusiveGateway, bpmn:ParallelGateway, bpmn:InclusiveGateway, bpmn:EventBasedGateway
  • 其他: bpmn:SubProcess

connect_bpmn_elements

在两个元素之间创建序列流。

export_bpmn_xml

将图表导出为BPMN 2.0 XML格式。

export_bpmn_svg

将图表导出为SVG以进行可视化。

list_bpmn_elements

列出图表中的所有元素。

import_bpmn_xml

导入现有BPMN XML文件进行编辑。

输出示例

服务器生成可以在以下位置打开的标准BPMN 2.0 XML文件:

XML输出示例:

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
                   xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
                   xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
                   xmlns:di="http://www.omg.org/spec/DD/20100524/DI">
  <bpmn:process id="Process_1" isExecutable="true">
    <bpmn:startEvent id="Event_1" name="Start">
      <bpmn:outgoing>Flow_1</bpmn:outgoing>
    </bpmn:startEvent>
    <bpmn:task id="Task_1" name="Process">
      <bpmn:incoming>Flow_1</bpmn:incoming>
      <bpmn:outgoing>Flow_2</bpmn:outgoing>
    </bpmn:task>
    <bpmn:endEvent id="Event_2" name="End">
      <bpmn:incoming>Flow_2</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:sequenceFlow id="Flow_1" sourceRef="Event_1" targetRef="Task_1" />
    <bpmn:sequenceFlow id="Flow_2" sourceRef="Task_1" targetRef="Event_2" />
  </bpmn:process>
  <!-- Diagram information omitted for brevity -->
</bpmn:definitions>

发展

以开发模式运行

npm run watch

这将在源文件更改时自动重建项目。

测试

您可以使用MCP协议手动测试服务器:

node dist/index.js

然后通过stdin发送JSON-RPC请求。例子:

{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}

技术细节

建筑

  • 运行时:使用TypeScript的Node.js
  • BPMN引擎:bpmn-js(jsdom的无头模式)
  • 协议:模型上下文协议(MCP)
  • 输出:BPMN 2.0 XML标准

智能工作流提示

服务器提供了有用的提示,以确保图表完整:

  • 提醒您在添加任务/事件时连接元素
  • 导出具有断开连接元素的图表时发出警告
  • 建议使用 connect_bpmn_elements 创建适当的工作流程

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交问题或拉取请求。

支持

对于问题或疑问:

  • 在GitHub上打开一个问题
  • 检查现有问题的解决方案

相关项目