MCP Fusion/Operate and integrate/Testes

Testes

Pergunte à IA sobre a Vinkius

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.

bash
npm install @mcpfusion/testing

O harness

typescript
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ágioFidelidade
Validação de entradaSchemas Zod reais, do builder
MiddlewareCorrentes reais, derivação de contexto real
RedaçãoFunções de redação compiladas reais
Modelagem do PresenterSchemas, regras, blocos de UI e affordances reais
TransporteMockado, 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 systemRules conté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 Result voltam com availableActions, 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

bash
npx vitest run
mcpfusion lock --check ./dist/server.js

Combine 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