UML-MCP

Um servidor de geração de diagramas que suporta múltiplos tipos de UML e outros tipos de diagrama, com vários formatos de saída. Ele se integra a serviços de renderização como Kroki e PlantUML.

Documentação

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

O UML-MCP dá a um assistente de IA uma ferramenta de diagramas real, em vez de pedir que ele simule diagramas em Markdown. Conecte-o uma vez via MCP e então peça um diagrama de classes, diagrama de sequência, visão de arquitetura, fluxograma Mermaid, grafo D2, processo BPMN ou outro formato suportado pelo Kroki. O servidor valida a fonte, renderiza e retorna uma URL, link de playground ou imagem inline.

Ele também funciona como um bloco de construção para produtos voltados a agentes. Use MCP quando um agente precisar de ferramentas de diagrama, AG-UI quando um frontend precisar de um fluxo de eventos padrão e OpenUI quando o produto precisar transformar a saída do modelo em componentes de UI interativos e de propriedade do aplicativo. Essas camadas se complementam; o UML-MCP permanece focado na geração de diagramas.

MCP ao vivohttps://uml-mcp.vercel.app/mcp
Documentaçãoantoinebou12.github.io/uml-mcp
Catálogo~37 tipos suportados pelo Kroki · 5 ferramentas MCP · URL + playground + PNG no chat
UI do agenteMCP /mcp · AG-UI canônico /ag-ui · Guia de integração OpenUI
Instalaçãopython scripts/install.py · uv tool install uml-mcp && uml-mcp setup · Instalação
Consoleuml-mcp admin: formulário de configuração, configurações, logs ao vivo, gráficos, playground Kroki (instalar · guia do usuário · tour)

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

Formato da resposta no chat: pré-visualização do diagrama · URL · Playground (mermaid.live)

Início rápido

Remoto (recomendado) — adicione ao seu cliente MCP:

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

Use /mcp, não a raiz do site. Então peça: “Desenhe um diagrama de sequência de um usuário fazendo login através de um gateway de API.” ou cole código-fonte PlantUML / Mermaid / Kroki.

Padrões do repositório: .cursor/mcp.json · .vscode/mcp.json · .codex/config.toml.

ClienteConfiguraçãoGuia
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 os trechos: config/README.md

Instalar localmente (guiado):

CaminhoComando
Instalador (precisa apenas de Python + typer + tqdm)python scripts/install.py
Assistente de configuraçãouv tool install uml-mcp && uml-mcp setup (perfil, recursos, clientes, verificação de saúde)
Formulário de configuração webuml-mcp setup --web → página de configuração no console
Manualuml-mcp config init --profile local · uml-mcp client install --client vscode|cursor|claude-desktop|claude-code

Guia: docs/installation.md

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

Console administrativo (uml-mcp admin): visão geral · configuração · configurações · atividade · logs · métricas · plugins, claro e escuro, desktop e mobile

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

Se você já tem o repositório e precisa definir a origem:

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

Configurações: config/README.md (Cursor, VS Code, Codex, Claude, Open WebUI, Continue)

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

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

De relance

