UML-MCP

Un servidor de generación de diagramas que admite múltiples tipos de diagramas UML y otros, con varios formatos de salida. Se integra con servicios de renderizado como Kroki y PlantUML.

Documentación

UML-MCP

Run Tests Build Package Deploy docs Deploy GitHub release GitHub stars GitHub forks GitHub issues License: MIT Python >=3.12,<3.15 Ruff uv MCP Hosted MCP status MseeP.ai Security Assessment Lulu MCPs smithery badge

UML-MCP le da a un asistente de IA una herramienta de diagramas real en lugar de pedirle que simule diagramas en Markdown. Conéctalo una vez a través de MCP, y luego pide un diagrama de clases, diagrama de secuencia, vista de arquitectura, diagrama de flujo Mermaid, grafo D2, proceso BPMN, u otro formato respaldado por Kroki. El servidor valida el código fuente, lo renderiza y devuelve una URL, un enlace de playground o una imagen en línea.

También funciona como un bloque de construcción para productos orientados a agentes. Usa MCP cuando un agente necesite herramientas de diagramas, AG-UI cuando un frontend necesite un flujo de eventos estándar, y OpenUI cuando el producto deba convertir la salida del modelo en componentes de UI interactivos y propiedad de la aplicación. Estas capas se complementan entre sí; UML-MCP se mantiene enfocado en la generación de diagramas.

MCP en vivohttps://uml-mcp.vercel.app/mcp
Documentaciónantoinebou12.github.io/uml-mcp
Catálogo~37 tipos respaldados por Kroki · 5 herramientas MCP · URL + playground + PNG de chat
UI de agenteMCP /mcp · AG-UI canónico /ag-ui · Guía de integración con OpenUI
Instalaciónpython scripts/install.py · uv tool install uml-mcp && uml-mcp setup · Instalación
Consolauml-mcp admin: formulario de configuración, ajustes, registros en vivo, gráficos, playground de Kroki (instalar · guía de usuario · recorrido)

UML-MCP in chat: Client/Server Mermaid sequence with URL and Playground links

Forma de la respuesta del chat: vista previa del diagrama · URL · Playground (mermaid.live)

Inicio rápido

Remoto (recomendado) — añade a tu cliente MCP:

"uml-mcp": {
  "transport": "http",
  "url": "https://uml-mcp.vercel.app/mcp"
}

Usa /mcp, no la raíz del sitio. Luego pregunta: "Dibuja un diagrama de secuencia de un usuario iniciando sesión a través de una puerta de enlace de API" o pega código fuente de PlantUML / Mermaid / Kroki.

Valores predeterminados del repositorio: .cursor/mcp.json · .vscode/mcp.json · .codex/config.toml.

ClienteConfiguraciónGuía
Cursor.cursor/mcp.jsondocs/integrations/cursor.md
VS Code / Copilot.vscode/mcp.jsondocs/integrations/vscode_copilot.md
OpenAI Codex.codex/config.tomldocs/integrations/openai_codex.md
Ollama / Open WebUIconfig/openwebui_mcp.jsondocs/integrations/ollama.md
Claude Desktopconfig/claude_desktop_*.jsondocs/integrations/claude_desktop.md

Todos los fragmentos: config/README.md

Instalación local (guiada):

RutaComando
Instalador (solo necesita Python + typer + tqdm)python scripts/install.py
Asistente de configuraciónuv tool install uml-mcp && uml-mcp setup (perfil, características, clientes, verificación de salud)
Formulario de configuración webuml-mcp setup --web → página de configuración en la consola
Manualuml-mcp config init --profile local · uml-mcp client install --client vscode|cursor|claude-desktop|claude-code

Guía: docs/installation.md

UML-MCP admin console: overview with KPIs, traffic chart and getting-started checklist

Consola de administración (uml-mcp admin): resumen · configuración · ajustes · actividad · registros · métricas · plugins, claro y oscuro, escritorio y móvil

Clonar desde el origen (stdio local)
git clone https://github.com/antoinebou12/uml-mcp.git
cd uml-mcp
uv sync
uv run python server.py

