MCP Fusion/Operate and integrate/Testes
Testes
O @mcpfusion/testing roda suas ferramentas pelo pipeline real, em memória: sem servidores, sem tokens, fidelidade total em validação, middleware, redação e Presenters.
Testar um servidor MCP geralmente significa mockar o protocolo e perder confiança. O @mcpfusion/testing vai pelo outro caminho: roda seu registro real pelo pipeline real, em memória, então um teste aprovado valida o mesmo caminho de código que a produção executa.
npm install @mcpfusion/testingO harness
import { createMCPFusionTester } from '@mcpfusion/testing';
import registry from './src/server';
const t = createMCPFusionTester(registry, { contextFactory: () => ({ db: testDb }) });
test('get_invoice hides PII and teaches units', async () => {
const result = await t.callAction('billing', 'get_invoice', {
id: 'inv_2026_0417',
});
expect(result.data.email).toBeUndefined();
expect(result.systemRules).toContain(
'amount_cents is in CENTS. Divide by 100.',
);
expect(result.rawResponse).toContain('billing.remind');
});Uma chamada, e a asserção inspeciona exatamente o que o agente receberia: o conteúdo estruturado após a redação, as regras de sistema que o Presenter injeta, as affordances que ele sugere.
O que roda de verdade
| Estágio | Fidelidade |
|---|---|
| Validação de entrada | Schemas Zod reais, do builder |
| Middleware | Correntes reais, derivação de contexto real |
| Redação | Funções de redação compiladas reais |
| Modelagem do Presenter | Schemas, regras, blocos de UI e affordances reais |
| Transporte | Mockado, a única parte substituída |
Como o harness roda em memória, sem servidor e sem tokens, os testes são rápidos o bastante para rodar a cada push, inclusive no CI.
O que testar
- O contrato de saída. Verifique que os campos de PII estão ausentes do
result.data. Esse é o teste que pega o dia em que alguém adiciona um campo e esquece o caminho da redação. - As regras. Verifique que
systemRulescontém as linhas de unidade e moeda que seu Presenter promete. - Affordances. Verifique que
.suggest()oferece as próximas ações certas por estado. - Formato da falha. Verifique que falhas de
Resultvoltam comavailableActions, para que os agentes se auto-recuperem. - Controle de estado. Com ferramentas vinculadas a FSM, verifique que, nos estados que a proíbem, a ferramenta está ausente da lista de ferramentas.
Se o seu agente de codificação com IA escreveu a ferramenta, é aqui que você verifica o trabalho dele. O contrato SKILL.md faz o agente prometer o padrão; esses testes fazem o CI impô-lo. Veja Skills.
CI
npx vitest run
mcpfusion lock --check ./dist/server.jsCombine o harness com a checagem de lockfile de capacidades do Governance: os testes verificam o comportamento, o lockfile verifica que a superfície não desviou. Juntos, são os dois portões pelos quais toda mudança passa antes do deploy.
Próximos passos
- Tools: o que o harness exercita
- Governance: o lockfile e o portão do CI
- Deploy: entregue com confiança, de graça
