La idea de tener un “agente” que responda mensajes, consulte tu correo, acceda a tus notas y ejecute acciones en tu máquina suena atractiva… hasta que te paras a pensar en el modelo de amenazas. En proyectos tipo “OpenClaw”, parte del debate reciente ha girado precisamente alrededor de esto: cuando el agente puede ver credenciales o tocar más de lo que debería, los “límites” acaban pareciéndose más a sugerencias que a controles duros.
El enfoque que está ganando tracción en entornos de desarrollo y operaciones es el contrario: separar el plano de control del plano de ejecución, y poner “vallas” técnicas que no dependan de la buena fe del prompt.
Arquitectura recomendada (mentalidad sysadmin)
Objetivo: que tu agente sea útil desde cualquier dispositivo (Telegram/Slack), pero que:
- No pueda acceder a tus claves API.
- No pueda modificar su propia infraestructura.
- Solo vea carpetas montadas explícitamente.
- Solo use herramientas permitidas.
- Pida confirmación humana para acciones sensibles (enviar correos, ejecutar cambios destructivos, etc.).
Para esto, la receta típica es:
- n8n (en un VPS) como orquestador: triggers, colas, lógica, integraciones SaaS, auditoría.
- Claude Opus 4.6 como “cerebro” (razonamiento + planificación + tool-use), invocado desde n8n.
- Desktop Commander MCP (en tu portátil/PC o en un host cercano) para exponer capacidades locales (shell, ficheros, etc.) pero con permisos estrictos y carpetas montadas.
- mcp-proxy como puente/terminación de transporte cuando lo necesitas (por ejemplo, para exponer servidores MCP locales hacia un endpoint consumible por n8n).
- Cloudflare Tunnel para publicar ese endpoint de forma segura sin abrir puertos y con control de acceso.
Paso 1: Desktop Commander MCP en Docker (local, con “mínimo privilegio”)
Desktop Commander MCP está pensado para exponer herramientas locales a un modelo vía MCP (terminal, ficheros, etc.). Lo crítico aquí no es “que funcione”, sino cómo limitas el alcance: montajes de carpetas, permisos de usuario, y (si puedes) contenedores rootless.
Ejemplo conceptual (ajústalo a tu entorno):
docker run --rm -it \
--name desktop-commander-mcp \
-v /home/usuariolinux/AgenteCompartido:/workspace:rw \
-v /home/usuariolinux/.ssh:/ssh:ro \
--read-only \
--tmpfs /tmp \
--security-opt no-new-privileges:true \
desktop-commander-mcp:latest
Lenguaje del código: JavaScript (javascript)
Ideas prácticas (operación real):
- Monta una carpeta de “drop zone” (
/workspace) y nada más. - Si necesitas secretos (tokens, credenciales), que vivan en el lado n8n (credenciales gestionadas), no dentro del contenedor local.
- Si el agente necesita instalar herramientas, hazlo en un sandbox aparte (otro contenedor o VM), no en tu host.
Paso 2: Exponer MCP de forma segura (mcp-proxy + Cloudflare Tunnel)
En muchos montajes, el servidor MCP local habla “stdio” o un transporte no directamente consumible desde fuera. Ahí entra mcp-proxy como adaptador/proxy (por ejemplo, para publicar un endpoint HTTP/SSE consumible por tu orquestador).
Luego, para conectarlo desde el VPS (n8n) sin abrir el router ni exponer IPs, Cloudflare Tunnel es una opción práctica: instalas cloudflared y levantas el túnel como servicio con cloudflared tunnel run --token ....
Ejemplo mínimo (conceptual) en Linux:
cloudflared tunnel run --token <TOKEN_DEL_TUNEL>
Lenguaje del código: HTML, XML (xml)
Controles recomendados:
- Restringe acceso con políticas tipo Zero Trust/Access (solo tu identidad o service token).
- Aísla el endpoint: nada de “0.0.0.0 sin auth”.
- Registra logs del túnel y del proxy: en un incidente, te salva.
Paso 3: n8n como “control plane” (VPS) + Telegram/Slack como interfaz
En n8n montas el flujo típico:
- Trigger: Telegram (o Slack).
- Nodo LLM: llamada a Claude Opus 4.6 con system prompt que defina reglas y estilo (y muy importante: política de confirmaciones).
- Herramientas:
- Integraciones SaaS (Gmail/Drive/Notion/Stripe/Linear…).
- Llamada al endpoint MCP (tu Desktop Commander) solo cuando toque.
- Human-in-the-loop:
- Si la acción es sensible (enviar email, borrar ficheros, ejecutar scripts), el flujo pide confirmación explícita y guarda evidencia (mensaje, hash, diff).
Claude Opus 4.6 encaja bien en este patrón por su foco en tareas complejas y tool-use orientado a flujos de trabajo reales.
Paso 4: Memoria, subagentes y el “Ralph Wiggum loop” (sin convertirlo en un monster)
La parte “agentic” suele romperse por dos cosas: memoria sin control y ciclos autónomos sin frenos.
Recomendación sysadmin:
- Memoria corta en el propio flujo (contexto de conversación).
- Memoria larga en un almacén controlado (Postgres/Redis/vector DB), con TTL y políticas (qué se guarda, qué no).
- Subagentes como sub-workflows de n8n: cada uno con herramientas y permisos acotados (por ejemplo: “Agente de correo”, “Agente de notas”, “Agente de operaciones locales”).
El famoso “Ralph Wiggum loop” (simplificado) es: planificar → ejecutar un paso → observar → corregir → repetir, pero con presupuesto (tiempo, pasos, permisos) y condiciones de parada. Si no pones esto, acabas con agentes que “se entretienen” consumiendo tokens y haciendo llamadas inútiles.
Seguridad: lo que un admin debe vigilar (sí o sí)
- Tu mayor superficie de ataque suele ser el orquestador (n8n expuesto, credenciales, webhooks). Mantén el stack actualizado y con mínima exposición pública.
- Si vas a publicar n8n en Internet, asume que es objetivo. En enero de 2026 se divulgó investigación sobre una vulnerabilidad crítica apodada “Ni8mare” (CVE-2026-21858), con recomendaciones de actualización/mitigación. Moral: hardening real, parches y cero confianza por defecto.
- Reglas operativas simples que evitan sustos:
- n8n detrás de auth fuerte (y si puedes, IP allowlist/VPN).
- Credenciales en n8n, no en prompts ni en el host local.
- Logs/auditoría de cada tool-call del agente.
- Confirmación humana para acciones irreversibles.
Qué consigues con este enfoque (y por qué no es “humo”)
- Un agente accesible desde móvil/portátil (Telegram/Slack) sin abrir tu red doméstica.
- Acceso controlado a recursos locales (carpetas montadas) y SaaS.
- Autonomía “de verdad” (puede trabajar horas) pero con límites técnicos.
- Guardrails que no dependen de que el modelo “se porte bien”, sino de permisos, túneles, allowlists y confirmaciones.
Preguntas frecuentes
¿Por qué usar MCP en vez de “scripts sueltos” o un bot con acceso SSH?
Porque MCP te fuerza a definir herramientas y alcance de forma explícita (qué puede hacer y qué no), y eso encaja mejor con un enfoque de mínimos privilegios y auditoría.
¿Cloudflare Tunnel es obligatorio?
No. Es una forma cómoda de evitar abrir puertos y aun así tener un endpoint accesible desde tu VPS. La clave es el principio: exposición mínima + control de acceso.
¿Cómo evito que el agente envíe correos o ejecute comandos peligrosos por error?
Separando “proponer” de “ejecutar”: el agente prepara borradores/diffs, y el flujo pide un “sí” humano antes de hacer el commit (correo enviado, comando destructivo, etc.).
¿Qué parte debería aislar primero si quiero máxima seguridad?
El plano local (Desktop Commander) con carpetas mínimas montadas y sandbox para instalaciones; y el plano n8n con hardening serio (auth, parches, exposición mínima, logs).