Skip to main content
Glama

🧩 plantuml-mcp

Servidor MCP (Model Context Protocol) que le da a Claude la capacidad de generar diagramas UML con PlantUML y devolverte la imagen directamente en el chat.

Le pides "hazme un diagrama de secuencia del flujo de un McDonald's" → Claude escribe el código PlantUML → el MCP lo renderiza → ves el diagrama.

Ejemplo: diagrama de secuencia de McDonald's

Código fuente del ejemplo: examples/mcdonalds-secuencia.puml


✨ Qué incluye

Herramienta

Qué hace

render_diagram

Renderiza código PlantUML a PNG (Claude ve la imagen), SVG o TXT (ASCII art). Puede guardarlo en un archivo con output_path. Si hay un error de sintaxis, indica la línea exacta para que Claude lo corrija solo.

get_diagram_urls

Genera enlaces para compartir (PNG/SVG/TXT) y un enlace al editor online de PlantUML.

decode_diagram_url

Recupera el código fuente a partir de una URL de PlantUML.

Funciona con todos los tipos de diagrama de PlantUML: clases, secuencia, casos de uso, actividad, estados, componentes, despliegue, ER, mindmap, Gantt, etc. Si olvidas @startuml / @enduml, se agregan automáticamente.

Related MCP server: UML MCP

📋 Requisitos

  • Node.js 18 o superior

  • Conexión a internet (usa el servidor público de PlantUML, ver Privacidad)

  • No necesitas Java ni instalar PlantUML

🚀 Instalación

git clone https://github.com/Vlonetatii3/PlantUML.git
cd PlantUML
npm install
npm test        # comprueba que todo funciona

Luego configúralo en tu cliente de IA:

Opción A — Claude Code

Solo en este proyecto: el repo ya trae un .mcp.json. Abre Claude Code dentro de la carpeta y acepta el servidor plantuml cuando te lo pregunte.

En todos tus proyectos (recomendado):

claude mcp add plantuml --scope user -- node /ruta/absoluta/a/PlantUML/src/index.js

Comprueba que está conectado con /mcp dentro de Claude Code.

Opción B — Claude Desktop

Edita el archivo de configuración:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "plantuml": {
      "command": "node",
      "args": ["/ruta/absoluta/a/PlantUML/src/index.js"]
    }
  }
}

En Windows usa barras dobles: "C:\\Users\\tu_usuario\\PlantUML\\src\\index.js"

Reinicia Claude Desktop y verás las herramientas en el icono de 🔨.

Opción C — Otros clientes MCP

Cualquier cliente compatible con MCP por stdio (Cursor, VS Code, etc.) sirve: el comando es node /ruta/a/PlantUML/src/index.js.

💬 Ejemplos de uso

Una vez configurado, simplemente pídelo en lenguaje natural:

  • "Hazme un diagrama de clases de un sistema de biblioteca con Libro, Socio y Préstamo"

  • "Diagrama de casos de uso de un cajero automático"

  • "Diagrama de actividad del proceso de inscripción a la universidad"

  • "Diagrama de secuencia del login con JWT y guárdalo en diagramas/login.png"

  • "Pásame el diagrama anterior en ASCII"

🔒 Privacidad

Por defecto los diagramas se renderizan en el servidor público https://www.plantuml.com/plantuml, así que el código de tus diagramas se envía a ese servidor. Para trabajos de clase normalmente no hay problema, pero si trabajas con información sensible puedes usar tu propio servidor con Docker:

docker run -d -p 8080:8080 plantuml/plantuml-server:jetty

Y define la variable de entorno PLANTUML_SERVER:

# Claude Code
claude mcp add plantuml --scope user -e PLANTUML_SERVER=http://localhost:8080 -- node /ruta/a/PlantUML/src/index.js
// Claude Desktop
"plantuml": {
  "command": "node",
  "args": ["/ruta/a/PlantUML/src/index.js"],
  "env": { "PLANTUML_SERVER": "http://localhost:8080" }
}

🛠️ Solución de problemas

Problema

Solución

Claude no ve las herramientas

Reinicia el cliente después de configurarlo. En Claude Code revisa con /mcp.

Cannot find module '@modelcontextprotocol/sdk'

Te faltó npm install dentro de la carpeta del proyecto.

PlantUML server responded 5xx

El servidor público está caído o saturado; reintenta o usa uno propio con Docker.

Diagramas muy grandes fallan

Las URLs tienen límite de tamaño; divide el diagrama o usa un servidor propio.

📁 Estructura

├── src/
│   ├── index.js       # Servidor MCP y definición de herramientas
│   └── plantuml.js    # Codificación PlantUML y llamadas al servidor
├── test/smoke.mjs     # Prueba rápida (npm test)
├── examples/          # Código .puml de ejemplo
├── docs/              # Imágenes del README
└── .mcp.json          # Configuración para Claude Code (alcance de proyecto)

📄 Licencia

MIT — úsalo, modifícalo y compártelo libremente.

Available Tools

3 tools
decode_diagram_urlDecode PlantUML URLB

Recovers the PlantUML source code from a PlantUML server URL or encoded string.

Inputs: url (required).

get_diagram_urlsGet PlantUML URLsA

Encodes PlantUML code into shareable PNG/SVG/TXT URLs and an online editor link, without rendering.

Inputs: code (required).

render_diagramRender PlantUML diagramA

Renders PlantUML code (class, sequence, use case, activity, component, state, deployment, ER, mindmap, gantt...) into an image. PNG is returned inline so it can be inspected; SVG/TXT are returned as text. Optionally saves the result to output_path. Reports syntax errors with the offending line.

Inputs: code (required), format, output_path.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool targets a clearly distinct operation: rendering to an image, encoding source into shareable URLs, and decoding URLs back to source. There is no meaningful overlap and an agent can unambiguously pick the right one for a given intent.

    Naming Consistency4/5

    All three follow a verb_noun pattern (render_, get_, decode_ + diagram-related noun), which is readable and predictable. Minor deviation: mixed plural/singular nouns ('diagram_urls' vs 'diagram_url') and three different verbs, but the style is otherwise consistent snake_case.

    Tool Count5/5

    Three tools is well-scoped for a focused PlantUML utility server covering the render/encode/decode triad. Each tool is justified and there is no redundancy or bloat.

    Completeness4/5

    The core PlantUML lifecycle (render, generate shareable URL, recover source from URL) is fully covered with no dead ends. Minor gaps exist, such as a standalone validation/syntax-check tool or batch rendering, but render_diagram already reports syntax errors, so agents can work around them.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers