MCP Fusion/Integrations and federation/Conector n8n

Conector n8n

Pregunta a la IA sobre Vinkius

Expón workflows de n8n etiquetados como herramientas MCP: descubre webhooks automáticamente, infiere esquemas de entrada y actualiza la lista de herramientas del agente cuando cambien los workflows.

n8n ya contiene la lógica de automatización. MCP Fusion convierte esos workflows en un conector orientado a agentes sin pedirte que reescribas cada workflow en TypeScript. El paquete de n8n descubre webhooks, infiere su forma de entrada y sintetiza herramientas agrupadas.

Descubrir automáticamente workflows etiquetados

typescript
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 configuración de origen es intencionadamente pequeña: url y apiKey son obligatorios; includeTags, excludeTags, timeout, pollInterval y onChange son opcionales. El filtrado por etiquetas ocurre durante el descubrimiento, así que los workflows internos nunca entran en la superficie del conector.

Qué hace el descubrimiento

WorkflowDiscovery lee los workflows de n8n e identifica los flujos activados por webhook. inferSchema convierte el payload del webhook en definiciones de parámetros. synthesizeTool crea una herramienta y synthesizeAll crea el conjunto completo. toToolName da al workflow un nombre MCP determinista.

Cuando la consulta detecta un workflow modificado, llama a notifications/tools/list_changed mediante onChange. El cliente recarga la superficie sin volver a desplegar el código del conector.

Definición manual de herramientas

El descubrimiento es práctico, pero un contrato público estable puede ser mejor escribirlo a mano:

typescript
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 configuración manual acepta workflowId, webhookPath, el método HTTP opcional, description, params, annotations y tags. Tú controlas el nombre y el esquema de la herramienta; n8n controla la ejecución del workflow.

Límite de seguridad

La clave de API es una credencial del conector, no un argumento del modelo. Guárdala con BYOC credentials, nunca en un prompt ni en un esquema de herramienta generado. Añade middleware de autenticación alrededor de las herramientas sintetizadas, filtra las etiquetas por despliegue y adjunta Presenters cuando un workflow devuelva registros del dominio. n8n no infiere automáticamente tu política de tenant ni redacta campos arbitrarios de la respuesta.

Próximos pasos