# Servidor MCP

> El servidor MCP remoto de OpenWAF Cloud deja que un asistente de IA gestione zonas, registros DNS, ajustes y reglas con la misma API, roles y auditoría.

OpenWAF Cloud tiene un **servidor MCP remoto** (Model Context Protocol) en **`https://mcp.openwaf.dev/mcp`** para que gestiones tus zonas desde un asistente de IA: Claude Code, Claude Desktop, claude.ai, Cursor o cualquier cliente MCP compatible. Pides un registro DNS, una regla del WAF o una purga de caché con tus palabras; el asistente te enseña el cambio y solo lo aplica cuando confirmas.

El servidor MCP es un cliente fino de la API de OpenWAF, como la CLI. Cada herramienta llama a las mismas rutas REST con la misma credencial, así que roles, ámbitos (organización, cliente, zona), validación, versiones, auditoría y códigos de error son exactamente los de la API. El servidor MCP no tiene lógica de negocio propia.

## De un vistazo

| | |
|---|---|
| URL | `https://mcp.openwaf.dev/mcp` (también `https://mcp.openwaf.dev/` y `https://mcp.openwaf.dev/v1/mcp`). La URL de siempre, `https://dash.openwaf.dev/v1/mcp`, y los dominios de marca blanca siguen funcionando, solo con tokens de API |
| Transporte | Streamable HTTP sin estado (sin `Mcp-Session-Id`), respuestas `application/json`, versiones del protocolo hasta `2026-07-28` |
| Autenticación | **OAuth 2.1**: el cliente abre el panel para que inicies sesión y des permiso. O `Authorization: Bearer owf_…`, un token de API como los de la CLI. No acepta la sesión del panel |
| Organización | La del token, o la que eliges en la pantalla de permiso; no hay acceso a otras |

Sin una credencial válida el servidor responde 401 con `WWW-Authenticate: Bearer` y los metadatos que un cliente necesita para descubrir OAuth.

## Conexión rápida

Con OAuth basta la URL. El cliente se registra solo, abre `dash.openwaf.dev` y te pide elegir organización, rol y caducidad.

| Cliente | Cómo |
|---|---|
| Claude Code | `claude mcp add --transport http openwaf https://mcp.openwaf.dev/mcp` y después `/mcp` → `openwaf` → *Authenticate* |
| Claude Desktop y claude.ai | Ajustes → Conectores → *Añadir conector personalizado* → `https://mcp.openwaf.dev/mcp` → *Conectar* |
| Cursor | `"url": "https://mcp.openwaf.dev/mcp"` en `~/.cursor/mcp.json` |
| Codex y otros clientes | Cualquier cliente con transporte Streamable HTTP; con un token de API en la cabecera `Authorization` si no hace OAuth |

[Conectar un cliente](https://developers.openwaf.dev/es/mcp/connect/) recoge cada configuración, también la variante con token de API.

## Qué puede hacer el asistente

- **Leer:** zonas, registros DNS, reglas de borde, certificados, versiones y diferencias, propagación a los nodos del borde, registros de correo, uso, Core Web Vitals, agentes de IA, la auditoría, TLS hacia el origen y el egress de IA.
- **Escribir** (rol `tech` o superior): zonas, registros DNS, ajustes de borde, reglas, reversiones, purgas de caché y certificados de origen; agentes y destinos de egress con rol `admin`.

Cada resultado trae un resumen corto en texto y los datos completos como JSON, con la misma forma que la respuesta REST. La [página de herramientas](https://developers.openwaf.dev/es/mcp/tools/) las recoge todas.

## Seguro por diseño

- **Simular y luego confirmar.** Cada escritura de configuración se simula primero y devuelve un diff; solo se aplica en una segunda llamada con `confirm=true` y la versión que viste. Mira [hacer cambios](https://developers.openwaf.dev/es/mcp/making-changes/).
- **Nunca por encima de tu rol.** Una credencial `readonly` ni siquiera ve las herramientas de escritura en `tools/list`, y un token limitado a un cliente o a una zona no ve nada más.
- **Auditado.** Cada cambio guarda su motivo, su versión y `"channel": "mcp"` en la auditoría.
- **Datos, no instrucciones.** Los contenidos de los registros, los nombres, los motivos y las respuestas del DNS los escriben personas o vienen de fuera. Los resúmenes los citan entre comillas y el servidor avisa al asistente de que nunca siga instrucciones que aparezcan ahí.

> **Nota: Detrás de MCP Shield**
>
> `mcp.openwaf.dev` se publica a su vez detrás del borde de OpenWAF, con [MCP Shield](https://developers.openwaf.dev/es/mcp-shield/) en modo registro y un límite por token.


## Siguientes pasos

- [Conectar un cliente](https://developers.openwaf.dev/es/mcp/connect/): Claude Code, Claude Desktop, claude.ai, Cursor y otros, con OAuth o con un token de API.
- [Herramientas](https://developers.openwaf.dev/es/mcp/tools/): qué hace cada una de las 44 herramientas, qué rol necesita y qué ruta REST llama.
- [Hacer cambios](https://developers.openwaf.dev/es/mcp/making-changes/): simular, confirmar con la versión que viste, conflictos y auditoría.
- [OAuth y tokens](https://developers.openwaf.dev/es/mcp/oauth-and-tokens/): la pantalla de permiso, cómo quitar el acceso, ámbitos de los tokens y el perfil ligero.


Los nombres y logos de productos son marcas de sus respectivos dueños. Claude es una marca de Anthropic, Codex de OpenAI y Cursor de Anysphere Inc.; solo se muestran para decir qué clientes funcionan con el servidor MCP de OpenWAF.
