Token导航 LogoToken导航TokenDH.com
Plantuml Csa MCP Server logo
运维云端stdio官方级别未说明来源级核验

Plantuml Csa MCP Server

MCP Server

通过PlantUML和模型上下文协议(MCP)生成控制系统架构图,支持ISA-95 Purdue模型、工业符号和多种协议可视化。

工具数

9

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude云端部署Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

puran-water

提供方

puran-water

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run python -c "from src.renderer import PlantUMLRunner; print(PlantUMLRunner().check_available())"

详细介绍

PlantUML CSA MCP服务器

通过模型上下文协议(MCP)使用PlantUML生成控制系统架构(CSA)图。

特性

  • ISA-95普渡模型 -带颜色编码级别(0-4)的区域包
  • 工业符号 -36+组件类型(10个控制器,26个设备)
  • 协议可视化 -12种协议,具有不同的线条颜色
  • 架构模板 -5个用于常见配置的预定义模板
  • Bootstrap来自技能 -根据设备清单+仪器io技能生成拓扑图
  • 多布局引擎 -Graphviz、斯美塔那、ELK
  • 可共享URL -生成PlantUML服务器链接
  • 与FreeCAD相同的架构 -可互操作的YAML拓扑格式

项目结构

plantuml-csa-mcp-server/
├── src/
│   ├── __init__.py              # Package entry point
│   ├── __main__.py              # Module runner (python -m src)
│   ├── server.py                # FastMCP server with 8 MCP tools
│   ├── models/
│   │   └── csa_topology.py      # Pydantic models (same as FreeCAD CSA)
│   ├── converter/
│   │   ├── topology_to_puml.py  # YAML topology → PlantUML source
│   │   ├── sprites.py           # ISA symbol definitions (36+ types)
│   │   └── layout_hints.py      # Purdue-aware layout directives
│   ├── renderer/
│   │   └── plantuml_runner.py   # PlantUML CLI wrapper (JAR/native/Docker)
│   ├── encoder/
│   │   └── plantuml_encoder.py  # Text encoding for shareable URLs
│   ├── templates/
│   │   └── architecture_templates.py  # 5 architecture templates
│   └── bootstrap/
│       └── csa_bootstrap.py     # Bootstrap from equipment/IO lists
├── tests/                       # 56 tests
├── docs/
│   └── completed-plans/         # Implementation plan
├── pyproject.toml
├── CLAUDE.md                    # Development guide
└── README.md

安装

# Clone and install
cd plantuml-csa-mcp-server
uv sync

# Verify PlantUML is available
uv run python -c "from src.renderer import PlantUMLRunner; print(PlantUMLRunner().check_available())"

快速开始

1.添加到MCP配置

添加到您的 .mcp.json:

{
  "mcpServers": {
    "plantuml-csa-mcp": {
      "type": "stdio",
      "command": "uv",
      "args": ["--directory", "/path/to/plantuml-csa-mcp-server", "run", "python", "-m", "src"],
      "description": "PlantUML CSA diagram generation (ISA-95 Purdue model)"
    }
  }
}

2.生成图表

# topology.yaml
schema_version: "1.0"
metadata:
  project_name: "Sample WWTP CSA"
zones:
  - id: "level_0"
    purdue_level: 0
  - id: "level_1"
    purdue_level: 1
controllers:
  - id: "PLC-101"
    type: PLC
    zone: "level_1"
devices:
  - id: "RIO-101"
    type: RemoteIO
    parent_controller: "PLC-101"
    zone: "level_0"
links:
  - source: "PLC-101"
    target: "RIO-101"
    protocol: "Ethernet_IP"

然后使用MCP工具:

# Get PlantUML source for version control
csa_get_plantuml_source(topology_yaml=yaml_content)

# Generate SVG diagram
csa_generate_diagram(topology_yaml=yaml_content, format="svg")

# Get shareable URL
csa_encode_plantuml(plantuml_source=puml_source)

MCP工具参考

工具目的
csa_generate_diagram将拓扑YAML渲染为SVG/PNG
csa_get_plantuml_source获取.pump版本控制源
csa_validate_topology根据架构验证YAML
csa_list_symbols列出可用的ISA样式符号
csa_encode_plantuml生成可共享的PlantUML URL
csa_list_templates列出架构模板
csa_render_preview迭代快速预览
csa_check_plantuml检查PlantUML可用性
csa_bootstrap_from_io设备/IO列表中的Bootstrap拓扑

架构模板

通用控制系统配置的预定义模板:

模板描述用例
centralized中央MCC+中央PLC小型工厂(\20 MLD)
hybrid_safety中央安全+分布式过程SIL/SIS要求
vendor_package_integration通过OPC-UA的OEM包多个供应商包

技能输出引导

根据设备清单技能和仪器io技能输出生成CSA拓扑:

csa_bootstrap_from_io(
    equipment_list_qmd=equipment_qmd_content,
    instrument_database_yaml=io_database_yaml,
    project_name="WWTP Control System",
    architecture_template="fully_distributed"
)
# Returns: {topology_yaml, suggestions, io_summary, equipment_mapping}

支持的组件

控制器(10种)

PLC、DCS、PAC、安全PLC、软PLC、边缘控制器、运动控制器、冗余PLC、RTU、SIS

设备(26种)

RemoteIO、HMI、SCADA、Historian、OPC_UA_Server、网关、VFD、软启动器、MCC、工业PC、交换机、管理交换机、路由器、防火墙、无线_AP、媒体转换器、网络_TAP、电机启动器、工程_WS、面板-PC、数据记录器、接线盒、编组柜、本地面板、远程面板、仪器机架

协议(12种)

Ethernet_IP、Profinet、Modbus_TCP、Modbus_RTU、Profibus、DeviceNet、ControlNet、HART、Foundation现场总线、OPC_UA、MQTT、BACnet

测试

# Run all tests
uv run pytest tests/ -v

# Run with coverage
uv run pytest tests/ --cov=src

与FreeCAD CSA

方面PlantUML CSAFreeCAD CSA
输出SVG/PNGTechDraw PDF
版本控制纯文本.puml二进制。FCStd
依赖关系Java/PlantMULFreeCAD运行时
最适合文档CAD可交付成果

两者都用:相同的YAML拓扑结构适用于两个渲染器。使用PlantUML进行快速迭代和记录,使用FreeCAD绘制最终工程图纸。

工作流集成

此服务器是puran水控制系统架构工作流的一部分:

┌─────────────────────────┐     ┌──────────────────────────┐     ┌─────────────────────┐
│  equipment-list-skill   │ ──► │  instrument-io-skill     │ ──► │  csa-diagram-skill  │
│  (equipment + feeder)   │     │  (IO lists, patterns)    │     │  (CSA generation)   │
└─────────────────────────┘     └──────────────────────────┘     └─────────────────────┘
                                                                            │
                                                                            ▼
                                                                 ┌─────────────────────┐
                                                                 │ plantuml-csa-mcp    │
                                                                 │ (this server)       │
                                                                 └─────────────────────┘
                                                                            │
                                                                            ▼
                                                                 ┌─────────────────────┐
                                                                 │ CSA Topology YAML   │
                                                                 │ PlantUML PNG/SVG    │
                                                                 │ Shareable URLs      │
                                                                 └─────────────────────┘

相关项目

上游(数据源)

同伴技能

相似模式(电气)

替代渲染器

许可证

麻省理工学院

目录标签

目录标签

PythonClaude云端部署控制系统架构本地部署PlantUMLISA-95工业自动化协议可视化YAML拓扑

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

9

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP