PlantUMLSAFE
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://smithery.ai/server/@infobip/plantuml-mcp-server)
A Model Context Protocol (MCP) server that provides PlantUML diagram generation capabilities for Claude Desktop and Claude Code.
Available Tools
- `generate_plantuml_diagram` - Generate diagrams and get embeddable URLs (SVG/PNG), optionally save locally
- `encode_plantuml` - Encode PlantUML code for URL sharing
- `decode_plantuml` - Decode PlantUML from encoded strings
Available Prompts
- `plantuml_error_handling` - Guidelines for handling PlantUML syntax errors and implementing auto-fix workflows
This prompt provides Claude instances with comprehensive instructions on how to:
- Detect PlantUML syntax errors using native server validation
- Implement intelligent auto-fix workflows for common syntax issues
- Parse structured error responses and apply appropriate corrections
- Handle validation failures gracefully with retry logic
The prompt enables Claude to automatically detect and fix common PlantUML errors like missing tags, invalid arrow syntax, typos in keywords, and missing quotes, making PlantUML diagram generation more reliable and user-friendly.
Quick Setup
For Claude Code
# Using default PlantUML server claude mcp add plantuml --scope user --env PLANTUML_SERVER_URL=https://www.plantuml.com/plantuml -- npx plantuml-mcp-server
For Claude Desktop
Add this to your Claude Desktop MCP configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"plantuml": {
"command": "npx",
"args": ["plantuml-mcp-server"],
"env": {
"PLANTUML_SERVER_URL": "https://www.plantuml.com/plantuml"
}
}
}
}To use your own PlantUML server, change the PLANTUML_SERVER_URL environment variable.
Then restart Claude Desktop/Code to a
9576d024ffa1OBSERVED · 2026-10-08Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add plantuml-mcp-server -- npx -y [email protected]
{
"mcpServers": {
"plantuml-mcp-server": {
"command": "npx",
"args": [
"-y",
"[email protected]"
]
}
}
}Exposed tools (4)
4 read · 0 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
decode_plantuml | read | Decode encoded PlantUML string back to PlantUML code |
encode_plantuml | read | Encode PlantUML code for URL usage |
generate_plantuml_diagram | read | Generate a PlantUML diagram with automatic syntax validation and error reporting for auto-fix workflows. Returns embeddable image URLs for valid diagrams or structured error details for invalid syntax that can be automatically corrected. Optionally saves the diagram to a local file. |
plantuml_error_handling | read | Guidelines for handling PlantUML syntax errors and implementing auto-fix workflows |
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (3)
const result = isPathAllowed('../../../etc/diagram.svg');. Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.
What credentials does PlantUML need?
No credential environment variables were found in its source, so it appears to need none.
How does PlantUML run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as plantuml-mcp-server at 0.2.4.
How current is this page?
The grade is for one exact copy of the source (9576d024ffa1), read on 2026-10-08. The repository is watched and re-audited when it changes.