Arcjet

Arcjet es la plataforma de seguridad en tiempo de ejecución que se integra con tu código de IA.

Documentación

Arcjet es la plataforma de seguridad en tiempo de ejecución para agentes de IA. Descubre los agentes que se ejecutan en tu organización, aplica políticas en cada acción, prompt y llamada a herramientas, y conserva la evidencia para demostrar lo que ocurrió. Detecta inyección de prompts, autoriza llamadas a herramientas de agentes, redacta PII y bloquea bots y abusos.

El servidor MCP de Arcjet es uno de los dos transportes que conectan las habilidades de Arcjet con la API de Arcjet. El otro es la CLI de Arcjet. Usa el servidor MCP con herramientas de codificación de IA que no tienen acceso a shell, como ChatGPT y Claude Desktop. También funciona con editores que tienen soporte MCP integrado, como VS Code Copilot, Windsurf y Cursor. Usa la CLI cuando trabajes en una sesión de terminal.

Ambos transportes exponen el mismo plano de plano de gestión: equipos, sitios, claves, solicitudes, decisiones, análisis de tráfico, detección de anomalías, investigación de IP, informes de seguridad y gestión remota de reglas. Para la referencia completa, consulta Herramientas disponibles.

El servidor MCP está disponible en:

https://api.arcjet.com/mcp

Implementa la revisión del 2025-06-18 de las especificaciones de Autorización MCP y HTTP Streamable, con autenticación basada en OAuth.

Clientes compatibles

Se admite cualquier cliente que admita la especificación MCP del 2025-06-18 con transporte HTTP Streamable y autorización OAuth. Esto incluye:

Configuración

ChatGPT

  1. En ChatGPT, ve a Configuración.
  2. Navega a Conectores y selecciona Agregar conexión.
  3. Ingresa https://api.arcjet.com/mcp como la URL del servidor.
  4. Selecciona OAuth para la autenticación.
  5. Haz clic en Crear.

ChatGPT maneja el flujo de OAuth automáticamente.

Claude Code

claude mcp add arcjet --transport http https://api.arcjet.com/mcp

Claude Code abre un navegador para la autenticación OAuth en la primera conexión. Una vez autenticado, puedes usar el comando /mcp para verificar la conexión.

Codex CLI

codex mcp add arcjet --url https://api.arcjet.com/mcp

Codex te solicita autenticarte con Arcjet cuando se conecta por primera vez al servidor.

Claude Desktop

  1. Abre Configuración en la barra lateral.
  2. Navega a Conectores y selecciona Agregar conector personalizado.
  3. Configura el conector:
    • Nombre: Arcjet
      • URL: https://api.arcjet.com/mcp

Cursor

Agrega a .cursor/mcp.json en tu proyecto:

{
  "mcpServers": {
    "arcjet": {
      "type": "streamable-http",
      "url": "https://api.arcjet.com/mcp"
    }
  }
}

Después de agregar el servidor, Cursor muestra un aviso de Necesita inicio de sesión. Haz clic en él para autorizar a Cursor a acceder a tu cuenta de Arcjet.

VS Code con Copilot

Agrega a tu .vscode/mcp.json en tu proyecto o configuración de usuario:

{
  "servers": {
    "arcjet": {
      "type": "http",
      "url": "https://api.arcjet.com/mcp"
    }
  }
}

O agrégalo desde la paleta de comandos:

  1. Abre la Paleta de comandos (Ctrl + Shift + P en Windows/Linux o Cmd + Shift + P en macOS).
  2. Ejecuta MCP: Agregar servidor.
  3. Selecciona HTTP.
  4. Ingresa la URL: https://api.arcjet.com/mcp
  5. Ingresa el nombre: Arcjet
  6. Selecciona Espacio de trabajo o Usuario según tu preferencia.

VS Code te solicita autenticarte con OAuth en el primer uso.

Windsurf

Agrega a tu archivo mcp_config.json:

{
  "mcpServers": {
    "arcjet": {
      "serverUrl": "https://api.arcjet.com/mcp"
    }
  }
}

