About Uml MCP
Uml MCP is an MCP server published by antoinebou12 in the AI category: uML-MCP Server is a UML diagram generation tool based on MCP (Model Context Protocol), which can help users generate various types of UML diagrams through natural language description or directly writing PlantUML and Mermaid and Kroki https://uml-mcp.vercel.app/mcp.
The repository has 106 stars and 29 forks, with the last commit yesterday. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/antoinebou12/uml-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (5)
generate_umlRender one diagram; tool text includes image markdown, **URL**, **Playground**. Use `png` for ImageContent.
Parameters not published.
generate_uml_batchMany diagrams (`MCP_BATCH_MAX_ITEMS`, `MCP_BATCH_CONCURRENCY`)
Parameters not published.
generate_uml_imageInline chat image (default PNG); fetches bytes even under hosted `MCP_URL_ONLY`
Parameters not published.
list_diagram_typesCatalog (like `uml://types`)
Parameters not published.
validate_umlLocal checks; `strict` for Mermaid/D2 (rejects semicolon-packed `sequenceDiagram`)
Parameters not published.
Ask AI
Ask AI about Uml MCP
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 21 hours ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
Releases
README
UML-MCP
UML-MCP gives an AI assistant a real diagram tool instead of asking it to fake diagrams in Markdown. Connect it once over MCP, then ask for a class diagram, sequence diagram, architecture view, Mermaid flowchart, D2 graph, BPMN process, or another Kroki-backed format. The server validates the source, renders it, and returns a URL, playground link, or inline image.
It also works as a building block for agent-facing products. Use MCP when an agent needs diagram tools, AG-UI when a frontend needs a standard event stream, and OpenUI when the product should turn model output into interactive, application-owned UI components. These layers complement each other; UML-MCP stays focused on diagram generation.
| Live MCP | https://uml-mcp.vercel.app/mcp |
| Docs | antoinebou12.github.io/uml-mcp |
| Catalog | ~37 Kroki-backed types · 5 MCP tools · URL + playground + chat PNG |
| Agent UI | MCP /mcp · canonical AG-UI /ag-ui · OpenUI integration guide |
| Install | python scripts/install.py · uv tool install uml-mcp && uml-mcp setup · Installation |
| Console | uml-mcp admin: setup form, settings, live logs, charts, Kroki playground (install · user guide · tour) |
Quick start
Remote (recommended) — add to your MCP client:
"uml-mcp": {
"transport": "http",
"url": "https://uml-mcp.vercel.app/mcp"
}
Use /mcp, not the site root. Then ask: “Draw a sequence diagram of a user logging in through an API gateway.” or paste PlantUML / Mermaid / Kroki source.
Repo defaults: .cursor/mcp.json · .vscode/mcp.json · .codex/config.toml.
| Client | Config | Guide |
|---|---|---|
| Cursor | .cursor/mcp.json |
docs/integrations/cursor.md |
| VS Code / Copilot | .vscode/mcp.json |
docs/integrations/vscode_copilot.md |
| OpenAI Codex | .codex/config.toml |
docs/integrations/openai_codex.md |
| Ollama / Open WebUI | config/openwebui_mcp.json |
docs/integrations/ollama.md |
| Claude Desktop | config/claude_desktop_*.json |
docs/integrations/claude_desktop.md |
All snippets: config/README.md
Install locally (guided):
| Path | Command |
|---|---|
| Installer (needs only Python + typer + tqdm) | python scripts/install.py |
| Setup wizard | uv tool install uml-mcp && uml-mcp setup (profile, features, clients, health check) |
| Web setup form | uml-mcp setup --web → setup page in the console |
| Manual | uml-mcp config init --profile local · uml-mcp client install --client vscode|cursor|claude-desktop|claude-code |
Guide: docs/installation.md
git clone https://github.com/antoinebou12/uml-mcp.git
cd uml-mcp
uv sync
uv run python server.py
If you already have the repo and need to set origin:
git remote add origin https://github.com/antoinebou12/uml-mcp.git
Configs: config/README.md (Cursor, VS Code, Codex, Claude, Open WebUI, Continue)
/plugin marketplace add https://github.com/antoinebou12/uml-mcp
/plugin install uml-mcp@uml-mcp-plugins
docs/integrations/claude_code.md · Cursor skill: .skill/skills/uml-mcp-diagrams/SKILL.md
At a glance
| Topic | What you get |
|---|---|
| Diagrams | ~37 types via Kroki (UML, Mermaid, D2, TikZ, BPMN, C4, GoAT, UMLet, …) |
| Tools | generate_uml · generate_uml_image · validate_uml · list_diagram_types · generate_uml_batch |
| Chat | Inline PNG + markdown  + Playground link |
| Deploy | Local · Docker · Kubernetes (Helm) · Vercel · Smithery |
| Enterprise | Optional SSO: Microsoft Entra ID / OAuth 2.1 bearer tokens, RFC 9728 metadata, clear 401/403 (docs/enterprise · guide) |
| Config file | One uml-mcp.yaml (defaults < file < env) · uml-mcp config init|show|validate · profiles local / docker / enterprise |
| Audit & observability | MXCP-style audit of every tool/resource/prompt call (JSONL rotation, stdout → SIEM) · JSON logs · metrics + Prometheus /metrics · rate limits per IP/user/route/tool (operations) |
| Quality | uml-mcp lint --strict --min-grade A: mcpx-style grade, token budget, MXCP-style config checks (rules) |
| Admin console | Setup form, schema-driven settings (save, reset, live apply), activity, live logs, charts, Kroki playground and Docker stack, Stop; local token or MCP.Admin (tour) |
| Local Kroki | uml-mcp kroki up --use: Kroki + mermaid, blockdiag, bpmn, excalidraw in Docker on 127.0.0.1 (guide) |
| Plugins | Extra MCP tools and diagram renderers from Python packages, allow-listed in plugins.enabled (guide · author). Includes interactive D3 force, cloud architecture and topology diagrams (D3 plugin) |
| Tracing | Optional OpenTelemetry spans per request and MCP call (uml-mcp[otel]) |
| Frontend | Canonical AG-UI SSE for agent UIs; OpenUI can consume AG-UI and render generated components in your app |
| Tool | Purpose |
|---|---|
generate_uml |
Render one diagram; tool text includes image markdown, URL, Playground. Use png for ImageContent. |
generate_uml_image |
Inline chat image (default PNG); fetches bytes even under hosted MCP_URL_ONLY |
validate_uml |
Local checks; strict for Mermaid/D2 (rejects semicolon-packed sequenceDiagram) |
list_diagram_types |
Catalog (like uml://types) |
generate_uml_batch |
Many diagrams (MCP_BATCH_MAX_ITEMS, MCP_BATCH_CONCURRENCY) |
Smoke prompts: tests/prompts/chatgpt_mcp_smoke_test.md
| Resource | Description |
|---|---|
uml://types |
Types, backends, formats |
uml://templates / uml://examples |
Starters and samples |
uml://formats / uml://capabilities |
Formats and validation matrix |
uml://server-info / uml://workflow |
Version/tools and plan-then-generate |
| Category | Examples |
|---|---|
| UML | Class, Sequence, Activity, Use Case, State, Component, Deployment, Object |
| General | Mermaid, D2, Graphviz, ERD, BlockDiag, BPMN, C4 |
| Specialized | TikZ, Excalidraw, GoAT, UMLet, Nomnoml, Pikchr, Structurizr, SVGBob, WaveDrom, WireViz, … |
| Remote (Vercel) | Local | |
|---|---|---|
| Transport | HTTP MCP | stdio or HTTP |
| File writes | No | Optional |
| Chat images | PNG tools fetch bytes under URL-only | Same + optional disk |
| Env | Server-side | Your .env |
Vercel — connect the repo; clients use https://<project>.vercel.app/mcp.
Smithery — paste that /mcp URL at smithery.ai/new. Guide: 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
# self-hosted PlantUML + mermaid.ink fallbacks next to local Kroki
MCP_DIAGRAM_FALLBACK=true USE_LOCAL_PLANTUML=true USE_LOCAL_MERMAID_INK=true docker compose --profile fallback up -d
Kubernetes + SSO: helm upgrade --install uml-mcp deploy/helm/uml-mcp --set auth.mode=jwt … (Entra ID or any OIDC provider); add --set kroki.enabled=true --set plantuml.enabled=true --set mermaidInk.enabled=true to run the renderers in-cluster. Guide: docs/enterprise.
| Variable | Default |
|---|---|
KROKI_SERVER |
https://kroki.io |
PLANTUML_SERVER |
http://plantuml-server:8080 |
MERMAID_INK_SERVER |
https://mermaid.ink |
MCP_OUTPUT_DIR |
./output |
MCP_READ_ONLY |
false |
MCP_URL_ONLY |
see docs/configuration.md |
MCP_BATCH_MAX_ITEMS |
20 |
MCP_BATCH_CONCURRENCY |
4 |
MCP_RATE_LIMIT_PER_MINUTE |
0 |
UML_MCP_CONFIG |
discovered uml-mcp.yaml (none disables) |
ADMIN_EMAIL |
unset (hosted /admin login off), see docs/admin/hosted-vercel.md |
ADMIN_PASSWORD_HASH / ADMIN_PASSWORD |
unset; the hash is preferred |
ADMIN_SESSION_SECRET |
unset; at least 32 characters, required for the login |
Full list: docs/configuration.md · single file: docs/configuration/uml-mcp-yaml.md
Assistant → generate_uml / generate_uml_image → Kroki (+ fallbacks) → url, playground, optional image bytes.
server.py / app.py -- MCP + FastAPI (/mcp)
mcp_core/tools/ -- generate_uml, generate_uml_image, validate, batch
tools/kroki/ -- Kroki, PlantUML, Mermaid, D2
Agent UI: canonical POST /ag-ui for AG-UI clients; legacy direct render at POST /ag-ui/generate. See frontend integration and OpenUI + UML-MCP.
uv sync --all-groups
uv run pytest tests/ -v
uv run ruff check . && uv run ruff format --check .
make ci
Docs locally: uv run mkdocs serve → http://127.0.0.1:8000
Optional and off by default (MCP_AUTH_MODE=none; the public Vercel endpoint stays open).
| Topic | Summary |
|---|---|
| Modes | jwt: validate Entra / OIDC access tokens (resource server) · entra-proxy: adds RFC 8414 + RFC 7591 facade with S256-only PKCE for DCR clients |
| OAuth 2.1 | Authorization Code + PKCE S256; header-only bearer tokens; 401 → WWW-Authenticate: Bearer resource_metadata, scope; 403 insufficient_scope step-up |
| OpenID Connect | Discovery + JWKS for signing keys; ID tokens are rejected, access tokens only |
| Entra ID | v2 tokens (requestedAccessTokenVersion: 2), mcp.read / mcp.write / .default, app roles, VS Code + Visual Studio pre-authorized (setup) |
| MSAL | Client side only (VS Code, Visual Studio, Azure CLI, daemons); examples in OAuth/OIDC/MSAL |
| Try it | tests/http/entra-auth.http · python -m mcp_core.auth generate az-script · checklist |
Community
If this survives a real production repo, it beats a lot of polished launch demos.
— @AIDailyGems on antoinebou12/uml-mcp
Daily and monthly activity (stars, forks, merged PRs, issues): trendshift.io/repositories/42725
Links
| Docs | Site · Cursor · Claude Code · Frontend · Enterprise SSO · OpenUI |
| Contribute | CONTRIBUTING.md · CODE_OF_CONDUCT.md · SECURITY.md |
| License | MIT |
Maintained by Antoine Boucher. Built on PlantUML, Kroki, Mermaid, and D2.
README fetched from the repository 21 hours ago. The original is authoritative.