Astah MCP
Local MCP server that converts modeling exercise requests into native Astah projects (.asta), supporting multiple UML diagram types with automatic layout and visual validation.
README
Astah MCP
Servidor MCP local e genérico para transformar pedidos e enunciados de exercícios de modelagem em projetos nativos do Astah (.asta).
O usuário conversa normalmente com o agente do cliente MCP: pode descrever o modelo desejado, colar o enunciado ou anexar um PDF se o cliente conseguir lê-lo. O agente interpreta o conteúdo e chama o servidor com uma especificação estruturada; o usuário não precisa escrever JSON nem informar coordenadas.
O projeto foi construído sobre a API oficial do Astah. Ele implementa todos os tipos de diagrama que a instalação Astah UML permite criar nativamente por API e rejeita explicitamente tipos indisponíveis, evitando apresentar um diagrama aproximado como se fosse o tipo solicitado.
Fluxo de uso
- O usuário informa o que quer modelar ou fornece o enunciado do exercício.
- O agente identifica elementos, propriedades, relações, multiplicidades e o tipo de diagrama adequado.
- O MCP valida a especificação e cria o projeto nativo no Astah.
- O servidor calcula um layout compacto quando não recebe posições explícitas.
- O Astah exporta os diagramas para PNGs temporários.
- O agente inspeciona as imagens e confirma que não há cortes ou sobreposições.
- A pasta temporária é apagada; somente o
.astafinal permanece no caminho escolhido.
Por padrão, o MCP cria apenas um diagrama e comprime o conteúdo nele. Mais de um diagrama só é aceito quando o pedido ou o enunciado exige explicitamente várias visões.
Diagramas suportados
Esta versão cria nativamente:
- diagrama de classes, incluindo classes abstratas, interfaces, enumerações e objetos;
- diagrama de casos de uso;
- diagrama de máquina de estados;
- diagrama de atividades;
- diagrama de sequência;
- diagrama de estrutura composta;
- mapa mental.
Também são suportados os principais elementos e relações próprios de cada tipo, como atributos, operações, literais, associações, agregações, composições, generalizações, realizações, dependências, atores, include, extend, transições, fluxos, mensagens, retornos, portas e conectores.
Limites da API
Na edição Astah UML usada pelo servidor, a API não cria nativamente diagramas de comunicação, componentes, implantação, fluxograma, fluxo de dados, entidade-relacionamento, requisitos ou CRUD. Alguns elementos isolados, como Component e Node, existem na API de modelo, mas isso não habilita a criação do respectivo diagrama nativo.
Quando um desses tipos for solicitado, o MCP retorna uma explicação clara da limitação. Ele não troca silenciosamente o tipo pedido por outro. A matriz oficial de suporte pode variar entre produtos e versões do Astah: Astah API Support.
Layout automático
O servidor:
- calcula a menor largura segura considerando nomes, atributos, operações e parâmetros;
- respeita o tamanho mínimo obrigatório de cada apresentação nativa do Astah;
- alinha elementos equivalentes em uma grade compacta e simétrica;
- centraliza superclasses acima das subclasses;
- organiza atividades e estados em fluxo vertical;
- distribui linhas de vida uniformemente;
- prioriza relações retas e usa segmentos ortogonais quando é necessário desviar;
- reserva corredores para rótulos, multiplicidades, portas e conectores;
- não divide um diagrama apenas para obter mais espaço;
- aceita posições explícitas quando o agente identifica que o enunciado exige um arranjo específico.
As regras completas estão em docs/LAYOUT_GUIDE.md.
Requisitos
- Windows;
- Astah UML instalado;
- Node.js 18 ou superior;
- JDK com
javaejavacnoPATH.
Não há dependências npm externas. O servidor usa módulos nativos do Node.js e os arquivos JAR instalados com o Astah.
Por padrão, o Astah é procurado em C:\Program Files\astah-UML. Para usar outra instalação, defina ASTAH_HOME e reabra o cliente MCP:
[Environment]::SetEnvironmentVariable(
"ASTAH_HOME",
"D:\Aplicativos\astah-UML",
"User"
)
Instalação
Clone o repositório:
git clone https://github.com/g0mz/astah-mcp.git
cd astah-mcp
Confira o ambiente:
node --version
java -version
javac -version
node astah-mcp-server.js
O último comando inicia o servidor via stdio e fica aguardando um cliente MCP. Use Ctrl+C para encerrá-lo.
Configuração do cliente MCP
Adicione o servidor à configuração do cliente, substituindo o caminho pelo local do clone:
{
"mcpServers": {
"astah": {
"command": "node",
"args": [
"C:\\caminho\\para\\astah-mcp\\astah-mcp-server.js"
]
}
}
}
Antigravity IDE
Abra o painel do agente e selecione ... → MCP Servers → Manage MCP Servers → View raw config. Adicione o objeto acima ao arquivo global ~/.gemini/config/mcp_config.json ou ao arquivo local .agents/mcp_config.json do projeto. Reinicie ou recarregue os servidores MCP.
Outros clientes
Claude Desktop, VS Code com GitHub Copilot, Cline, Goose e outros clientes compatíveis com MCP podem usar a mesma configuração stdio: comando node e caminho absoluto de astah-mcp-server.js.
O cliente precisa ter um agente/modelo capaz de interpretar o enunciado e usar ferramentas MCP. Para enunciados em PDF, ele também precisa conseguir ler o anexo.
Como pedir um modelo
Depois de configurar o servidor, escreva ao agente em linguagem natural. Exemplos:
Crie no Astah um diagrama de classes para este enunciado e salve em
C:\Projetos\biblioteca.asta. Inclua atributos, operações, relações e multiplicidades.
Leia o PDF anexado, resolva o exercício no Astah e crie somente o diagrama pedido.
Mantenha tudo compacto, reto e sem cortar textos.
Modele o ciclo de vida de um pedido com uma máquina de estados e salve em
C:\Projetos\estados-pedido.asta.
Se o arquivo de saída já existir, o MCP não o substitui por padrão. O agente só deve enviar overwrite: true quando o usuário autorizar a substituição explicitamente.
Ferramentas MCP
create_astah_model
Ferramenta principal. Recebe do agente a interpretação estruturada do enunciado, cria um ou mais diagramas nativos e retorna as imagens temporárias para revisão visual.
Ela aceita:
- caminho absoluto do
.asta; - contexto original do exercício;
- tipo, nome, elementos, membros e relações de cada diagrama;
- coordenadas opcionais — quando omitidas, o layout é automático;
- autorização explícita para múltiplos diagramas e para sobrescrita.
O esquema completo é fornecido ao cliente automaticamente por tools/list; normalmente ninguém precisa montá-lo manualmente.
get_astah_capabilities
Lista os tipos, elementos e relações criáveis na instalação atual e explica os tipos indisponíveis.
verify_astah_visual_layout
Exporta e revisa um projeto .asta existente sem modificá-lo. Os PNGs e o relatório são temporários e apagados após serem carregados na resposta MCP.
get_astah_layout_guidelines
Retorna as regras visuais usadas pelo gerador e pela inspeção final.
validate_astah_environment
Confirma a presença do Astah, da API, do Java, do exportador e dos geradores, sem alterar projetos.
Compatibilidade
create_meteorological_station_model continua disponível somente para clientes antigos que já dependiam dessa ferramenta. Novos exercícios devem usar create_astah_model.
Testes
Teste genérico mínimo:
node tests\smoke-client.mjs "C:\Temp\astah-mcp-smoke.asta"
Teste explícito de todos os sete tipos criáveis:
node tests\all-diagrams-client.mjs "C:\Temp\astah-mcp-all.asta"
Use caminhos novos ou remova os projetos de teste antes de repetir, pois a proteção contra sobrescrita também vale nos testes.
Estrutura
astah-mcp/
├── astah-mcp-server.js
├── java/
│ ├── UniversalAstahModel.java
│ └── MeteorologicalStationModel.java
├── tests/
│ ├── smoke-client.mjs
│ └── all-diagrams-client.mjs
├── docs/
│ └── LAYOUT_GUIDE.md
├── package.json
└── README.md
Segurança e arquivos temporários
O servidor inicia processos locais do Node.js, Java e Astah. Instale somente uma cópia confiável. Projetos existentes são protegidos contra substituição acidental. Especificações intermediárias, PNGs e relatórios de revisão são criados na pasta temporária do sistema e removidos automaticamente; o .asta solicitado é o único artefato permanente.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.