Para más detalles, consulta la documentación de MCP de Windsurf.

Herramientas disponibles

Una vez conectado, las siguientes herramientas están disponibles para tu asistente de IA:

  • list-teams – Lista los equipos a los que pertenece el usuario autenticado.
  • list-sites – Lista los sitios dentro de un equipo especificado.
  • create-site – Crea un nuevo sitio dentro de un equipo especificado.
  • get-site-key – Devuelve la clave SDK (ARCJET_KEY) para un sitio específico.
  • list-requests – Lista las solicitudes recientes de un sitio. Admite filtrado por conclusión (ALLOW, DENY, ERROR) y paginación.
  • get-request-details – Devuelve detalles completos de una solicitud específica, incluidos encabezados, reglas ejecutadas e información de decisión.
  • explain-decision – Explica por qué Arcjet permitió o denegó una solicitud específica. Devuelve un resumen en lenguaje natural, desglose por regla y próximos pasos sugeridos.
  • get-site-quota – Devuelve el uso de cuota y los límites de un sitio en la ventana de facturación actual.
  • analyze-traffic – Analiza el tráfico de solicitudes durante un período de tiempo. Devuelve solicitudes totales, denegaciones, tasa de denegación, rutas principales, IP principales, razones principales de denegación y tendencia en comparación con el período anterior.
  • get-anomalies – Detecta patrones de seguridad inusuales al comparar el tráfico actual con el período anterior. Identifica picos de tráfico, cambios geográficos, nuevas actividades de amenazas, nuevas firmas de bots, escalada de riesgo y patrones de IP sospechosos.
  • investigate-ip – Investiga una dirección IP en el contexto de un sitio. Devuelve ubicación geográfica, inteligencia de amenazas (tipo de red, actividades de amenazas, clasificación de entidad, nivel de riesgo) y la actividad de solicitudes reciente de la IP (desglose de conclusiones, razones de denegación, rutas objetivo, línea de tiempo diaria).
  • get-dry-run-impact – Analiza qué sucedería si las reglas de prueba se promovieran a producción. Muestra cuántas solicitudes permitidas habría bloqueado cada tipo de regla, qué IP se verían más afectadas y una estimación de falsos positivos.
  • get-security-briefing – Devuelve un informe de seguridad integral: resumen de reglas activas, análisis de tráfico, inteligencia de amenazas, detección de anomalías, preparación para promoción de pruebas, estado de cuota y recomendaciones accionables priorizadas. Diseñado para consumo diario.
  • list-rules – Lista todas las reglas remotas configuradas para un sitio con su ID, tipo, modo y resumen de configuración.
  • create-rule – Crea una nueva regla remota para un sitio. Admite tipos de regla de límite de tasa, bot, escudo y filtro.
  • update-rule – Reemplaza una configuración de regla remota existente. Todos los campos deben proporcionarse (reemplazo completo).
  • delete-rule – Elimina una regla remota, deteniendo inmediatamente su evaluación.
  • promote-rule – Promueve una regla remota del modo DRY_RUN al modo LIVE después de la verificación.
  • list-guard-policies – Lista las políticas de protección de agentes del sitio con sus etiquetas y contratos declarados.
  • get-guard-policy – Devuelve una política, incluida cada entrada declarada con su tipo y exposición.
  • validate-guard-policy – Compila una política en borrador y ejecuta sus pruebas almacenadas, informando un resultado por prueba.
  • evaluate-guard-policy – Ejecuta una entrada de muestra a través del evaluador oficial de Open Policy Agent.
  • describe-guard-policy – Convierte una descripción en inglés sencillo en una política en borrador.
  • suggest-guard-policies – Propone políticas a partir de las formas de entrada que lleva el tráfico propio del sitio.
  • put-guard-policy – Crea o reemplaza una política.
  • delete-guard-policy – Elimina una política, deteniendo inmediatamente su evaluación.
  • retry-guard-policy – Reintenta una publicación fallida.

Políticas de protección

