Load testing em servidores MCP com Locust e Azure Load Testing
Aprofundamento CEVIU
Aprofundamento
O guia publicado em 8 de junho de 2026 não é só mais um tutorial de load testing: ele fecha um ciclo crítico na maturidade operacional do Model Context Protocol (MCP). Enquanto as coberturas anteriores do CEVIU focaram em descoberta de servidores expostos (AIMap, LLMjacking), testes de segurança em desenvolvimento (RAMPART) e implantação gerenciada (AWS MCP Server), este artigo traz a peça que faltava, a validação de desempenho sob carga real de agentes. O harness Python com Locust não simula apenas requisições HTTP, mas o ciclo completo do MCP: inicialização com handshake JSON-RPC, descoberta dinâmica de ferramentas via listTools, chamadas autenticadas com credenciais IAM ou tokens OAuth, e limpeza de sessão com shutdown. Isso é essencial porque servidores MCP stateful, como os usados em ambientes de codificação assistida com Qwen3-Coder 30B, acumulam estado entre etapas de raciocínio e falham silenciosamente sob concorrência alta se não forem testados nesse fluxo inteiro.
A escolha por Locust + Azure Load Testing (agora Azure App Testing) não é acidental: o serviço suporta TCP e JSON-RPC nativamente, além de rodar com Python 3.9.19 e Locust 2.33.2, versões compatíveis com os clientes mcp-agent mais recentes. Isso permite medir métricas específicas de agentes, como latência de loop completo (não só de uma chamada isolada), throughput de ferramentas por segundo e taxa de falhas em autenticação sob 500+ sessões simultâneas, cenário comum em pipelines CI/CD com múltiplos agentes executando testes de segurança em paralelo, como no setup de caça autônoma de vulnerabilidades com Claude Code.
O que mudou
Em maio, o CEVIU destacou servidores MCP como alvos de ataques (LLMjacking) e como infraestrutura a ser protegida (AIMap, RAMPART) ou implantada (AWS MCP Server GA). Agora, em junho, a cobertura evolui para a fase operacional: não basta estar seguro ou disponível, o servidor precisa escalar sob carga real de agentes. Antes, testes eram pontuais ou baseados em ferramentas genéricas; agora há um harness específico para o ciclo de vida do MCP, integrado com Azure App Testing e validado contra padrões de autenticação usados na prática (IAM, OAuth, JWT). Isso transforma o load testing de um exercício teórico em parte obrigatória do pipeline DevOps para equipes que operam agentes em produção.
Por que isso importa
Um servidor MCP que passa em testes de segurança e está em GA não garante estabilidade quando 200 agentes simultâneos executam listTools, chamam aws:ec2:describeInstances e tentam shutdown em sequência. Falhas aqui não geram erros 500 visíveis, causam lentidão progressiva, perda de contexto entre etapas de raciocínio ou rejeição silenciosa de chamadas, prejudicando a confiabilidade do agente inteiro. Esse guia fornece a primeira referência prática para medir exatamente isso: latência sob carga real, comportamento de falha em sessões stateful e capacidade de recuperação após picos. Para times de plataforma, é o ponto de partida para definir SLOs de agentes, como '95% das chamadas aws:* devem responder em menos de 1,2s com até 100 sessões ativas'.
Linha do tempo
Lançamento do AIMap para descoberta e teste de segurança de servidores MCP expostos
Publicação do setup de caça autônoma de vulnerabilidades com MCP e Claude Code
Relato de LLMjacking com honeypot MCP recebendo 113 mil requisições em um mês
Lançamento do RAMPART pela Microsoft para testes de segurança de agentes em desenvolvimento
Guia prático de load testing em servidores MCP com Locust e Azure App Testing
Perguntas frequentes
Por que usar Locust em vez de JMeter para testar servidores MCP?
Locust roda em Python, permitindo codificar diretamente o fluxo do protocolo MCP, como inicialização com JSON-RPC over stdio, troca de headers de autenticação e tratamento de eventos SSE. JMeter exigiria plugins complexos e não oferece a mesma flexibilidade para simular sessões stateful com estado compartilhado entre requisições.
Esse teste funciona com servidores MCP stateless, como o da AWS?
Funciona, mas com foco diferente. Em servidores stateless, o teste valida principalmente throughput e latência de chamadas individuais. Já em servidores stateful, como os usados em setups de caça autônoma de vulnerabilidades, ele mede estabilidade de sessão, vazamento de memória e consistência de contexto entre múltiplas chamadas sequenciais.
Como integrar esse load test ao CI/CD?
O harness é compatível com Azure DevOps e GitHub Actions via Azure App Testing. Basta incluir um job que execute o script Locust como parte do pipeline pós-implantação, com thresholds de latência e erro configuráveis. Resultados vão direto para Azure Monitor, acionando alertas se a média de resposta ultrapassar 1,5s em cargas de 200 VUs.
Quais métricas novas devo rastrear além de RPS e tempo médio?
Monitore latência de loop completo (inicialização → chamada → shutdown), taxa de falhas em listTools sob concorrência, número de sessões ativas que o servidor mantém sem degradação e tempo de recuperação após falha simulada, essas são críticas para agentes que dependem de estado contínuo, como os usados em pentest autônomo com MCP.
- Categoria
- CEVIU DevOps
- Publicado
- 08 de junho de 2026
- Fonte
- CEVIU DevOps
