mcpField
P
Plantuml Mcp Server

Plantuml Mcp Server

Local
github.com/infobipDeveloper Tools55Updated 1d ago

About Plantuml Mcp Server

Plantuml Mcp Server is an MCP server for generating and sharing PlantUML diagrams, aimed at Claude Desktop and Claude Code. It also encodes and decodes diagram text and provides a prompt for handling syntax errors.

Key features

  1. 01Generate diagrams with SVG or PNG URLs
  2. 02Save SVG and PNG files locally
  3. 03Encode and decode PlantUML text
  4. 04Provide syntax-error handling prompt

Use cases

  1. 01Create sequence, class, and architecture diagrams
  2. 02Share diagram source through encoded URLs
  3. 03Validate and correct common PlantUML syntax issues

MCP support

The server exposes diagram generation, encoding, and decoding tools, plus the plantuml_error_handling prompt to MCP clients such as Claude Desktop and Claude Code.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"plantuml-mcp-server-infobip": {
"command": "npx",
"args": [
"-y",
"plantuml-mcp-server"
],
"env": {
"PLANTUML_SERVER_URL": "<PLANTUML_SERVER_URL>"
}
}
}
}
Run commandnpx -y plantuml-mcp-server
Environment variables to set
PLANTUML_SERVER_URL

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmplantuml-mcp-server

Tools

3

Saved tool list · updated 3w ago

ParameterTypeRequiredDescription
plantuml_codestringYesPlantUML diagram code. Will be automatically validated for syntax errors before generating the diagram URL.
formatenumNoOutput image format (SVG or PNG)svg | png
output_pathstringNoOptional. Path to save diagram locally. Automatically creates all necessary parent directories. Restricted to current working directory by default. Set PLANTUML_ALLOWED_DIRS env var (colon-separated paths, or "*" for unrestricted) to allow additional directories. Only .svg and .png extensions permitted.

Details

From the project README

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
VariableDescriptionDefault
PLANTUML_SERVER_URLPlantUML server URLhttps://www.plantuml.com/plantuml
PLANTUML_ALLOWED_DIRSAdditional directories for output_path (colon-separated, or * for any)CWD only

License

MIT License - see LICENSE file for details.

MCP Registry Listings

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.