mcp-chatbots

n8n community nodes for Model Context Protocol (MCP) integration

Package Information

Released: 15 mo ago
Downloads: 18 weekly / 55 monthly
Latest Version: 0.1.7
Author: Supervisor AI

Documentation

@getsupervisor/mcp-n8n

Una librería independiente que implementa el protocolo MCP (Model Context Protocol) para n8n, permitiendo la creación de servidores y clientes MCP como nodos personalizados.

🚀 Características

  • Servidor MCP: Expone herramientas de n8n como un servidor MCP endpoint
  • Cliente MCP: Conecta a servidores MCP externos para usar sus herramientas
  • Transporte SSE: Soporte para Server-Sent Events
  • Transporte HTTP: Soporte para HTTP streaming
  • Autenticación: Bearer Auth, Header Auth y JWT
  • TypeScript: Completamente tipado para mejor experiencia de desarrollo

📦 Instalación

npm install @getsupervisor/mcp-n8n

🛠️ Uso

Importar los nodos

import { SupervisorMcpServer, SupervisorMcpClient } from '@getsupervisor/mcp-n8n';

Importar utilidades

import { 
  McpToolkit,
  connectMcpClient,
  getAllTools,
  getAuthHeaders,
  McpServerManager
} from '@getsupervisor/mcp-n8n';

🔧 Nodos Disponibles

SupervisorMcpServer

Nodo trigger que expone herramientas de n8n como un servidor MCP.

Características:

  • Múltiples métodos de autenticación (None, Bearer Auth, Header Auth)
  • Soporte para SSE y HTTP streaming
  • Configuración de rutas personalizadas
  • Manejo automático de sesiones

Configuración:

  • authentication: Método de autenticación
  • path: Ruta base para el servidor MCP

SupervisorMcpClient

Nodo que conecta a servidores MCP externos para usar sus herramientas.

Características:

  • Conexión a endpoints SSE
  • Filtrado de herramientas (All, Selected, All Except)
  • Autenticación configurable
  • Manejo automático de errores

Configuración:

  • sseEndpoint: URL del servidor MCP
  • authentication: Método de autenticación
  • include: Modo de selección de herramientas
  • includeTools/excludeTools: Herramientas específicas

🔐 Autenticación

La librería soporta múltiples métodos de autenticación:

Bearer Auth

headers: {
  'Authorization': 'Bearer your-token-here'
}

Header Auth

headers: {
  'X-Custom-Header': 'your-value-here'
}

JWT Auth

Soporte completo para verificación JWT con claves públicas y secretos.

🏗️ Arquitectura

Componentes Principales

  • McpServer: Maneja instancias de servidor MCP
  • McpClient: Conecta a servidores MCP externos
  • FlushingTransport: Transporte optimizado para streaming
  • Utilities: Funciones auxiliares para autenticación y validación

Estructura de Archivos

dist/
├── index.js                    # Punto de entrada principal
├── nodes/
│   ├── McpTrigger/
│   │   └── SupervisorMcpServer.node.js
│   └── McpClient/
│       ├── SupervisorMcpClient.node.js
│       ├── loadOptions.js
│       ├── types.js
│       └── utils.js
├── utils/
│   ├── helpers.js
│   ├── webhookAuth.js
│   ├── sharedFields.js
│   ├── logWrapper.js
│   └── schemaParsing.js
├── client.js
├── types.js
├── FlushingTransport.js
└── McpServer.js

🧪 Desarrollo

Compilar la librería

pnpm build

Desarrollo con watch

pnpm dev

Limpiar archivos generados

pnpm clean

📋 Dependencias

Principales

  • @langchain/core: ^0.3.59
  • langchain: ^0.3.28
  • @modelcontextprotocol/sdk: ^1.12.0
  • n8n-workflow: ^1.98.0
  • zod: ^3.25.67
  • jsonwebtoken: ^9.0.2
  • basic-auth: ^2.0.1

Desarrollo

  • @n8n/typescript-config: ^1.2.0
  • @types/jsonwebtoken: ^9.0.7
  • @types/basic-auth: ^1.1.8
  • tsup: ^8.5.0
  • rimraf: ^6.0.1

🔄 Migración desde n8n-langchain

Si vienes de los nodos MCP originales de n8n-langchain:

  1. Cambia las importaciones:

    // Antes
    import { McpTrigger } from '@n8n/nodes-langchain';
    
    // Después
    import { SupervisorMcpServer } from '@getsupervisor/mcp-n8n';
    
  2. Actualiza nombres de nodos:

    • mcpTrigger → supervisorMcpServer
    • mcpClientTool → supervisorMcpClient

📝 Licencia

Esta librería está basada en el código original de n8n y mantiene la misma licencia.

🤝 Contribuciones

Las contribuciones son bienvenidas. Por favor:

  1. Fork el repositorio
  2. Crea una rama para tu feature
  3. Commit tus cambios
  4. Push a la rama
  5. Abre un Pull Request

📞 Soporte

Para reportar bugs o solicitar features, por favor abre un issue en el repositorio.


Nota: Esta librería es independiente y auto-contenida. No requiere instalación de n8n para funcionar, solo las dependencias especificadas en package.json.

Discussion