# Activar MCP Shield

> Protege un endpoint MCP en modo registro desde el panel, la CLI, la API o tu asistente de IA, mira lo que bloquearía y pasa después a aplicar.

Esta página pone un endpoint MCP detrás de MCP Shield en modo registro, enseña dónde leer lo que anota y repasa qué comprobar antes de pasar a aplicar.

## Antes de empezar

- El dominio está activo en OpenWAF y el nombre que sirve tu servidor MCP (por ejemplo `mcp.example.com`) pasa por el proxy.
- Tu servidor MCP habla Streamable HTTP: JSON-RPC por `POST` y, si acaso, `GET` para el flujo SSE del servidor y `DELETE` para cerrar la sesión.
- Tienes un token o una cuenta del panel con rol `tech` o superior.
- Bots y agentes de IA está activado en el dominio o en el nombre. Empieza en modo registro, que es lo que quieres de momento.

Un endpoint MCP solo necesita dos valores: el **prefijo de ruta** de tu servidor (por ejemplo `/mcp`) y el tipo `mcp`. El resto toma un valor por defecto: los doce métodos MCP estándar permitidos, todas las herramientas permitidas, un tope de 256 KiB por petición, la revisión de peticiones y de respuestas en `log` y sin límite por token. La [página de ajustes](https://developers.openwaf.dev/es/mcp-shield/settings/) los recoge uno a uno.

## Añadir el endpoint

**Panel**

1. Abre el dominio y ve a **Control de rastreadores IA → MCP Shield**.
2. Elige el ámbito: **Todo el dominio** o el nombre que sirve tu servidor MCP.
3. Añade un endpoint MCP: su prefijo de ruta, los métodos HTTP (`POST`, `GET`, `DELETE`) y, si quieres cambiarlos, los métodos JSON-RPC permitidos, las herramientas permitidas y denegadas, el tamaño de la petición, la revisión de peticiones y de respuestas (`off`, `log` o `block`) y las peticiones por minuto por token.
4. Guarda con un motivo. El cambio es una versión nueva del dominio, como cualquier otro ajuste.


La misma pantalla enseña los contadores por endpoint y por herramienta, los tipos de evento, las detecciones principales, los eventos MCP recientes y los eventos de seguridad **MCP Shield** en directo.
**CLI**

```sh
openwaf-cloud ctl zones set example.com --host mcp.example.com \
  ai_agents.enabled=true --reason "Bots y agentes de IA en registro"
openwaf-cloud ctl zones set example.com --host mcp.example.com \
  ai_agents.endpoints:='[{"kind":"mcp","path_prefix":"/mcp"}]' --reason "MCP Shield en registro"
```

`ai_agents.endpoints` es una lista y se sustituye entera: incluye los endpoints de IA que ya tenga el nombre, o se borran. Sin `--host`, el endpoint vale para todo el dominio.
**API**

El mismo cambio es un JSON merge patch de los ajustes de borde del dominio, con su motivo:

```sh
curl -X PATCH "https://dash.openwaf.dev/v1/orgs/$ORG/zones/$ZONE/edge" \
  -H "Authorization: Bearer $OPENWAF_TOKEN" -H "X-Change-Reason: MCP Shield en registro" \
  -H "Content-Type: application/json" \
  -d '{"ai_agents": {"enabled": true, "endpoints": [{"kind": "mcp", "path_prefix": "/mcp"}]}}'
```

Unos ajustes no válidos se rechazan con un error `400` y no cambia nada.
**MCP**

Con el [servidor MCP de OpenWAF](https://developers.openwaf.dev/es/mcp/connect/) conectado, pide a tu asistente que proteja el endpoint MCP. Usa la herramienta `ai_agents_settings` con un parche como el de la API: primero una simulación con la diferencia y después el cambio, cuando lo apruebas.


## Míralo en modo registro

Pasa tráfico real por el endpoint (`initialize`, `tools/list`, las herramientas que usan tus clientes) durante unos días y lee el informe:

```sh
openwaf-cloud ctl ai mcp example.com --range 7d
openwaf-cloud ctl ai report example.com --view events --kind mcp_blocked_tool,mcp_injection_response,mcp_dlp
```

El informe da, por endpoint, las peticiones, los mensajes JSON-RPC, cuántos se habrían bloqueado, cuántos tuvieron alguna detección y cuántas respuestas pasaron sin revisar; por herramienta, sus llamadas, bloqueos y detecciones; y las detecciones por id. Desde tu asistente, la herramienta `ai_agents_report` tiene la misma vista `mcp`. Cada evento lleva el método, la herramienta, los ids de los detectores y una huella del token, nunca el token.

## Pasa a aplicar

1. **Ajusta la política al uso real.** Quita de los métodos permitidos lo que tu servidor no implementa, deniega las herramientas que ese endpoint no debe ofrecer (o enumera las únicas que sí) y pon un límite por token por encima de tu pico legítimo.
2. **Revisa la política de Bots y agentes de IA.** En modo aplicar se aplica a las peticiones del endpoint MCP antes que MCP Shield. Los clientes MCP hechos con los SDK de Node.js o Python suelen contar como `unverified_automation`, y las plantillas **Solo verificados** y **Bloquear todo lo automatizado no verificado** les pondrían el reto o los bloquearían.
3. **Cambia el modo a aplicar.** La política de métodos, herramientas, tamaño y ritmo se aplica desde ese momento. La revisión en `log` sigue solo anotando.
4. **Pon la revisión en `block` solo después de revisar sus eventos.** Un resultado de herramienta que cita con razón un texto de ataque, como un registro de seguridad o una documentación, se sustituiría por un error. Dejar la revisión de respuestas en `log` y tratar sus eventos como alertas es una opción válida.