Si ya tienes el repositorio y necesitas configurar el origen:

git remote add origin https://github.com/antoinebou12/uml-mcp.git

Configuraciones: config/README.md (Cursor, VS Code, Codex, Claude, Open WebUI, Continue)

Plugin de Claude Code
/plugin marketplace add https://github.com/antoinebou12/uml-mcp
/plugin install uml-mcp@uml-mcp-plugins

docs/integrations/claude_code.md · Habilidad de Cursor: .skill/skills/uml-mcp-diagrams/SKILL.md

De un vistazo

TemaLo que obtienes
Diagramas~37 tipos a través de Kroki (UML, Mermaid, D2, TikZ, BPMN, C4, GoAT, UMLet, …)
Herramientasgenerate_uml · generate_uml_image · validate_uml · list_diagram_types · generate_uml_batch
ChatPNG en línea + markdown ![diagram](url) + enlace de Playground
DespliegueLocal · Docker · Kubernetes (Helm) · Vercel · Smithery
EmpresaSSO opcional: Microsoft Entra ID / tokens de portador OAuth 2.1, metadatos RFC 9728, 401/403 claros (docs/enterprise · guía)
Archivo de configuraciónUn uml-mcp.yaml (predeterminados < archivo < env) · uml-mcp config init|show|validate · perfiles local / docker / enterprise
Auditoría y observabilidadAuditoría estilo MXCP de cada llamada de herramienta/recurso/prompt (rotación JSONL, stdout → SIEM) · registros JSON · métricas + Prometheus /metrics · límites de tasa por IP/usuario/ruta/herramienta (operaciones)
Calidaduml-mcp lint --strict --min-grade A: calificación estilo mcpx, presupuesto de tokens, verificaciones de configuración estilo MXCP (reglas)
Consola de administraciónFormulario de configuración, ajustes basados en esquema (guardar, restablecer, aplicar en vivo), actividad, registros en vivo, gráficos, playground de Kroki y pila Docker, Detener; token local o MCP.Admin (recorrido)
Kroki localuml-mcp kroki up --use: Kroki + mermaid, blockdiag, bpmn, excalidraw en Docker en 127.0.0.1 (guía)
PluginsHerramientas MCP adicionales y renderizadores de diagramas desde paquetes de Python, permitidos en la lista de plugins.enabled (guía · autor)
TrazadoSpans de OpenTelemetry opcionales por solicitud y llamada MCP (uml-mcp[otel])
FrontendAG-UI SSE canónico para UIs de agentes; OpenUI puede consumir AG-UI y renderizar componentes generados en tu aplicación
Herramientas MCP
HerramientaPropósito
generate_umlRenderiza un diagrama; el texto de la herramienta incluye markdown de imagen, URL, Playground. Usa png para ImageContent.
generate_uml_imageImagen de chat en línea (PNG predeterminado); obtiene bytes incluso bajo MCP_URL_ONLY alojado
validate_umlVerificaciones locales; strict para Mermaid/D2 (rechaza sequenceDiagram lleno de punto y coma)
list_diagram_typesCatálogo (como uml://types)
generate_uml_batchMuchos diagramas (MCP_BATCH_MAX_ITEMS, MCP_BATCH_CONCURRENCY)

Prompts de prueba: tests/prompts/chatgpt_mcp_smoke_test.md

Recursos (uml://)
RecursoDescripción
uml://typesTipos, backends, formatos
uml://templates / uml://examplesIniciadores y ejemplos
uml://formats / uml://capabilitiesFormatos y matriz de validación
uml://server-info / uml://workflowVersión/herramientas y planificar-luego-generar
Tipos de diagramas
CategoríaEjemplos
UMLClase, Secuencia, Actividad, Caso de uso, Estado, Componente, Despliegue, Objeto
GeneralMermaid, D2, Graphviz, ERD, BlockDiag, BPMN, C4
EspecializadoTikZ, Excalidraw, GoAT, UMLet, Nomnoml, Pikchr, Structurizr, SVGBob, WaveDrom, WireViz, …

docs/diagrams/index.md

Remoto vs local
Remoto (Vercel)Local
TransporteHTTP MCPstdio o HTTP
Escrituras de archivosNoOpcional
Imágenes de chatLas herramientas PNG obtienen bytes bajo URL-onlyIgual + disco opcional
EntornoDel lado del servidorTu .env
Despliegue

Vercel — conecta el repositorio; los clientes usan https://<project>.vercel.app/mcp.

Smithery — pega esa URL /mcp en smithery.ai/new. Guía: docs/integrations/vercel_smithery.md.

Docker

docker compose up -d
docker build -t uml-mcp . && docker run -p 8000:8000 uml-mcp
docker run -i uml-mcp python server.py --transport stdio

docs/deploy/docker.md

Kubernetes + SSO: helm upgrade --install uml-mcp deploy/helm/uml-mcp --set auth.mode=jwt … (Entra ID o cualquier proveedor OIDC). Guía: docs/enterprise.

Configuración (local)
VariablePredeterminado
KROKI_SERVERhttps://kroki.io
PLANTUML_SERVERhttp://plantuml-server:8080
MCP_OUTPUT_DIR./output
MCP_READ_ONLYfalse
MCP_URL_ONLYver docs/configuration.md
MCP_BATCH_MAX_ITEMS20
MCP_BATCH_CONCURRENCY4
MCP_RATE_LIMIT_PER_MINUTE0
UML_MCP_CONFIGdescubierto uml-mcp.yaml (none desactiva)

Lista completa: docs/configuration.md · archivo único: docs/configuration/uml-mcp-yaml.md

Arquitectura y estructura

Asistente → generate_uml / generate_uml_image → Kroki (+ respaldos) → url, playground, bytes de imagen opcionales.

MCP request flow

server.py / app.py     -- MCP + FastAPI (/mcp)
mcp_core/tools/        -- generate_uml, generate_uml_image, validate, batch
tools/kroki/           -- Kroki, PlantUML, Mermaid, D2

UI de agente: POST /ag-ui canónico para clientes AG-UI; render directo heredado en POST /ag-ui/generate. Ver integración de frontend y OpenUI + UML-MCP.

Desarrollo
uv sync --all-groups
uv run pytest tests/ -v
uv run ruff check . && uv run ruff format --check .
make ci

Documentación local: uv run mkdocs serve → http://127.0.0.1:8000

SSO empresarial: OAuth 2.1 · OpenID Connect · Microsoft Entra ID

Opcional y desactivado por predeterminado (MCP_AUTH_MODE=none; el endpoint público de Vercel permanece abierto).

TemaResumen
Modosjwt: valida tokens de acceso Entra / OIDC (servidor de recursos) · entra-proxy: añade fachada RFC 8414 + RFC 7591 con PKCE solo S256 para clientes DCR
OAuth 2.1Código de autorización + PKCE S256; tokens de portador solo en encabezado; 401 → WWW-Authenticate: Bearer resource_metadata, scope; 403 insufficient_scope paso adicional
OpenID ConnectDescubrimiento + JWKS para claves de firma; los tokens de ID se rechazan, solo tokens de acceso
Entra IDTokens v2 (requestedAccessTokenVersion: 2), mcp.read / mcp.write / .default, roles de aplicación, VS Code + Visual Studio preautorizados (configuración)
MSALSolo del lado del cliente (VS Code, Visual Studio, Azure CLI, demonios); ejemplos en OAuth/OIDC/MSAL
Pruébalotests/http/entra-auth.http · python -m mcp_core.auth generate az-script · lista de verificación

Comunidad

Si esto sobrevive a un repositorio de producción real, supera a muchos demos de lanzamiento pulidos.

— @AIDailyGems en antoinebou12/uml-mcp

Actividad diaria y mensual (estrellas, bifurcaciones, PRs fusionados, problemas): trendshift.io/repositories/42725

Enlaces

DocsSite · Cursor · Claude Code · Frontend · Enterprise SSO · OpenUI
ContribuirCONTRIBUTING.md · CODE_OF_CONDUCT.md · SECURITY.md
LicenciaMIT

Mantenido por Antoine Boucher. Construido sobre PlantUML, Kroki, Mermaid y D2.