Integraciones
Windsurf (Devin Desktop)
Configura zn-gate en Windsurf (Devin Desktop, Cascade) en dos minutos: añádelo como servidor MCP y lo que zn-gate todavía no cubre ahí.
Inicio rápido (sin necesidad de programar)
-
Comprueba que Node.js está instalado. Abre una terminal (en la mayoría de editores: menú Terminal → New Terminal; o la aplicación Terminal de tu ordenador), escribe
node --versiony pulsa Intro. Si ves un número de versión (18 o posterior), continúa. Si ves "command not found", instala la versión LTS desde nodejs.org y reinicia Windsurf. -
Abre el archivo de configuración de MCP: en macOS y Linux
~/.config/devin/mcp_config.json, en Windows%APPDATA%\devin\mcp_config.json. Si no existe, créalo. (~es tu carpeta de usuario. Las versiones antiguas de Windsurf usaban~/.codeium/windsurf/mcp_config.json, no verificado.) -
Pega esto:
{ "mcpServers": { "zn-gate": { "command": "npx", "args": [ "-y", "zn-gate", "mcp" ] } } }Si el archivo ya tiene una sección
"mcpServers", añade solo la parte"zn-gate": {...}dentro de ella. -
Guarda el archivo y actualiza los servidores MCP en el panel de Cascade (o reinicia la aplicación).
Estado: estos pasos siguen la documentación de Windsurf; aún no los hemos verificado nosotros en Windsurf.
Qué protege zn-gate en Windsurf y qué no
En Windsurf, zn-gate funciona como servidor MCP: el agente puede pedirle que compruebe un prompt, una llamada a una herramienta o un resultado de una herramienta (analyze_prompt, check_tool_call, check_tool_result). El agente decide cuándo llamar a estas herramientas, así que por sí solo esto no es una protección automática.
| En Windsurf | |
|---|---|
| Comprobaciones de zn-gate disponibles para el agente (MCP) | Sí |
| Tus otros servidores MCP comprobados en busca de inyección de prompts y secretos | Sí, si los envuelves (abajo) |
Bloquea lecturas de .env y de archivos de credenciales |
No |
| Elimina secretos de la salida de la shell y del contenido de archivos | No |
| Bloquea un secreto pegado en el chat | No |
Cascade tiene hooks: pre_mcp_tool_use, pre_run_command y pre_read_code pueden bloquear una acción (código de salida 2), pero su documentación no describe una forma de que los hooks cambien la salida de una herramienta, y zn-gate todavía no instala hooks para Cascade. Por tanto, en Windsurf zn-gate no bloquea lecturas de tu .env o de archivos de credenciales, y no elimina secretos de la salida de la shell ni del contenido de archivos. Si necesitas eso hoy, usa zn-gate con Claude Code, Codex CLI, Cursor u OpenCode: consulta compat.md.
Referencia técnica
Dónde está la configuración
macOS y Linux: ~/.config/devin/mcp_config.json. Windows: %APPDATA%\devin\mcp_config.json.
Comprueba la salida de tus otros servidores MCP
Para comprobar la salida de los otros servidores MCP que usas en Windsurf, inicia cada servidor local a través de zn-gate: sustituye su comando por npx y coloca -y zn-gate shield -- delante de su comando y argumentos originales. Por ejemplo, un servidor iniciado con uvx mcp-server-fetch queda así:
{
"mcpServers": {
"fetch": {
"command": "npx",
"args": [
"-y",
"zn-gate",
"shield",
"--",
"uvx",
"mcp-server-fetch"
]
}
}
}
Cada resultado de ese servidor se comprueba entonces en busca de inyección de prompts, y los secretos que zn-gate reconoce se eliminan, antes de que el agente lo vea. zn-gate init, que hace esto automáticamente para Claude Desktop, Claude Code, Cursor, Codex y OpenCode, no edita la configuración de Windsurf.
Documentación de Windsurf
- MCP en Cascade: https://docs.devin.ai/desktop/cascade/mcp
- Hooks de Cascade: https://docs.devin.ai/desktop/cascade/hooks