MCP Fusion/Operate and integrate/Tests

Tests

Demandez à l’IA à propos de Vinkius

@mcpfusion/testing exécute vos outils dans le vrai pipeline, en mémoire : pas de serveurs, pas de tokens, fidélité totale sur la validation, le middleware, la rédaction et les Presenters.

Tester un serveur MCP signifie généralement simuler le protocole et perdre confiance. @mcpfusion/testing prend le chemin inverse : il exécute votre vrai registre dans le vrai pipeline, en mémoire, de sorte qu’un test réussi valide le même chemin de code que celui que la production exécute.

bash
npm install @mcpfusion/testing

Le 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');
});

Un seul appel, et l’assertion inspecte exactement ce que l’agent recevrait : le contenu structuré après rédaction, les règles système que le Presenter injecte, les affordances qu’il suggère.

Ce qui tourne pour de vrai

ÉtapeFidélité
Validation d’entréeVrais schemas Zod du builder
MiddlewareVraies chaînes, vraie dérivation de contexte
RédactionVraies fonctions de rédaction compilées
Mise en forme du PresenterVrais schemas, règles, blocs UI, affordances
TransportSimulé, la seule partie remplacée

Comme le harness tourne en mémoire sans serveur ni tokens, les tests sont assez rapides pour tourner à chaque push, y compris dans le CI.

Quoi tester

  • Le contrat de sortie. Vérifiez que les champs de PII sont absents du result.data. C’est le test qui attrape le jour où quelqu’un ajoute un champ et oublie le chemin de rédaction.
  • Les règles. Vérifiez que systemRules contient les lignes d’unité et de devise que votre Presenter promet.
  • Affordances. Vérifiez que .suggest() propose les bonnes actions suivantes selon l’état.
  • La forme de l’échec. Vérifiez que les échecs de Result reviennent avec availableActions, pour que les agents se réparent seuls.
  • Filtrage par état. Avec des outils liés à une FSM, vérifiez qu’un outil est absent de la liste d’outils dans les états qui l’interdisent.

Si votre agent de codage IA a écrit l’outil, c’est ici que vous vérifiez son travail. Le contrat SKILL.md fait promettre le motif à l’agent ; ces tests font appliquer le motif par le CI. Voir Skills.

CI

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

Accouplez le harness à la vérification du lockfile de capacités de Governance : les tests vérifient le comportement, le lockfile vérifie que la surface n’a pas dérivé. Ensemble, ils forment les deux portes que chaque changement franchit avant le deploy.

Prochaines étapes

  • Tools: ce que le harness exerce
  • Governance: le lockfile et la porte du CI
  • Deploy: livrez avec confiance, gratuitement