Claude puede llamar a tus workflows de n8n: así funciona MCP
Conecta Claude con tus automatizaciones usando el protocolo MCP. Claude decide cuándo ejecutar un workflow y tú solo miras.
01 01. El problema: la IA no toca nada
Llevo meses usando Claude para generar código, resumir textos y hasta planificar rutas de viaje. Pero siempre topo con el mismo muro: Claude no puede ejecutar acciones reales. No envía emails, no modifica una base de datos, no toca mi Docker. Hasta ahora.
MCP (Model Context Protocol) cambia eso. Es un estándar abierto de Anthropic que permite a Claude —o a cualquier modelo compatible— llamar a herramientas externas de forma segura. Y lo mejor: puedes montar tu propio servidor MCP en Node o Python y exponer exactamente lo que quieras.
02 02. Por qué n8n es el compañero perfecto
n8n ya es mi navaja suiza para automatizaciones: conecta APIs, gestiona colas, envía notificaciones, mueve archivos. Pero hasta ahora el disparador era un webhook, un schedule o una acción manual. Con MCP, Claude se convierte en un nuevo tipo de trigger: inteligente, contextual y conversacional.
Imagina: le pides a Claude que busque correos no leídos de clientes urgentes, los resuma y envíe una respuesta con un template. Claude decide cuándo llamar a tu workflow de n8n que filtra, resume y responde. Tú solo configuras el servidor MCP una vez.
03 03. Manos a la obra: servidor MCP básico para n8n
Primero, necesitas un servidor MCP que exponga tus workflows de n8n como herramientas. Usaremos Python con la librería oficial `mcp`. El servidor expone una herramienta `trigger_n8n` que recibe un workflow ID y parámetros opcionales.
Claude (o cualquier cliente MCP) puede llamar a esta herramienta. El servidor hace una petición POST al webhook de n8n y devuelve el resultado. Sencillo, seguro y extensible.
from mcp.server import Server, NotificationOptions
from mcp.server.models import InitializationOptions
import mcp.types as types
import httpx
server = Server("n8n-bridge")
N8N_WEBHOOK_BASE = "https://tu-n8n.duckdns.org/webhook/"
@server.list_tools()
async def handle_list_tools() -> list[types.Tool]:
return [
types.Tool(
name="trigger_n8n",
description="Ejecuta un workflow de n8n y devuelve su salida",
inputSchema={
"type": "object",
"properties": {
"workflow_id": {"type": "string", "description": "ID o nombre del workflow"},
"payload": {"type": "object", "description": "Datos de entrada"}
},
"required": ["workflow_id"]
}
)
]
@server.call_tool()
async def handle_call_tool(name: str, arguments: dict | None) -> list[types.TextContent]:
if name != "trigger_n8n":
raise ValueError(f"Unknown tool: {name}")
wf_id = arguments["workflow_id"]
payload = arguments.get("payload", {})
async with httpx.AsyncClient() as client:
resp = await client.post(f"{N8N_WEBHOOK_BASE}{wf_id}", json=payload, timeout=30)
resp.raise_for_status()
result = resp.json()
return [types.TextContent(type="text", text=str(result))]
server.run(transport="stdio")04 04. Conectar con Claude Desktop
El servidor MCP se comunica por stdio o SSE. Para Claude Desktop, añades la configuración en el archivo `claude_desktop_config.json`. Apuntas al script Python y listo. Cada vez que Claude necesite ejecutar tu workflow, lo hará sin que tú muevas un dedo.
Ejemplo real: tengo un workflow que recibe un texto, lo pasa por un modelo local (Ollama) para extraer entidades, y guarda el resultado en Airtable. Claude lo invoca cuando le pido «organiza estos correos en mi CRM». El workflow corre en mi casa, en Docker, sin depender de nada cloud.
{
"mcpServers": {
"n8n-bridge": {
"command": "python",
"args": ["/ruta/a/servidor_mcp_n8n.py"],
"env": {}
}
}
}05 05. Lo que ganamos (y perdemos)
Ganamos: Claude deja de ser un oráculo y se convierte en un operador. Yo puedo decirle «avísame cuando haya un pico de tráfico en el servidor y escala el contenedor» y él decide llamar a un workflow que consulta métricas y ejecuta Docker commands (vía n8n con ejecución local).
Perdemos: el setup inicial requiere algo de paciencia. El servidor MCP corre en tu máquina y Claude Desktop debe poder alcanzarlo. También hay que pensar en seguridad: no expongas workflows peligrosos sin autenticación. Pero para un entorno personal o de pruebas, es una maravilla.
¿Ya has probado MCP con n8n? Cuéntame qué workflow te gustaría darle a Claude para que lo ejecute solo. Seguro que se nos ocurren ideas locas.