O que é MCP e o que é o Moretes Architect
O protocolo que liga seu agente a ferramentas, um servidor de arquitetura que calcula em vez de opinar, e o caso de marketplace que atravessa as 10 aulas.
11 min de leitura
Escolha como aprender
combine como quiserDica: o vídeo é um resumo visual rápido; o áudio e o texto trazem a aula completa. Terminar o áudio ou o vídeo, ou passar no quiz, já conta a aula como concluída.
MCP é o protocolo que liga o agente que você já usa (Claude Code, Codex, Kiro, Cursor, VS Code) a ferramentas que fazem o trabalho que o modelo não deveria fazer de cabeça: calcular, estruturar, citar fonte, apontar o que falta. O Moretes Architect é um servidor MCP de arquitetura, aberto e sem modelo dentro. Nesta aula você entende o que cada peça faz, vê o servidor respondendo de verdade dentro do Claude Code e conhece o caso que vai atravessar as 10 aulas.
MCP em dois parágrafos
MCP (Model Context Protocol) é um protocolo aberto entre dois lados: o cliente, que é o agente onde o modelo roda (Claude Code, Codex, Kiro, Cursor, VS Code, Gemini CLI, Amazon Q), e o servidor, que oferece três coisas. Tools são funções com nome, esquema de entrada em JSON e um resultado: o modelo decide chamar, o servidor executa. Prompts são roteiros prontos que o cliente pode carregar para orientar o modelo. Resources são documentos endereçados por URI que o modelo pode ler, como moretes://guide. O cliente lista o que o servidor tem, o modelo escolhe, o cliente chama, o servidor responde JSON. Só isso.
A divisão de trabalho é o que importa. O modelo raciocina: entende seu pedido, escolhe a ferramenta, monta os argumentos, interpreta o resultado e escreve a resposta. O servidor executa: calcula, valida esquema, devolve estrutura. Nenhum dos dois faz o papel do outro. Quando você pede "calcule a concorrência para 5 requisições por segundo", o modelo não multiplica de cabeça; ele chama capacity_plan e lê o número que voltou. O transporte pode ser stdio (o cliente sobe o servidor como processo filho na sua máquina) ou Streamable HTTP (o cliente fala com uma URL). O Moretes Architect oferece os dois, e a aula 2 mostra o comando de cada cliente.
Por que um workbench de arquitetura sem modelo dentro
O Moretes Architect é determinístico: o servidor nunca chama um modelo. A mesma entrada devolve a mesma saída, hoje e daqui a seis meses. Isso foi uma decisão de operação, não de estética. Em 30 dias de geração de conteúdo em lote no Bedrock, eu gastei US$ 84 contra um teto de US$ 5 por mês; um serviço público que pagasse por token a cada chamada seria uma conta sem dono. Sem modelo, o custo marginal de uma chamada é o de um Lambda de 256 MB rodando alguns milissegundos.
O que o servidor devolve, então, são quatro coisas. Cálculos: concorrência, tamanho de fila, orçamento de latência, crescimento de armazenamento, erro budget do SLO. Estruturas: um ADR com alternativas e consequências, um modelo C4, um contrato de evento, um runbook, um plano de migração. Fontes: toda resposta heurística traz um campo sources com URL de documentação oficial, e as ferramentas aws_knowledge_* consultam o AWS Knowledge MCP oficial em tempo real. Lacunas explícitas: decisionsToClarify, limitations, validated: false. O servidor prefere dizer "não sei isto" a preencher com suposição.
A palavra heurística aparece em quase toda resposta e tem um sentido preciso aqui: é triagem, não certificação. Um threat_model do Moretes Architect encontra o que um checklist encontra; ele não substitui um pentest, uma revisão oficial Well-Architected ou um parecer jurídico. Se a ferramenta diz que uma política IAM tem * demais, isso é um ponto para você olhar, não um laudo.
Os 8 grupos e as 48 ferramentas públicas, de relance
| Grupo | Exemplos (total) | Quando usar |
|---|---|---|
| Personas e código | architect_panel, code_review_architecture, dependency_manifest_review (3) | Antes de desenhar, para saber que perguntas cada papel faria; ao revisar código ou package.json colado como texto. |
| Arquitetura e decisões | requirements_check, architecture_pattern, service_compare, capacity_plan, cost_model, threat_model, decision_record (14) | O miolo do curso: do requisito ao ADR, passando por número de capacidade, custo e risco. |
| Desenho: diagramas, dados, contratos | c4_model, sequence_diagram, service_equivalents, data_classification, openapi_review, event_contract (6) | Quando precisa de um desenho que o time consiga ler, de um equivalente em Azure/GCP/OCI/OSS ou de revisar uma API antes de publicar. |
| Confiabilidade, operação e FinOps | latency_budget, queue_sizing, dr_strategy, retry_policy, storage_growth, finops_unit_economics, postmortem, runbook (8) | Depois que o desenho existe: quanto aguenta, quanto custa por pedido, como falha e como volta. |
| Agentes de IA e segurança de MCP | agent_eval_plan, prompt_injection_checklist, rag_pipeline_plan, mcp_server_review, mcp_config_review (5) | Antes de colocar um agente em produção, e antes de confiar em qualquer servidor MCP de terceiro, inclusive este. |
| Revisão de infraestrutura como código | iam_policy_review, cloudformation_review, terraform_plan_review, kubernetes_manifest_review (4) | No pull request, com o terraform show -json ou o template colado; trava em achado alto até um humano decidir. |
| AWS Knowledge ao vivo | aws_knowledge_search, aws_knowledge_read, aws_regions, aws_regional_availability, aws_skill (5) | Quando o número precisa de fonte datada: limite de serviço, disponibilidade por região, página oficial. Esta consulta sai do servidor. |
| Integrações oficiais AWS e GitHub | integration_catalog, integration_config, github_public_repository (3) | Para descobrir qual servidor MCP oficial da AWS cobre um serviço e gerar a configuração com versão fixada. |
As 10 personas são lentes, não pareceres
Em src/personas.ts moram 10 arquitetos: solution, enterprise, business, data, infrastructure, software, ai, security, governance e finops. Cada um é um objeto com mandate, questions, checks, deliverables, tools e antiPatterns. Nenhum deles raciocina sozinho. A persona é uma lente: o modelo do seu cliente a adota e passa a fazer as perguntas daquele papel, cobrar as entregas daquele papel e chamar as ferramentas daquele papel.
Elas chegam até você por três caminhos. A tool architect_panel convoca várias de uma vez sobre um assunto e devolve, por papel, o que perguntar primeiro (askFirst), o que checar, o que entregar e quais ferramentas chamar. Os 10 prompts architect_<role> fazem o modelo vestir uma lente só, por exemplo architect_finops quando a conversa é sobre custo. E os 10 resources moretes://personas/<id> deixam o modelo ler a definição inteira do papel.
Por que isso importa num time de 4 pessoas, como o do nosso exemplo? Porque ninguém ali é arquiteto de segurança em tempo integral, e a pergunta "como os segredos são emitidos, rotacionados e revogados?" precisa ser feita mesmo assim. O painel garante que a pergunta apareça antes do desenho congelar. Se a sua empresa tem esses papéis de verdade, a persona não os substitui: ela adianta a pauta da reunião.
Remoto público ou stdio local: o que cada um faz e o que sai da sua máquina
| Aspecto | Remoto público (Streamable HTTP) | Local (stdio) |
|---|---|---|
| Como conecta | Uma URL, sem chave de API: https://mcp.moretes.com/mcp (ou o alias fernando.moretes.com/api/mcp). Um comando no cliente e pronto. | git clone, npm ci --ignore-scripts, npm run build, depois node dist/stdio.js apontado no cliente. Node.js 22.13+. |
| Ferramentas | As 48 públicas. Nunca as de conta AWS: o HTTP sempre sobe createServer(false), mesmo se a variável de ambiente estiver ligada por engano. | As mesmas 48, mais 5 opt-in com ENABLE_AWS_ACCOUNT_TOOLS=true: identidade, inventário por tag, histórico de custo e federação para servidores oficiais da AWS. |
| O que sai da sua máquina | Os argumentos de cada chamada vão para um Lambda em us-east-1. O log guarda só id da requisição, status e duração. Daí, só aws_knowledge_* (AWS Knowledge MCP) e github_public_repository (api.github.com) saem do servidor. | Nada, exceto as mesmas duas famílias que consultam a internet por definição: aws_knowledge_* e github_public_repository. |
| Cota | 300 requisições por dia por chamador (sha256 de dia + IP, o IP bruto nunca é gravado) e 3000 por dia no total; acima disso, 429. Throttle da API: 5 rps, burst 20. | Sem cota. O limite é a sua máquina. |
| Quando usar | Para aprender, para o caso de exemplo deste curso e para desenho que não é confidencial. | Se a entrada é confidencial (arquitetura de cliente, plano do Terraform real, política IAM da sua conta), então local. Sem SLA no público, também. |
{
"kind": "heuristic-design-aid",
"validated": false,
"limitation": "Validate assumptions and current AWS documentation. This is not an official AWS review, security audit, deployment or price quote.",
"sources": [
"https://docs.aws.amazon.com/wellarchitected/latest/framework/welcome.html"
],
"workload": "API de pedidos para marketplace com pagamento por cartão, 300 pedidos/minuto no pico, clientes no Brasil",
"constraints": ["Equipe de 4 pessoas", "Orçamento de USD 1.500/mês"],
"decisionsToClarify": [
"Business outcome and workload owner",
"Data classification, residency and retention",
"Traffic: normal/peak RPS, payloads and growth",
"SLO, p95/p99 latency, RTO and RPO",
"Authentication, authorization and tenancy",
"Monthly budget, currency and pricing region",
"Team skills, dependencies and migration constraints"
],
"nextTools": ["architecture_pattern", "aws_knowledge_search", "decision_record"]
}{
"kind": "calculation",
"assumptions": { "requestsPerSecond": 5, "durationMs": 400, "payloadKB": 4, "headroom": 1.5 },
"averageConcurrency": 2,
"plannedConcurrency": 3,
"dailyRequests": 432000,
"dailyPayloadGB": 1.728,
"limitations": [
"Assumes sustained rate all day; separate burst and average inputs",
"Validate quotas, tail latency, downstream capacity, storage overhead and retries"
]
}Leia o campo limitations antes do número
O 432000 de requisições por dia assume 5 por segundo durante 24 horas, e o próprio resultado avisa. Um marketplace brasileiro não tem 5 pedidos por segundo às 4 da manhã. O servidor devolve a conta certa para a hipótese que você deu; a hipótese continua sendo sua. É por isso que toda resposta traz validated: false e limitation: a ferramenta é triagem, e a decisão fica com quem assina. E não mande dado confidencial para o endpoint público; para isso existe o stdio local.
O caso que atravessa o curso: a plataforma de pedidos de um marketplace
Todas as 10 aulas usam o mesmo caso, com os mesmos números, para você ver uma arquitetura nascer de ponta a ponta em vez de 10 exemplos soltos. É o caso que os arquivos docs/examples/*.json do repositório já usam, então cada saída que você vir aqui é real.
Pedidos de um marketplace: 300 pedidos por minuto no pico, pagamento por cartão, clientes no Brasil, confirmação do pedido em menos de 2 segundos (p95), histórico guardado por 5 anos. Equipe de 4 pessoas, orçamento de USD 1.500 por mês, SLO de 99,9% mensal. Esses números não são decorativos: 300 por minuto vira 5 por segundo no capacity_plan, os 5 anos de histórico viram uma curva no storage_growth, os USD 1.500 viram teto no cost_model e o 99,9% vira 43 minutos de indisponibilidade por mês no slo_budget.
Ao fim das 10 aulas você terá, para esse caso, o que eu entregaria a um cliente: os requisitos checados e as lacunas nomeadas; o painel de arquitetos com as perguntas feitas antes do desenho; a comparação de alternativas de computação e de banco com fonte oficial datada; o diagrama C4 e o diagrama de sequência do checkout; o cenário de capacidade, latência e custo por pedido; a revisão da política IAM e da infraestrutura como código; o ADR com alternativas, consequências e testes pendentes; o ensaio de falha e o runbook; e a revisão de segurança do próprio agente que vai operar isso. Tudo gerado dentro do seu cliente, com as ferramentas desta aula. A aula 2 começa pelo passo zero: conectar, em cada cliente, em 30 segundos.
O que você leva desta aula
Glossário da aula
Toque num cartão para virar.