mcp-aws-solution-architect
Servidor MCP que dá ao seu assistente as cinco tarefas repetitivas do arquiteto AWS
git clone https://github.com/fernando-moretes/app-mcp-aws-solution-architect.gitOuvir guia
gerado ao ouvirGerado apenas no primeiro play
Com tecnologia Amazon Polly + OmniVoice
Um servidor MCP em Python que expõe cinco tarefas repetitivas do arquiteto de soluções AWS — sugerir serviços, desenhar diagrama, estimar custo, revisar pelo Well-Architected e formatar ADR — como ferramentas tipadas que Claude Desktop, Cursor ou qualquer agente chama, sem depender de LLM para rodar.
Por que existe
A pergunta que me levou a escrever isso não foi "dá para um assistente desenhar arquitetura?" — foi "que parte do meu dia de arquiteto é repetitiva o suficiente para virar função com assinatura?". Depois de anos desenhando plataformas sobre AWS, a resposta veio rápido: o rascunho do diagrama Mermaid, a estimativa de custo mensal de guardanapo, a passada pelos seis pilares do Well-Architected antes da revisão formal e o ADR que ninguém quer formatar. Nenhuma dessas tarefas exige criatividade; todas exigem consistência.
O Model Context Protocol resolve o encaixe: em vez de colar o mesmo prompt em cada cliente, o servidor publica as ferramentas com esquema tipado e o cliente — Claude Desktop, Cursor, Cline, Continue ou um agente próprio — descobre e chama. Deterministic by default: a resposta sai de um catálogo de serviços e de uma tabela de preços embutidos, sem chamada a modelo nenhum. Isso significa que o servidor roda offline, é coberto por pytest e devolve o mesmo resultado para a mesma entrada. O Amazon Bedrock entra como opção por ferramenta, para enriquecer a saída quando você quiser — não como dependência para existir.
Registro: este é um repositório de portfólio. O que ele demonstra é a forma de construir uma ferramenta MCP com higiene de produção — tipagem, testes, esteira de segurança — mais do que um catálogo AWS exaustivo. Trate o catálogo como ponto de partida para o seu, não como fonte final.
As cinco ferramentas
suggest_services: mapeia a descrição de um caso de uso para uma lista curada de serviços AWS com a justificativa de cada um — o porquê, não só o nome.generate_architecture_diagram: gera um diagrama Mermaid para os padrões comuns — web app, RAG, event-driven, batch.estimate_cost: custo mensal aproximado a partir de itens {service, usage}, contra uma tabela de preços embutida.review_well_architected: passada leve pelos seis pilares, devolvendo findings e recomendações.generate_adr: formata um Architecture Decision Record no estilo MADR a partir de contexto, opções, decisão e consequências.Como uma chamada atravessa o servidor
O cliente MCP sobe o processo e conversa por stdio. Cada ferramenta lê dados versionados junto com o código; o Bedrock é um caminho opcional e tracejado — o único que custa por invocação.
- Claude Desktop / Cursor / Agent · MCP client
- mcp-aws-sa · stdio transport
- Tools layer · 5 typed tools
- Service catalog · embedded JSON
- Pricing table · embedded
- Amazon Bedrock · Claude / Nova
Instalar e ligar no cliente
- 1
Clone e instale em um venv (Python 3.11+)
git clone https://github.com/fernando-moretes/app-mcp-aws-solution-architect.git && cd app-mcp-aws-solution-architect && python -m venv .venv && source .venv/bin/activate && pip install -e ".[dev]". O extra[dev]traz Ruff, mypy e pytest — você vai querer os três antes de tocar no código. - 2
Suba o servidor
mcp-aws-sa. O transporte é stdio: nenhuma porta abre, nenhum TLS para gerenciar. O processo espera o cliente falar; rodar direto no terminal só confirma que o entry point instalou. - 3
Registre no Claude Desktop
Edite
~/Library/Application Support/Claude/claude_desktop_config.jsoncom o blocomcpServersabaixo e reinicie o app. Cursor, Cline e Continue usam o mesmo formato em outro arquivo. - 4
Teste com um pedido encadeado
Peça: "Sugira serviços AWS para um backend de jogo multiplayer em tempo real com jogadores globais. Depois desenhe um diagrama Mermaid e estime o custo mensal para 50k DAU." O assistente chama
suggest_services→generate_architecture_diagram→estimate_costsozinho. - 5
Rode as verificações antes de alterar qualquer coisa
ruff check . && mypy src && pytest. É a mesma tríade do CI — se passa local, passa no push.
{
"mcpServers": {
"aws-solution-architect": {
"command": "mcp-aws-sa",
"args": []
}
}
}Como funciona por dentro
O fluxo é curto de propósito. O cliente sobe o processo mcp-aws-sa e conversa por stdio — o transporte padrão do MCP. O servidor anuncia as cinco ferramentas com esquema de entrada; o cliente decide, a partir da conversa, quando chamar cada uma. No exemplo do README — backend de jogo com 50k DAU — o encadeamento acontece porque a saída de uma ferramenta é entrada plausível da próxima, não porque o servidor orquestra algo.
Camada de ferramentas: cada tool é uma função tipada em src/mcp_aws_sa/, lendo do catálogo de serviços e da tabela de preços versionados junto com o código. Sem estado, sem rede. É o que permite cobrir cada ferramenta com teste unitário e rodar mypy sem exceções — o teste compara saída com fixture, não com resposta de modelo.
Bedrock opcional: a linha tracejada do diagrama. Quando você liga, a ferramenta usa Claude ou Nova via Amazon Bedrock para escrever rationale mais rico ou um diagrama menos genérico. O custo aparece só nesse caminho, e é custo por invocação — meça antes de deixar ligado num agente que roda em loop, porque um maxIterations esquecido vira fatura.
Layout: src/mcp_aws_sa/ (pacote: server, tools, data), tests/ (pytest), docs/ (MkDocs Material publicado no GitHub Pages), frontend/ (landing estática sem dependência, na Vercel), .github/workflows/ (CI e deploy da documentação).
Onde o determinismo cobra o preço
estimate_cost lê uma tabela de preços embutida — e tabela embutida envelhece. Preço muda por região, por tier e por anúncio de re:Invent. Use o número como ordem de grandeza para decidir entre duas arquiteturas; valide no AWS Pricing Calculator antes de colocar em proposta. O mesmo vale para review_well_architected: é uma passada leve pelos seis pilares, não substitui o Well-Architected Review formal com a ferramenta oficial e o time na sala.
O que a esteira garante
Se a ferramenta vai sugerir arquitetura para outras pessoas, o repositório precisa mostrar a própria higiene. Python: Ruff, mypy e pytest em cada push. Frontend: lint, build estático e npm audit. Docs: build estrito do MkDocs — link quebrado derruba o job — e deploy no GitHub Pages. Segurança: CodeQL, pip-audit, dependency review, Trivy no filesystem e Gitleaks para segredo vazado. Manutenção: Dependabot em três frentes — GitHub Actions, dependências Python e dependências do frontend. Vercel: preview por PR e produção pela integração Git, sem token de deploy guardado no repositório.
A lição por trás disso: o custo de uma ferramenta de portfólio não é escrevê-la — é mantê-la instalável daqui a dois anos, quando o SDK do MCP mudou de versão e uma dependência transitiva ganhou CVE. Dependabot mais pip-audit transformam esse dia em PR automático, e não em surpresa. Commits seguem Conventional Commits, o que deixa o changelog derivável em vez de escrito à mão.
Perguntas que recebo
Preciso de conta AWS para usar?
Não. Sem o enriquecimento via Bedrock, tudo roda local a partir do catálogo e da tabela embutidos. Credenciais só entram se você ligar o caminho tracejado — e aí valem as regras de sempre: perfil dedicado, região explícita, sem chave estática no config do cliente.
Funciona com Cursor, Cline ou Continue?
Sim. Qualquer cliente MCP com transporte stdio sobe o mesmo comando mcp-aws-sa; o que muda é o arquivo de configuração de cada um, não o formato do bloco.
Como adiciono uma ferramenta?
Nova função tipada na camada de tools, um teste em tests/ comparando com fixture e uma página em docs/tools/. Mantenha dados no catálogo, não em if dentro da função — é o que preserva o determinismo e deixa o mypy útil.
Referências
Quando usar
Use quando: você já trabalha num cliente MCP, quer rascunho consistente de diagrama, custo e ADR no meio da conversa, e quer isso sem custo por token. Não use como fonte de preço final nem como substituto do Well-Architected Review formal — a tabela embutida envelhece e a revisão é leve por desenho. Para quem: arquitetos que querem ver como se estrutura um servidor MCP com tipagem, testes e esteira de segurança; ou quem quer um esqueleto para colocar o próprio catálogo de serviços e padrões no lugar do meu.
Deep dives de arquitetura, AWS, IA e mercado — direto no seu email. Grátis.
Sem spam · cancele quando quiser