workspace/skills/uml-diagram/SKILL.md
UML and diagram generation via Kroki — class, sequence, activity, state, component, deployment, network, ER, C4, Mermaid, D2, Graphviz, BPMN, 27+ types. Use when generating a network diagram, creating a sequence diagram, drawing a rack layout, visualizing a protocol state machine, or producing architecture documentation.
npx skillsauth add automateyournetwork/netclaw uml-diagramInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Property | Value |
|----------|-------|
| Source | antoinebou12/uml-mcp |
| Transport | stdio (default) or HTTP |
| Tools | 2 (generate_uml, generate_diagram_url) |
| Resources | 8 (diagram types, templates, examples, formats, server info) |
| Prompts | 11 (class, sequence, activity, usecase, Mermaid, BPMN, etc.) |
| Rendering | Kroki (primary) with PlantUML and Mermaid.ink fallback |
generate_umlGenerate a diagram and optionally save to disk.
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| diagram_type | string | required | Diagram type (class, sequence, mermaid, d2, graphviz, etc.) |
| code | string | required | Diagram source code |
| output_dir | string | null | Directory to save file (null = no file write) |
| output_format | string | "svg" | Output format: svg, png, pdf, jpeg, txt, base64 |
| theme | string | null | PlantUML theme directive |
| scale | float | 1.0 | SVG scaling factor (min 0.1) |
Returns: { code, url, playground, local_path, content_base64, error }
generate_diagram_urlGet the Kroki rendering URL and optional base64 content without saving to disk.
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| diagram_type | string | required | Diagram type |
| code | string | required | Diagram source code |
| output_format | string | "svg" | Output format |
| theme | string | null | PlantUML theme |
| scale | float | 1.0 | SVG scaling factor |
Returns: { code, url, playground, content_base64, error }
| Type | Description | Use Case |
|------|-------------|----------|
| class | Class diagrams | Object relationships, inheritance, interfaces |
| sequence | Sequence diagrams | Message flows between components |
| activity | Activity diagrams | Workflow and process flows |
| usecase | Use case diagrams | Actor-system interactions |
| state | State machine diagrams | FSM, protocol states |
| component | Component diagrams | System architecture |
| deployment | Deployment diagrams | Infrastructure layout |
| object | Object diagrams | Instance-level relationships |
| c4plantuml | C4 architecture | System context, container, component views |
| plantuml | Generic PlantUML | Any PlantUML syntax |
| Type | Description | Use Case |
|------|-------------|----------|
| nwdiag | Network diagrams | Network topology, IP addressing, VLANs |
| rackdiag | Rack diagrams | Data center rack layouts |
| packetdiag | Packet diagrams | Protocol header formats (Ethernet, IP, TCP) |
| blockdiag | Block diagrams | System block diagrams |
| actdiag | Activity diagrams | Activity flow (blockdiag family) |
| seqdiag | Sequence diagrams | Sequence flow (blockdiag family) |
| Type | Description | Use Case |
|------|-------------|----------|
| mermaid | Mermaid diagrams | Flowcharts, Gantt, sequence, pie, journey |
| d2 | D2 declarative | Modern declarative diagrams |
| graphviz | Graphviz DOT | Graph layouts, dependency trees |
| erd | Entity-Relationship | Database schema diagrams |
| dbml | Database Markup | Database schema (DBML syntax) |
| bpmn | BPMN 2.0 | Business process modeling |
| structurizr | Structurizr DSL | C4 model architecture |
| ditaa | ASCII art to diagram | Convert ASCII art to polished diagrams |
| wavedrom | Digital timing | Protocol timing diagrams, signal waveforms |
| wireviz | Wire/cable harness | Cable and connector documentation |
| bytefield | Byte field | Binary format documentation |
generate_uml(
diagram_type="nwdiag",
code="""
nwdiag {
network dmz {
address = "210.x.x.x/24"
web01 [address = "210.x.x.1"];
web02 [address = "210.x.x.2"];
}
network internal {
address = "172.x.x.x/24"
web01 [address = "172.x.x.1"];
web02 [address = "172.x.x.2"];
db01;
}
}
""",
output_format="svg"
)
generate_uml(
diagram_type="rackdiag",
code="""
rackdiag {
16U;
1: UPS;
2: UPS;
3: Patch Panel;
4: Catalyst 9300;
5: Catalyst 9300;
6: Nexus 9000;
7: Nexus 9000;
8: ASR 1001-X;
9: ASR 1001-X;
10: BIG-IP i5800;
11: BIG-IP i5800;
12: UCS C220;
13: UCS C220;
14: UCS C220;
15: UCS C220;
16: Cable Management;
}
""",
output_format="png"
)
generate_uml(
diagram_type="packetdiag",
code="""
packetdiag {
colwidth = 32
node_height = 72
0-3: Version
4-7: IHL
8-15: DSCP / ECN
16-31: Total Length
32-47: Identification
48-50: Flags
51-63: Fragment Offset
64-71: TTL
72-79: Protocol
80-95: Header Checksum
96-127: Source Address
128-159: Destination Address
}
""",
output_format="svg"
)
generate_uml(
diagram_type="state",
code="""
@startuml
[*] --> Idle
Idle --> Connect : Start
Connect --> OpenSent : TCP established
Connect --> Active : TCP failed
Active --> OpenSent : TCP established
Active --> Connect : ConnectRetry timer
OpenSent --> OpenConfirm : OPEN received (valid)
OpenSent --> Idle : OPEN received (error)
OpenConfirm --> Established : KEEPALIVE received
OpenConfirm --> Idle : Hold timer expired
Established --> Idle : NOTIFICATION / Hold expired
Established : Process UPDATE messages
@enduml
""",
output_format="svg"
)
generate_uml(
diagram_type="class",
code="""
@startuml
package "Area 0 - Backbone" {
class "Core-1" as C1 { router-id: 1.1.1.1 }
class "Core-2" as C2 { router-id: 2.2.2.2 }
C1 -- C2 : 10G P2P
}
package "Area 1 - Campus" {
class "Dist-1" as D1 { router-id: 3.3.3.3 }
class "Dist-2" as D2 { router-id: 4.4.4.4 }
}
package "Area 2 - DC" {
class "Spine-1" as S1 { router-id: 5.5.5.5 }
class "Spine-2" as S2 { router-id: 6.6.6.6 }
}
C1 -- D1 : ABR
C2 -- D2 : ABR
C1 -- S1 : ABR
C2 -- S2 : ABR
@enduml
""",
output_format="svg"
)
generate_uml(
diagram_type="sequence",
code="""
@startuml
actor Engineer
participant NetClaw
participant ServiceNow
participant Device
participant GAIT
Engineer -> NetClaw : "Add Loopback99"
NetClaw -> ServiceNow : Create Change Request
ServiceNow --> NetClaw : CR-12345 (New)
NetClaw -> ServiceNow : Wait for approval
ServiceNow --> NetClaw : CR-12345 (Implement)
NetClaw -> Device : Capture baseline
Device --> NetClaw : Running config
NetClaw -> Device : Apply config
Device --> NetClaw : Config applied
NetClaw -> Device : Verify change
Device --> NetClaw : Loopback99 up/up
NetClaw -> ServiceNow : Close CR-12345
NetClaw -> GAIT : Record full audit trail
NetClaw --> Engineer : Done. Verified.
@enduml
""",
output_format="svg"
)
generate_uml(
diagram_type="structurizr",
code="""
workspace {
model {
engineer = person "Network Engineer"
netclaw = softwareSystem "NetClaw" {
openclaw = container "OpenClaw Agent"
pyats = container "pyATS MCP"
gait = container "GAIT MCP"
}
network = softwareSystem "Network Devices"
servicenow = softwareSystem "ServiceNow"
engineer -> openclaw "Chat"
openclaw -> pyats "MCP (stdio)"
openclaw -> gait "MCP (stdio)"
pyats -> network "SSH/NETCONF"
openclaw -> servicenow "REST API"
}
views {
container netclaw {
include *
autoLayout
}
}
}
""",
output_format="svg"
)
pyats-topology → CDP/LLDP discovery data
→ generate_uml(type="nwdiag") → network topology diagram
→ msgraph-files → upload to SharePoint
→ GAIT
generate_uml(type="state") → BGP/OSPF/STP state machine
→ Share in Slack/Teams for team reference
→ GAIT
servicenow-change-workflow → CR details
→ generate_uml(type="sequence") → change flow diagram
→ Attach to ServiceNow CR or GAIT log
→ GAIT
generate_uml(type="rackdiag") → rack layout
→ generate_uml(type="nwdiag") → network connections
→ Cross-reference with NetBox rack/device data
→ msgraph-files → upload to SharePoint
→ GAIT
generate_uml(type="packetdiag") → protocol header diagram
→ rfc-lookup → verify against RFC
→ Share as reference material
→ GAIT
generate_uml(type="structurizr" or "c4plantuml") → C4 architecture views
→ generate_uml(type="deployment") → deployment diagram
→ generate_uml(type="component") → component breakdown
→ msgraph-files → upload to SharePoint
→ GAIT
| Skill | Integration | |-------|-------------| | pyats-topology | Feed CDP/LLDP discovery data into nwdiag for topology diagrams | | drawio-diagram | UML MCP for standards-based UML; Draw.io for freeform network diagrams | | markmap-viz | Markmap for hierarchical mind maps; UML for structured diagrams | | netbox-reconcile | Generate nwdiag diagrams color-coded by reconciliation status | | rfc-lookup | Pair packetdiag with RFC references for protocol documentation | | servicenow-change-workflow | Sequence diagrams documenting change request flows | | msgraph-files | Upload generated diagrams to SharePoint | | msgraph-teams | Share diagram URLs in Teams channels | | gait-session-tracking | Record all diagram generation in GAIT |
| Feature | UML MCP | Draw.io | Markmap | |---------|---------|---------|---------| | Best for | Structured UML, protocol diagrams, architecture | Freeform network topology | Hierarchical mind maps | | Diagram types | 27+ (class, sequence, nwdiag, rack, packet, etc.) | Network topology, flowcharts | Mind maps from markdown | | Rendering | Kroki (server-side) | Browser or CLI | Browser | | Output | SVG, PNG, PDF, JPEG | .drawio, PNG, SVG, PDF | HTML | | Code-based | Yes (PlantUML, Mermaid, D2, DOT, etc.) | XML/Mermaid/CSV | Markdown | | Network-specific | nwdiag, rackdiag, packetdiag | Full topology editor | OSPF/BGP hierarchies |
When to use UML MCP:
When to use Draw.io:
When to use Markmap:
KROKI_SERVER) for sensitive topology datatools
Zoom meeting intelligence — correlates a live or referenced Zoom meeting discussion against NetClaw's historical meeting record (via the official Zoom Meetings MCP) and today's actual network state. Use when someone in a Zoom meeting references a past discussion or incident ('didn't we have this issue before?'), or asks to search prior meetings for a topic. Does not itself recognize live in-meeting questions — that happens automatically inside zoom-rtms-mcp's own extractor (spec 118) before this skill is ever invoked.
tools
Manage Lantronix out-of-band (OOB) infrastructure via Percepxion central management platform: device inventory, serial port inspection via SLC CLI, firmware compliance, config management, security auditing, and closed-loop incident remediation. Use during outages, maintenance windows, compliance cycles, and AI-assisted automation workflows.
tools
Federate your NetClaw with other NetClaw operators over the BGP mesh — exchange capability inventories and ask your claw what a peer can do. (US1; remote invocation and chat land in later phases.)
tools
Track token consumption, enforce session budgets, and display cost for every NetClaw interaction.