MCP Fusion/Integrations and federation/Connecteur n8n
Connecteur n8n
Exposez des workflows n8n marqués comme outils MCP : découvrez automatiquement les webhooks, déduisez les schémas d’entrée et actualisez la liste d’outils de l’agent lorsque les workflows changent.
n8n contient déjà la logique d’automatisation. MCP Fusion transforme ces workflows en connecteur destiné aux agents sans vous demander de réécrire chaque workflow en TypeScript. Le package n8n découvre les webhooks, déduit leur forme d’entrée et synthétise des outils regroupés.
Découvrir automatiquement les workflows marqués
import { createN8nConnector } from '@mcpfusion/n8n';
const n8n = await createN8nConnector({
url: process.env.N8N_URL!,
apiKey: process.env.N8N_API_KEY!,
includeTags: ['ai-enabled'],
pollInterval: 60_000,
onChange: () => server.notification({
method: 'notifications/tools/list_changed',
}),
});
for (const tool of n8n.tools()) {
registry.register(defineTool(tool.name, tool.config));
}La configuration source est volontairement réduite : url et apiKey sont obligatoires ; includeTags, excludeTags, timeout, pollInterval et onChange sont facultatifs. Le filtrage par tags a lieu pendant la découverte, les workflows internes n’entrent donc jamais dans la surface du connecteur.
Ce que fait la découverte
WorkflowDiscovery lit les workflows n8n et identifie les flux déclenchés par webhook. inferSchema transforme le payload du webhook en définitions de paramètres. synthesizeTool crée un outil et synthesizeAll crée l’ensemble complet. toToolName donne au workflow un nom MCP déterministe.
Lorsque la requête détecte un workflow modifié, appelez notifications/tools/list_changed via onChange. Le client recharge la surface sans redéployer le code de votre connecteur.
Définition manuelle d’un outil
La découverte est pratique, mais il peut être préférable d’écrire manuellement un contrat public stable :
import { defineN8nTool } from '@mcpfusion/n8n';
const sendInvoice = defineN8nTool({
name: 'billing.send_invoice',
workflowId: 'workflow_42',
webhookPath: 'billing/send-invoice',
method: 'POST',
description: 'Send an invoice through the approved workflow',
params: {
invoice_id: { type: 'string', required: true },
notify_customer: { type: 'boolean', required: false },
},
tags: ['billing'],
});La configuration manuelle accepte workflowId, webhookPath, la méthode HTTP facultative, description, params, annotations et tags. Vous contrôlez le nom et le schéma de l’outil ; n8n contrôle l’exécution du workflow.
Limite de sécurité
La clé API est un identifiant du connecteur, pas un argument du modèle. Stockez-la avec BYOC credentials, jamais dans un prompt ni dans un schéma d’outil généré. Ajoutez un middleware d’authentification autour des outils synthétisés, filtrez les tags par déploiement et associez des Presenters lorsqu’un workflow renvoie des enregistrements métier. n8n ne déduit pas automatiquement votre politique de tenant et n’expurge pas les champs arbitraires de la réponse.
Étapes suivantes
- Generators: sources OpenAPI et Prisma
- Authentication: protégez les outils de workflow
- Tool exposition: actions n8n regroupées ou plates