TópicoO que você obtém
Diagramas~37 tipos via Kroki (UML, Mermaid, D2, TikZ, BPMN, C4, GoAT, UMLet, …)
Ferramentasgenerate_uml · generate_uml_image · validate_uml · list_diagram_types · generate_uml_batch
ChatPNG inline + markdown ![diagram](url) + link Playground
ImplantaçãoLocal · Docker · Kubernetes (Helm) · Vercel · Smithery
EmpresarialSSO opcional: Microsoft Entra ID / tokens de portador OAuth 2.1, metadados RFC 9728, 401/403 claros (docs/enterprise · guia)
Arquivo de configuraçãoUm uml-mcp.yaml (padrões < arquivo < env) · uml-mcp config init|show|validate · perfis local / docker / enterprise
Auditoria e observabilidadeAuditoria estilo MXCP de cada chamada de ferramenta/recurso/prompt (rotação JSONL, stdout → SIEM) · logs JSON · métricas + Prometheus /metrics · limites de taxa por IP/usuário/rota/ferramenta (operações)
Qualidadeuml-mcp lint --strict --min-grade A: nota estilo mcpx, orçamento de tokens, verificações de configuração estilo MXCP (regras)
Console administrativoFormulário de configuração, configurações orientadas por esquema (salvar, redefinir, aplicar ao vivo), atividade, logs ao vivo, gráficos, playground Kroki e pilha Docker, Parar; token local ou MCP.Admin (tour)
Kroki localuml-mcp kroki up --use: Kroki + mermaid, blockdiag, bpmn, excalidraw em Docker em 127.0.0.1 (guia)
PluginsFerramentas MCP extras e renderizadores de diagramas de pacotes Python, permitidos na lista de plugins.enabled (guia · autor)
RastreamentoSpans OpenTelemetry opcionais por solicitação e chamada MCP (uml-mcp[otel])
FrontendAG-UI SSE canônico para UIs de agentes; OpenUI pode consumir AG-UI e renderizar componentes gerados no seu aplicativo
Ferramentas MCP
FerramentaPropósito
generate_umlRenderiza um diagrama; o texto da ferramenta inclui markdown de imagem, URL, Playground. Use png para ImageContent.
generate_uml_imageImagem inline no chat (PNG padrão); busca bytes mesmo sob MCP_URL_ONLY hospedado
validate_umlVerificações locais; strict para Mermaid/D2 (rejeita sequenceDiagram cheio de ponto e vírgula)
list_diagram_typesCatálogo (como uml://types)
generate_uml_batchMuitos diagramas (MCP_BATCH_MAX_ITEMS, MCP_BATCH_CONCURRENCY)

Prompts de teste: tests/prompts/chatgpt_mcp_smoke_test.md

Recursos (uml://)
RecursoDescrição
uml://typesTipos, backends, formatos
uml://templates / uml://examplesIniciadores e exemplos
uml://formats / uml://capabilitiesFormatos e matriz de validação
uml://server-info / uml://workflowVersão/ferramentas e planejar-depois-gerar
Tipos de diagrama
CategoriaExemplos
UMLClasse, Sequência, Atividade, Caso de Uso, Estado, Componente, Implantação, Objeto
GeralMermaid, 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 ou HTTP
Gravações de arquivoNãoOpcional
Imagens no chatFerramentas PNG buscam bytes sob URL-onlyMesmo + disco opcional
AmbienteLado do servidorSeu .env
Implantação

Vercel — conecte o repositório; os clientes usam https://<project>.vercel.app/mcp.

Smithery — cole essa URL /mcp em smithery.ai/new. Guia: 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 ou qualquer provedor OIDC). Guia: docs/enterprise.

Configuração (local)
VariávelPadrão
KROKI_SERVERhttps://kroki.io
PLANTUML_SERVERhttp://plantuml-server:8080
MCP_OUTPUT_DIR./output
MCP_READ_ONLYfalse
MCP_URL_ONLYveja docs/configuration.md
MCP_BATCH_MAX_ITEMS20
MCP_BATCH_CONCURRENCY4
MCP_RATE_LIMIT_PER_MINUTE0
UML_MCP_CONFIGdescoberto uml-mcp.yaml (none desativa)

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

Arquitetura e layout

Assistente → generate_uml / generate_uml_image → Kroki (+ fallbacks) → url, playground, bytes de imagem opcionais.

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 do agente: POST /ag-ui canônico para clientes AG-UI; renderização direta legada em POST /ag-ui/generate. Veja integração frontend e OpenUI + UML-MCP.

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

Documentação local: uv run mkdocs serve → http://127.0.0.1:8000

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

Opcional e desativado por padrão (MCP_AUTH_MODE=none; o endpoint público Vercel permanece aberto).

TópicoResumo
Modosjwt: valida tokens de acesso Entra / OIDC (servidor de recursos) · entra-proxy: adiciona fachada RFC 8414 + RFC 7591 com PKCE somente S256 para clientes DCR
OAuth 2.1Código de Autorização + PKCE S256; tokens de portador somente no cabeçalho; 401 → WWW-Authenticate: Bearer resource_metadata, scope; 403 insufficient_scope step-up
OpenID ConnectDescoberta + JWKS para chaves de assinatura; tokens de ID são rejeitados, apenas tokens de acesso
Entra IDTokens v2 (requestedAccessTokenVersion: 2), mcp.read / mcp.write / .default, funções de aplicativo, VS Code + Visual Studio pré-autorizados (configuração)
MSALSomente no lado do cliente (VS Code, Visual Studio, Azure CLI, daemons); exemplos em OAuth/OIDC/MSAL
Experimentetests/http/entra-auth.http · python -m mcp_core.auth generate az-script · checklist

Comunidade

Se isso sobreviver a um repositório de produção real, supera muitos demos de lançamento polidos.

— @AIDailyGems em antoinebou12/uml-mcp

Atividade diária e mensal (estrelas, forks, PRs mesclados, issues): trendshift.io/repositories/42725

Links

DocsSite · Cursor · Claude Code · Frontend · Enterprise SSO · OpenUI
ContributeCONTRIBUTING.md · CODE_OF_CONDUCT.md · SECURITY.md
LicenseMIT

Mantido por Antoine Boucher. Construído com PlantUML, Kroki, Mermaid e D2.