PlantUML MCP Server
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
ob-fileexport via signed download URLs (OB_FILE_API_BASE_URL)๐ Optional OIDC client-credentials flow for
ob-file(OB_FILE_OIDC_*)๐ Fallback shared-volume export (
GENERATED_FILES_DIR+PUBLIC_FILE_BASE_URL)
Requirements
Node.js 18+
npm 9+
npm install
npm run build # emits dist/plantuml-mcp-server.jsUse 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
MCP_TRANSPORT=http \
MCP_HOST=0.0.0.0 \
MCP_PORT=8765 \
MCP_HTTP_PATH=/mcp \
node dist/plantuml-mcp-server.jsPOST /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
MCP_TRANSPORT=sse \
MCP_HOST=0.0.0.0 \
MCP_PORT=8765 \
MCP_SSE_PATH=/sse \
MCP_SSE_MESSAGES_PATH=/messages \
node dist/plantuml-mcp-server.jsClients connect to
/sse(GET) for events and POST JSON messages to/messages.Sample config for Claude Desktop / Flowise:
client_config_sse.json.
STDIO transport
MCP_TRANSPORT=stdio npx plantuml-mcp-server
# or run the compiled file directly
MCP_TRANSPORT=stdio node dist/plantuml-mcp-server.jsIdeal 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 |
| unset |
|
| unset | Bearer token used to call the |
| unset | Authelia OIDC discovery URL used to obtain a service access token |
| unset | Optional direct token endpoint override (useful for internal service-to-service calls) |
| unset | OIDC client identifier used by |
| unset | OIDC client secret used by |
|
| Scope requested during the client-credentials token request |
|
| Audience requested during the client-credentials token request |
| unset | Optional |
| unset | Optional |
|
| Fallback local/shared-volume directory when |
|
| Fallback base URL returned when using shared-volume export |
| unset | When |
When OB_FILE_API_BASE_URL is configured, rendered diagrams are uploaded through ob-file and the MCP response returns the signed download_url generated by ob-file. If OB_FILE_OIDC_DISCOVERY_URL, OB_FILE_OIDC_CLIENT_ID, and OB_FILE_OIDC_CLIENT_SECRET are configured, the server obtains and caches an access token automatically via OAuth 2.0 client credentials. The shared-volume path remains as a compatibility fallback for local/dev setups.
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:
docker build -t plantuml-mcp-server .
docker run --rm -e MCP_TRANSPORT=http -p 8765:8765 plantuml-mcp-serverOverride 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!
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sysam68/plantuml-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server