MCP server for generating PlantUML diagrams
npm install plantuml-mcp-server
A Model Context Protocol (MCP) server that provides PlantUML diagram generation capabilities for Claude Desktop and Claude Code.
1. generate_plantuml_diagram - Generate diagrams and get embeddable URLs (SVG/PNG), optionally save locally
2. encode_plantuml - Encode PlantUML code for URL sharing
3. decode_plantuml - Decode PlantUML from encoded strings
1. 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.
``bash`Using default PlantUML server
claude mcp add plantuml --scope user --env PLANTUML_SERVER_URL=https://www.plantuml.com/plantuml -- npx plantuml-mcp-server
Add this to your Claude Desktop MCP configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
`json`
{
"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 activate the MCP server.
After setup, you can ask Claude to:
- Generate PlantUML diagrams and get embeddable SVG/PNG URLs
- Create sequence diagrams, class diagrams, architecture diagrams
- Use advanced PlantUML features like !include directives and external libraries
- Encode/decode PlantUML for URL sharing
- Save diagrams locally with secure path restrictions
The generate_plantuml_diagram tool supports saving diagrams to local files via the output_path parameter.
Security: By default, files can only be saved within the current working directory. Only .svg and .png extensions are allowed.
To allow additional directories, set the PLANTUML_ALLOWED_DIRS environment variable:`bashAllow specific directories (colon-separated)
PLANTUML_ALLOWED_DIRS=/home/user/diagrams:/tmp/output
---
Examples
$3
`
> add c4 diagram for this project in readme 'C4 diagram for plantuml-mcp-server' section
`!C4 Container Diagram - PlantUML MCP Server
$3
`
> add sequence diagram in readme in architecture section
`!PlantUML MCP Server Architecture
$3
`
> show me basic oauth2 flow png, open it in browser
`!OAuth2 Authorization Code Flow
---
Development Setup
$3
- Node.js 18+
- npm$3
`bash
Clone and setup
git clone https://github.com/mzagar/plantuml-mcp-server.git
cd plantuml-mcp-server
make setup
`$3
`bash
Show all available commands
make helpBuild and run all tests
make clean build test-all
`$3
| Variable | Description | Default |
|----------|-------------|---------|
|
PLANTUML_SERVER_URL | PlantUML server URL | https://www.plantuml.com/plantuml |
| PLANTUML_ALLOWED_DIRS | Additional directories for output_path (colon-separated, or *` for any) | CWD only |MIT License - see LICENSE file for details.