AI-Native Architecture Workspace — design systems no Cursor ou Claude Code e veja a arquitetura ganhar vida em tempo real num canvas visual interativo.
Voce escreve "design a payment system with fraud detection" no Cursor ou Claude Code. O AI chama seu MCP server. A arquitetura aparece aqui -> http://localhost:5173/arch/:id Voce edita servicos, arrasta zonas, conecta nodes, redimensiona tudo e salva.
Cursor / Claude Code
|
| create_architecture({ services, connections })
v
MCP Server ------> REST API ------> PostgreSQL
|
v
React Flow Canvas
http://localhost:5173
| Pacote | Tecnologia |
|---|---|
packages/mcp-server |
TypeScript, @modelcontextprotocol/sdk, zod |
packages/api |
Express, TypeScript, Prisma, PostgreSQL |
packages/web |
React, Vite, @xyflow/react, Tailwind CSS, dagre, html-to-image |
- Node.js 20+
- pnpm 9+ ->
npm i -g pnpm - Docker (para o PostgreSQL)
git clone <repo>
cd archflowbuilder
# Instalar dependencias
pnpm install
# Copiar variaveis de ambiente
cp .env.example .env# 1. Subir o PostgreSQL
docker compose up -d postgres
# 2. Criar as tabelas (primeira vez)
cd packages/api
DATABASE_URL=postgresql://archflow:archflow@localhost:5432/archflow npx prisma db push
cd ../..
# 3. Buildar o MCP server
pnpm --filter mcp-server build
# 4. Subir tudo em paralelo
pnpm dev| Servico | URL |
|---|---|
| Web App | http://localhost:5173 |
| API | http://localhost:3001 |
| API Health | http://localhost:3001/health |
| DB Studio | pnpm --filter api db:studio |
Settings -> Features -> MCP -> Add new server:
{
"archflow": {
"command": "node",
"args": ["/caminho/absoluto/packages/mcp-server/dist/index.js"],
"env": {
"API_URL": "http://localhost:3001",
"WEB_URL": "http://localhost:5173"
}
}
}Substitua
/caminho/absolutopelo path real do projeto.
Crie um arquivo .mcp.json na raiz do projeto:
{
"mcpServers": {
"archflow": {
"command": "/caminho/absoluto/packages/mcp-server/run.sh",
"args": []
}
}
}O run.sh ja vem incluso no projeto e faz o cd e exec node automaticamente.
Adicione ao arquivo ~/.claude/.mcp.json:
{
"mcpServers": {
"archflow": {
"command": "/caminho/absoluto/packages/mcp-server/run.sh",
"args": []
}
}
}claude mcp add archflow -- /caminho/absoluto/packages/mcp-server/run.sh- A API precisa estar rodando (
pnpm devoupnpm --filter api dev) antes de iniciar o Claude Code, pois o MCP server se conecta a ela na inicializacao. - Substitua
/caminho/absolutopelo path real, ex:/Users/seu-usuario/code/archflowbuilder - Apos configurar, reinicie o Claude Code para que as tools
mcp__archflow__*aparecam.
| Tool | Quando e chamada |
|---|---|
create_architecture |
Design de um novo sistema |
update_architecture |
Evoluir uma arquitetura existente |
get_architecture |
Ler estado atual antes de modificar |
list_architectures |
Listar todas as arquiteturas salvas |
| Feature | Como usar |
|---|---|
| Editar servico | Click no node -> painel lateral com campos editaveis |
| Adicionar servico | Botao + Service na toolbar |
| Deletar servico | Click no node -> Delete Service no painel |
| Conectar nodes | Arrasta de um handle (bolinha) pra outro |
| Tipo de conexao | Dropdown na toolbar seleciona HTTP/Event/DB/gRPC |
| Deletar conexao | Seleciona a edge + tecla Delete |
| Mover zonas | Arrasta a zona -> todos os services dentro movem junto |
| Redimensionar | Seleciona node ou zona -> arrasta os handles nos cantos |
| Editar zona | Click na zona -> editar label no painel lateral |
| Re-layout | Botao Re-layout -> recalcula layout hierarquico |
| Salvar | Botao Save ou Cmd+S |
| Export PNG/SVG | Botoes na toolbar |
| Modo apresentacao | Botao Present ou Cmd+F, ESC pra sair |
| Copiar link | Botao Link na toolbar |
Os services sao agrupados automaticamente em zonas visuais:
| Zona | Tipos de servico |
|---|---|
| Entry Points | api_gateway |
| Services & Workers | service |
| Data & Messaging | database, queue |
| External Systems | external |
| Cor | Tipo |
|---|---|
| Azul | HTTP (sync) |
| Roxo (animado) | Event (async) |
| Amarelo | Database |
| Verde | gRPC |
| Tipo | Usar para |
|---|---|
api_gateway |
Entry points, BFFs, reverse proxies |
service |
Logica de negocio, microservicos, workers |
database |
SQL, NoSQL, cache, object storage |
queue |
Kafka, SQS, RabbitMQ, mensageria async |
external |
APIs de terceiros (Stripe, Auth0, SendGrid...) |
| Tipo | Usar para |
|---|---|
sync_http |
REST, GraphQL |
async_event |
Eventos, pub/sub, filas |
db_access |
Servico -> banco de dados |
grpc |
Chamadas gRPC internas |
POST /architectures Criar
GET /architectures Listar todas
GET /architectures/:id Buscar por ID
PATCH /architectures/:id Atualizar (auto-incrementa versao)
PATCH /architectures/:id/layout Salvar posicoes dos nodes
DELETE /architectures/:id Deletar
GET /health Health check
archflowbuilder/
|-- packages/
| |-- mcp-server/
| | |-- src/index.ts <- 4 MCP tools
| | |-- dist/index.js <- build output
| | +-- run.sh <- wrapper script para Claude Code
| |-- api/
| | |-- prisma/schema.prisma
| | +-- src/
| | |-- index.ts
| | |-- routes/architectures.ts
| | +-- middleware/validate.ts
| +-- web/
| +-- src/
| |-- App.tsx
| |-- types.ts
| |-- pages/
| | |-- Home.tsx <- lista de arquiteturas
| | +-- Workspace.tsx <- canvas editor
| +-- components/
| |-- ArchNode.tsx <- node de servico (resizable)
| +-- ZoneNode.tsx <- zona de agrupamento (draggable, resizable)
|-- .mcp.json <- config MCP para Claude Code
|-- CLAUDE.md <- instrucoes para Claude Code
|-- docker-compose.yml
|-- deploy.sh
+-- .env.example
Com o MCP conectado, escreva no Cursor ou Claude Code:
Design a fintech onboarding system with KYC validation,
fraud scoring, and async notifications.
O AI vai:
- Chamar
create_architecturecom os servicos e conexoes - Salvar no banco
- Retornar o link:
http://localhost:5173/arch/abc123 - Voce abre e edita o diagrama interativo
chmod +x deploy.sh
./deploy.sh- MCP server com 4 tools
- REST API com versionamento automatico
- Canvas React Flow com drag & drop
- Layout hierarquico por zonas (dagre)
- Zonas draggaveis e redimensionaveis
- Edicao inline (servicos, zonas, conexoes)
- Adicionar/remover servicos e conexoes no canvas
- Display names humanizados vs IDs tecnicos
- Legenda de cores e tipos
- Export PNG/SVG
- Modo apresentacao (fullscreen)
- Persistencia de layout (posicoes e tamanhos)
- Edges coloridas por tipo (animadas para async)
- Validacao automatica (nos soltos, loops, SPOFs)
- Historico de versoes com diff
- Export para Markdown / docs
- Export para codigo (Apache Camel, Spring, etc.)
- Colaboracao em tempo real (WebSocket)
MIT