Las políticas de protección de agentes deciden si una llamada a herramienta u otra acción se ejecuta. Se seleccionan mediante el label en una llamada guard(), por lo que llegan a trabajo que nunca llega por HTTP: un trabajo de cola, un paso de flujo de trabajo, una llamada a herramienta.

Las herramientas respaldan el mismo servicio que usa la Consola de Arcjet, por lo que un agente y la Consola compilan y publican mediante una sola implementación. Un flujo típico:

  1. Llama a get-guard-policy para leer el contrato de la política: su etiqueta y cada entrada con su tipo y exposición. Escribe la llamada guard() a partir de ese contrato, porque una política no hace nada hasta que la aplicación envía valores exactamente bajo los nombres que declara.
  2. Llama a describe-guard-policy con una etiqueta de protección y una descripción de lo que la acción debe rechazar. El modelo emite una especificación estructurada de construcción, nunca código fuente de política, y cada candidato se compila antes de regresar.
  3. Llama a validate-guard-policy para compilar el borrador y ejecutar sus pruebas almacenadas. Informa todos los fallos a la vez.
  4. Llama a put-guard-policy para publicar. Una regla activa no puede publicarse sin al menos una prueba almacenada.

Una política que protege a un agente de codificación declara sobre qué se ejecuta, Llamada a herramienta o Prompt, y el resumen lo informa como executeOn. Sus entradas son el contrato fijo del agente de codificación, así que copia una política inicial de Políticas para agentes de codificación en lugar de declarar entradas manualmente. Publicarla es lo que la activa.

Cuando se rechaza la autoría, la herramienta nombra validate-guard-policy para el detalle en lugar de transmitir el mensaje. Un diagnóstico del compilador cita el código fuente de la política del propio autor, por lo que viaja en un campo etiquetado como no confiable.

Para el contrato de política, el lenguaje y las puertas de publicación, consulta Autorizar y publicar políticas.

Reglas o políticas

Los dos sistemas de configuración remota se separan por qué llamada SDK los evalúa. Una regla remota es a nivel de sitio y se evalúa en cada llamada protect(). Una política se selecciona por etiqueta en una llamada guard(). Ambas se configuran de forma remota y ninguna necesita una implementación, pero una regla remota solo se ejecuta donde la aplicación ya llama a protect().

Equivocarse en esto cuesta una sesión completa: un límite de tasa escrito como política necesita una llamada guard() que la aplicación no hace, y un límite de gasto escrito como regla de filtro no puede ver el monto.

Reglas remotas

Las reglas remotas se gestionan mediante el servidor MCP o el panel de Arcjet: no se necesitan cambios de código ni reimplementación. Se aplican globalmente a todas las solicitudes de un sitio. Solo se admiten los tipos de regla rate_limit, bot, shield y filter como reglas remotas. Las reglas que necesitan contenido del cuerpo de la solicitud analizado (email, sensitive_info, prompt_injection) requieren el SDK.

Consulta la documentación de reglas remotas para la referencia completa, incluido cómo se evalúan las reglas remotas junto con las reglas SDK y cuándo usar cada una.

El caso de uso más común para reglas remotas es responder a un ataque activo. Por ejemplo, si notas tráfico sospechoso de un país, VPN o dirección IP específicos, puedes crear una regla de filtro para bloquearlo de inmediato sin implementar código nuevo:

  1. Usa list-requests para investigar el tráfico sospechoso e identificar patrones (por ejemplo, un país, rango de IP o uso de VPN específicos).
  2. Usa create-rule para agregar una regla de filtro en modo DRY_RUN para verificar que coincida con el tráfico correcto. Por ejemplo, bloquea un país específico: ip.src.country == "XX" (código de país ISO 3166-1 alfa-2, como US, CN o RU), bloquea tráfico VPN: ip.src.vpn, o bloquea un rango de IP: ip.src in { 1.2.3.0/24 }.
  3. Usa list-requests nuevamente para confirmar que la regla coincide con el tráfico esperado sin bloquear a usuarios legítimos.
  4. Usa promote-rule para cambiar la regla de DRY_RUN a LIVE, bloqueando de inmediato el tráfico del ataque.
  5. Una vez que el ataque disminuya, usa delete-rule para eliminar el bloqueo.

