DMN图表服务

一个用于创建和操作DMN(决策模型与表示法)图表的AI辅助服务器,支持DMN 1.3 XML和SVG输出,并集成了FEEL表达式解析和Camunda扩展支持。

  • by datakurre
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 datakurre/dmn-js-mcp

使用说明

dmn js mcp

MCP(模型上下文协议)服务器,用于使用AI助手创建和操纵DMN(决策模型和符号)图。

用途 DMN-JS 通过jsdom无头运行以生成有效的DMN 1.3 XML和SVG输出。整合 感觉 用于FEEL表达式解析和 卡姆达dmn模型 Camunda扩展支持。

特性

18个MCP工具

类别 工具
核心 create_dmn_diagram, export_dmn, delete_dmn_diagram, summarize_dmn_diagram, dmn_history, batch_dmn_operations
布局 layout_dmn_diagram
DRD元件 add_dmn_element, connect_dmn_elements, delete_dmn_element, list_dmn_elements, set_dmn_element_properties
决策表 get_dmn_decision_logic, add_dmn_column, add_dmn_rule, edit_dmn_cell
字面表达。 set_dmn_literal_expression
感觉 validate_dmn_feel_expression

DRD(决策要求图)

  • 创建、导入和删除DMN图表
  • 添加DRD元素:决策、输入数据、业务知识模型、知识源、文本注释
  • 连接要素:信息要求、知识要求、权限要求、关联
  • 通过ELK(杉山分层算法)自动布局
  • 导出DMN XML和SVG
  • 通过命令栈历史撤消/重做

决策表

  • 添加/删除输入和输出列(统一 add_dmn_column)
  • 添加/删除规则(行)
  • 设置命中策略(唯一、第一、优先级、任意、收集、规则顺序、输出顺序)
  • 使用FEEL表达式编辑单个单元格条目
  • 分析决策表的完整性

感觉表达

  • 通过feelin解析和验证FEEL表达式
  • 为决策设置文字表达

批量操作

  • 将多个工具调用合并到一个原子请求中
  • 故障时自动回滚

MCP资源

  • dmn://diagrams --列出所有内存关系图
  • dmn://diagram/{id}/summary --轻量级图表摘要
  • dmn://diagram/{id}/validate --结构验证
  • dmn://diagram/{id}/variables --输入/输出可变库存
  • dmn://diagram/{id}/xml --当前DMN XML

MCP提示

  • create-decision-table --分步决策表工作流程
  • create-decision-requirements-diagram --DRD施工指南
  • batch-operations-patterns --常见批量操作配方
  • add-camunda-properties --Camunda 7配置指南

Camunda 7支持

  • 通过Camunda DMN moddle(historyTimeToLive,versionTag)获取Camunda特定的DMN属性
  • 决策和定义的扩展属性
  • 输入/输出变量名映射

库模式

导入 dmn-js-mcp 作为与其他MCP服务器集成的库:

import { dmnModule } from 'dmn-js-mcp';
const modules: ToolModule[] = [bpmnModule, dmnModule];

快速开始

npm install
npm run build
npm start

克劳德桌面/光标/风帆

添加到MCP客户端配置中(例如。 claude_desktop_config.json):

{
  "mcpServers": {
    "dmn": {
      "command": "npx",
      "args": ["dmn-js-mcp"]
    }
  }
}

VS代码MCP配置

增添 .vscode/mcp.json:

{
  "servers": {
    "dmn": {
      "command": "npx",
      "args": ["dmn-js-mcp"]
    }
  }
}

坚持不懈:

{
  "servers": {
    "dmn": {
      "command": "npx",
      "args": ["dmn-js-mcp", "--persist-dir", "./diagrams"]
    }
  }
}

发展

npm install          # Install dependencies
npm run build        # Bundle with esbuild
npm run typecheck    # Type-check with tsc
npm run lint         # Lint with ESLint
npm test             # Run tests
npm run watch        # Rebuild on changes
npm run dev          # Watch + auto-restart via nodemon

或使用 make:

make help            # List all targets
make install build   # Install and build
make check           # Typecheck + lint
make test            # Run tests

建筑

看 docs/architecture.md 查看完整的模块依赖关系图。

关键库:

  • DMN-JS --DMN建模器(DRD、决策表、文字表达式编辑器)
  • dmn模块 --DMN 1.3 XML读/写
  • 卡姆达dmn模型 --Camunda命名空间扩展
  • 感觉 --FEEL表达式解析器和解释器
  • elkjs --自动DRD布局(杉山分层算法)
  • jsdom --无头浏览器环境

许可证

麻省理工学院