Generates PlantUML diagrams including capability landscapes, business scenarios, and sequence diagrams, with tools for encoding/decoding PlantUML syntax and rendering shareable diagram URLs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PlantUML MCP Servergenerate a sequence diagram for user login flow"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PlantUML MCP Server
Flexible Model Context Protocol (MCP) server that turns PlantUML snippets into shareable diagrams.
All capabilities are exposed over HTTP, Server-Sent Events (SSE), and STDIO, so you can plug the server into Claude Desktop, Flowise, or any other MCP-compatible runtime.
Key Features
π§° Tools:
generate_plantuml_diagram,generate_capability_landscape,generate_business_scenario,encode_plantuml,decode_plantumlπ§Ύ Prompts:
plantuml_error_handling,capability_landscape_input_format,archimate_diagram_input_format,business_scenario_input_formatπ Static resources:
resource://plantuml/server-guide,resource://plantuml/archimate-mappingπ Optional Bearer authentication via
MCP_API_KEYβοΈ Optional shared storage export (
GENERATED_FILES_DIR+PUBLIC_FILE_BASE_URL)
Requirements
Node.js 18+
npm 9+
Use npx plantuml-mcp-server or node dist/plantuml-mcp-server.js once built.
Transport Modes
Mode | When to use | How to start |
HTTP (default) | Direct REST-style integration, reverse proxies, health checks |
|
SSE | Claude Desktop / Flowise over the network with push updates |
|
STDIO | Local CLI tools (npx, Claude Code CLI, Flowise managed process) |
|
HTTP transport
POST /mcpto initialize and send JSON-RPC payloads.GET /mcpandDELETE /mcpkeep the streamable session alive.GET /healthzis available for readiness probes.Sample client settings:
client_config_http.json.
SSE transport
Clients connect to
/sse(GET) for events and POST JSON messages to/messages.Sample config for Claude Desktop / Flowise:
client_config_sse.json.
STDIO transport
Ideal for local experiments,
mcpCLI, or Flowise nodes that spawn the binary.Example setups live in
client_config_stdio.json.
Sample Client Configurations
client_config_http.jsonβ streamable HTTP (default/mcp)client_config_sse.jsonβ SSE + dedicatedmessagesUrlclient_config_stdio.jsonβ STDIO examples fornpxand Flowise-managed processes
Drop these files into your MCP-aware client or copy the snippets as needed. Update hostnames, ports, and API keys to match your deployment.
Environment Variables
Variable | Default | Purpose |
|
|
|
|
| Upstream PlantUML renderer |
|
|
|
|
| Bind address + port (HTTP/SSE) |
|
| HTTP JSON-RPC endpoint |
|
| Return JSON body when true (for debugging) |
|
| SSE stream endpoint |
|
| Message ingestion endpoint |
| unset | Enables Bearer auth when provided |
|
| Where rendered diagrams are persisted |
|
| Base URL returned to clients for persisted diagrams |
| unset | When |
Tools, Prompts & Resources
Tools are automatically registered through
tools/list. They perform validation, optional auto-fixes, and return structured metadata (success, URLs, markdown snippets, encoded diagram data, and validation errors).Prompts guide the model through PlantUML error handling and provide a ready-made capability landscape template.
Resource templates expose onboarding content (
resource://plantuml/server-guide) so clients can self-discover usage instructions.
Docker Image
The provided Dockerfile builds the TypeScript sources and produces a minimal runtime image:
Override environment variables (PLANTUML_SERVER_URL, MCP_API_KEY, etc.) as needed.
Testing & Tooling
npm run buildβ compile TypeScriptnpm startβ run using the default HTTP transportnpm run start:sse/npm run start:stdioβ convenience scriptsnpm run test:business-scenarioβ snapshot test that convertstest_files/generate_sequence_diagram/payload.jsoninto PlantUML and compares it toexpected.pumlmake test-mcpβ smoke-test commands through themcpCLI
Need Help?
Verify connectivity with
curl http://<host>:<port>/healthzConfirm auth headers match
MCP_API_KEY(Bearer token) if enabledUse the MCP Inspector or Flowise node logs to trace JSON-RPC payloads
The server ships with everything required to operate over HTTP, SSE, and STDIO. Plug in the transport that matches your environment and start generating diagrams!