Monitoreo de seguridad

Usa las herramientas de análisis para mantener una conciencia de seguridad continua:

  • Informe diario: Llama a get-security-briefing periódicamente para obtener una visión general integral de la postura de seguridad de tu sitio en una sola llamada. Cubre tendencias de tráfico, panorama de amenazas, anomalías, preparación de pruebas, estado de cuota y recomendaciones priorizadas.
  • Análisis de tráfico: Usa analyze-traffic para comprender patrones de solicitudes, tasas de denegación, rutas principales e IP principales. Esto proporciona los mismos datos que los análisis del panel de Arcjet.
  • Detección de anomalías: Usa get-anomalies para detectar patrones inusuales al comparar el tráfico actual con el período anterior: picos de tráfico, cambios geográficos, nuevas actividades de amenazas o comportamiento de IP sospechoso.
  • Investigación de IP: Cuando identifiques una IP sospechosa (de analyze-traffic o list-requests), usa investigate-ip para obtener contexto completo: ubicación geográfica, inteligencia de amenazas y la actividad de solicitudes completa de la IP en tu sitio.
  • Validación de pruebas: Antes de promover una regla de DRY_RUN a LIVE, usa get-dry-run-impact para ver cuántas solicitudes permitidas se bloquearían, qué IP se ven más afectadas y una estimación de riesgo de falsos positivos.

Ejemplos de uso

Investigar y bloquear tráfico sospechoso

“Estoy viendo un aumento en las solicitudes denegadas en mi sitio. ¿Puedes investigar qué está pasando y ayudarme a bloquear la fuente?” El asistente llama a analyze-traffic para identificar el pico, luego list-requests filtrado a DENY para mostrar las principales IP infractoras. Usa investigate-ip para obtener inteligencia de amenazas para cada IP, y luego sugiere una regla de filtro. Usando create-rule, crea la regla en modo DRY_RUN para que puedas verificar la coincidencia antes de llamar a promote-rule para activarla.

Obtener un informe de seguridad diario

"Dame un informe de seguridad para mi sitio de producción."

El asistente llama a list-teams y list-sites para localizar tu sitio de producción, luego llama a get-security-briefing. Devuelve un resumen que cubre reglas activas, tendencias de tráfico comparadas con el período anterior, detección de anomalías, aspectos destacados de inteligencia de amenazas, preparación para promoción en modo de prueba, estado de cuota y recomendaciones priorizadas que puedes aplicar de inmediato.

Configurar protección contra bots sin redesplegar

"Añade protección contra bots a mi sitio de marketing – comienza en modo de prueba para que pueda verificar que no está bloqueando usuarios reales."

El asistente llama a list-teams y list-sites para encontrar el sitio, luego create-rule para añadir una regla bot con mode: DRY_RUN configurado para bloquear tráfico automatizado. Después de que el tráfico fluya, pide al asistente que llame a get-dry-run-impact para ver cuántas solicitudes se habrían bloqueado y estimar el riesgo de falsos positivos. Cuando estés satisfecho, pídele que llame a promote-rule para cambiar la regla a LIVE.

Autenticación

El servidor MCP usa OAuth para la autenticación. Cuando te conectes por primera vez desde cualquier cliente compatible, Arcjet te redirige para iniciar sesión con tu cuenta de Arcjet. Una vez autenticado, tu asistente de IA puede acceder de forma segura a los recursos de tu cuenta.

Seguridad

  • Verifica el endpoint – confirma siempre que te estás conectando a https://api.arcjet.com/mcp.
  • Revisa las llamadas a herramientas – habilita avisos de confirmación en tu cliente de IA para que puedas revisar las acciones antes de que se ejecuten.
  • Solo clientes de confianza – conéctate únicamente desde clientes de IA en los que confíes. Conectarse otorga a la herramienta de IA el mismo acceso que a tu cuenta de Arcjet.