使用说明
🚀 Mi Ruta de Aprendizaje: n8n, Docker y MCP
📦 Módulo 1: n8n (Automatización Visual)
- Nodos Básicos: Los flujos nacen en un
Triggery se procesan en nodosAction. - Estructura de Datos: n8n siempre transporta la información en un array de Items. La data real debe ir dentro de la propiedad raíz
json:[{ json: { data } }]. - Lógica Condicional: El nodo
Ifevalúa el payload entrante para enrutar visualmente (True/False). - Consumo y Creación de APIs:
HTTP Request: Nodo para consumir APIs de terceros.Webhook: Nodo para escuchar peticiones externas y exponer n8n como una API REST.- Expressions: Uso de
{{ }}para inyectar variables dinámicas, como Query Parameters ($json.query.parametro).
🐳 Módulo 2: Docker y Orquestación
- Imagen vs Contenedor: La Imagen es el molde inmutable (la Clase); el Contenedor es el servidor vivo y efímero (la Instancia).
- Puertos: Mapeo de tráfico entre tu máquina y el contenedor (ej.
5678:5678). - Volúmenes (Bind Mounts): El puente vital (
./n8n_data:/home/node/.n8n) para que el contenedor escriba la base de datos (SQLite) directamente en tu disco de WSL y no se pierda nada al reiniciar. - Docker Compose: Archivo declarativo (
docker-compose.yml) para orquestar la infraestructura, usar archivos.envy mapear permisos (user: "1000:1000"). - Dockerfile Personalizado: Modificar la imagen oficial para instalar paquetes NPM globales (
uuid) y permitir su uso en n8n alterando la variableNODE_FUNCTION_ALLOW_EXTERNAL.
🤖 Módulo 3: Model Context Protocol (MCP)
- Tools (Herramientas): Acciones activas que la IA puede ejecutar (ej. hacer fetch a una API o disparar un Webhook de n8n). Se definen con
ListToolsRequestSchemayCallToolRequestSchema. - Resources (Recursos): Datos pasivos que la IA puede leer para obtener contexto (ej. leer un archivo
.logo un esquema de base de datos). Se definen conListResourcesRequestSchemayReadResourceRequestSchema, usando URIs (file:///...). - El Inspector: Herramienta visual (
npx @modelcontextprotocol/inspector node index.js) para simular a la IA, testear inputs y validar schemas sin escribir comandos crudos. - La Arquitectura Definitiva: La IA razona -> El Servidor MCP comunica -> El contenedor Docker de n8n ejecuta.
Comando para ejecutar el servidor de mcp
npx @modelcontextprotocol/inspector node index.js
Comando para ejecutar la lista de tools del mcp
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | node index.js
Comando para ejecutar llamar una tool especifica del mcp
echo '{"jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": {"name": "obtener_clima_local", "arguments": {"ciudad": "Medellín"}}}' | node index.js
🔌 Módulo 4: Integración End-to-End (Claude + WSL + n8n)
- El Reto WSL-Windows: Los clientes de IA en Windows (como Claude Desktop) necesitan cruzar a Linux para ejecutar Node.js.
- La Solución de Configuración: En
%APPDATA%\Claude\claude_desktop_config.json, definimos el servidor usando el binario nativo de Node.js de WSL para evitar que la terminal de Linux (bash) imprima texto basura y rompa la comunicación de JSON-RPC.- Comando:
wsl.exe - Argumentos:
["/ruta/absoluta/a/node", "/ruta/absoluta/a/index.js"]
- Comando:
- Ejecución Autónoma: Una vez conectado correctamente, el cliente de IA lee el
ListToolsRequestSchema, decide cuándo invocarCallToolRequestSchemay el servidor MCP de Node.js orquesta todo, desde consultas HTTP hasta la activación de Webhooks en nuestro Docker de n8n. - Resultado: Un Agente de IA 100% funcional y local con acceso a bases de datos, APIs de terceros y flujos de automatización visuales.
Otro paso al momento de configurar el MCP con claude
Debemos agregar en el codigo de configuracion de claude_desktop_config.json lo siguiente:
"mcpServers": { "mi-orquestador-n8n": { "command": "wsl.exe", "args": [ "/home/linuxbrew/.linuxbrew/bin/node", "/datosDev/first-mcp/index.js" ] } }
