Aula 13 - Testes e Validação 🧪
Objetivo
Objetivo: Aprender estratégias para testar servidores MCP, garantindo que as ferramentas e recursos funcionem conforme o esperado e que a integração com a IA seja robusta e livre de erros.
1. A Pirâmide de Testes para MCP 🏗️
Testar aplicações de IA exige uma abordagem em camadas:
- Testes Unitários: Valide a lógica interna das suas ferramentas (ex: a função de soma realmente soma?).
- Testes de Integração: Teste a conexão JSON-RPC entre um cliente simulado e o seu servidor.
- Testes de Modelo (Evals): Verifique se o LLM entende quando e como chamar as suas ferramentas.
2. Mocking do Cliente e Transporte 🎭
Não precisamos do Claude Desktop para testar nosso servidor. Podemos usar ferramentas que simulam o cliente.
- mcp-inspector: Permite chamadas manuais e visualização de logs.
- Scripts de Teste: Pequenos programas que enviam JSON via
stdine leem ostdout.
// Exemplo de teste unitário simples (Jest)
test("calculate_area tool should return correct area", async () => {
const result = await calculateArea({ width: 10, height: 5 });
expect(result.content[0].text).toBe("A área é 50");
});
3. Testando a Descrição da Tool (AI-Consistency) 🤖
Se a IA chama a ferramenta errada para uma pergunta, o problema costuma estar na descrição.
Teste de Gatilho (Trigger Test)
Tente fazer perguntas variadas para uma IA de teste e veja se ela escolhe a sua Tool corretamente.
* Pergunta: "Qual o tamanho da sala de 4x5?" -> Deve chamar calculate_area.
* Pergunta: "Quanto custa o metro?" -> NÃO deve chamar calculate_area.
4. Monitoramento em Produção 🔎
Após o deploy, precisamos saber se o servidor está saudável.
- Heartbeat: O servidor responde a requisições de
ping? - Erro Rate: Qual a porcentagem de chamadas de ferramentas que retornam erro de parâmetro?
graph TD
A[Monitor] -- "Ping / Healthcheck" --> B[MCP Server]
B -- "Logs Status" --> C[Dashboard Grafana/Loki]
B -- "Erro na Tool" --> D[Alerta Slack/Email]
5. Prática: Validando Respostas JSON 💻
Use ferramentas de validação de schema para garantir que seu servidor nunca envie um JSON malformado.
$ npm run test:mcp
[RUN] Testando Handshake... PASS
[RUN] Testando Tool 'get_weather'... PASS
[RUN] Validando JSON Schema da resposta... PASS
[SUCCESS] 3/3 testes concluídos com sucesso!
6. Mini-Projeto: Suíte de Testes 🧪
- Crie um conjunto de 5 perguntas (prompts) que a IA deveria conseguir resolver usando as ferramentas do seu servidor.
- Teste cada uma no Inspetor e anote o resultado.
- Se a IA falhar em uma, ajuste a descrição da Tool e teste novamente até obter 100% de sucesso.
7. Exercícios de Fixação 📝
- Diferencie um teste unitário de um "Teste de Modelo" (Eval).
- Por que o
mcp-inspectoré essencial durante a fase de desenvolvimento? - Como você monitoraria se um servidor MCP remoto está parando de responder?
Dica
Automatize seus testes de Handshake em cada git push para evitar que mudanças no código quebrem a inicialização do servidor.
Próxima Aula: Deploy de Servidor MCP 🚢