Skip to content

About

No description, website, or topics provided.

Resources

Stars

55 stars

Watchers

2 watching

Forks

Repository files navigation

PlantUML MCP Server

LightNow capabilities

A Model Context Protocol (MCP) server that provides PlantUML diagram generation capabilities for Claude Desktop and Claude Code.

Available Tools

  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

Available Prompts

  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.

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 activate the MCP server.

What You Can Do

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

Saving Diagrams Locally

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:

# Allow specific directories (colon-separated)
PLANTUML_ALLOWED_DIRS=/home/user/diagrams:/tmp/output

# Allow any directory (use with caution)
PLANTUML_ALLOWED_DIRS=*

Examples

C4 diagram for plantuml-mcp-server

> add c4 diagram for this project in readme 'C4 diagram for plantuml-mcp-server' section

C4 Container Diagram - PlantUML MCP Server

Sequence diagram for plantuml-mcp-server

> add sequence diagram in readme in architecture section

PlantUML MCP Server Architecture

OAuth2 Authorization Code Flow Diagram

> show me basic oauth2 flow png, open it in browser

OAuth2 Authorization Code Flow


Development Setup

Prerequisites

  • Node.js 22.12.0 or later
  • npm

Local Installation

# Clone and setup
git clone https://github.com/mzagar/plantuml-mcp-server.git
cd plantuml-mcp-server
make setup

Development Commands

# Show all available commands
make help

# Build and run all tests
make clean build test-all

Local MCP Smoke Test

Test the compiled server in this checkout through mcpc:

Requires Node.js 22.12.0 or later, npm, Make, and network access.

# Install project dependencies, then build and test the local server
npm ci --ignore-scripts --no-audit --no-fund --engine-strict
make test-mcpc

If mcpc is missing from PATH, the target installs the official Apify CLI with npm install --global --no-audit --no-fund @apify/mcpc. It reuses an existing installation without upgrading it and checks mcpc --version before testing. The smoke test has been verified with mcpc 0.6.0.

This is a global CLI installation, not a project dependency. It requires permission to write to the npm global prefix. The target never uses sudo. If installation fails or the CLI is still not on PATH, the test stops with instructions. You can also install it manually with npm install -g @apify/mcpc.

make test-mcp is an alias. make test-all runs the unit/type checks and this MCP test, including the CLI installation check. Running node scripts/test-mcpc.mjs directly does not install the CLI.

The test verifies all three tools, the prompt, Unicode roundtrip, diagram URLs, SVG/PNG files, C4 rendering, syntax errors, and output-path restrictions.

It always renders synthetic diagrams through https://www.plantuml.com/plantuml, so network access is required. It does not use a published npm server or an existing user session.

The runner creates its own temporary config, private MCPC_HOME_DIR, working directory, and output directory. Its @local session is isolated from user sessions and closed after success, failure, or interruption. It retains images and results.json in the artifact directory printed by the command.

Success ends with PASS local mcpc smoke test and exit code 0. Missing prerequisites, network errors, failed assertions, or cleanup failures return a nonzero exit code.

For a trusted corporate CA, run:

NODE_EXTRA_CA_CERTS=/absolute/path/to/trusted-ca.pem make test-mcpc

The runner forwards this setting to the server. Do not disable TLS validation. If cleanup fails, use its printed private home: MCPC_HOME_DIR="<artifact-directory>/mcpc" mcpc close @local. Do not close sessions in your default mcpc home.

Agent instructions are in AGENTS.md.

Environment Variables

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

License

MIT License - see LICENSE file for details.

MCP Registry Listings

About

No description, website, or topics provided.

Resources

Stars

55 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages