Referencia de Configuración

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

Esta página documenta las variables de entorno que lee el servidor Axe MCP y las instrucciones personalizadas recomendadas para tu agente de IA. Estas se aplican a ambos Docker y npm. Para saber dónde colocar estos valores, consulta tu guía de configuración del cliente.

Opciones de Configuración

El servidor Axe MCP admite varias variables de entorno para la personalización:

Var de entorno Descripción Predeterminado
AXE_API_KEY Clave API para autenticación (ver Clave API). Mutuamente excluyente con AXE_ACCESS_TOKEN.
AXE_ACCESS_TOKEN Token Bearer OAuth 2.0 para autenticación (ver OAuth 2.0). Mutuamente excluyente con AXE_API_KEY.
AXE_SERVER_URL La URL base del Portal de Cuentas Axe de tu organización. Solo es necesario si tu organización no utiliza la instancia SaaS compartida predeterminada de EE. UU. Consulta a continuación para más detalles. "https://axe.deque.com"
AXE_CHROME_PATH Ruta a un binario de Chrome/Chromium para usar en lugar de la instalación administrada por Playwright. Solo distribución npm. Consulta a continuación para conocer los requisitos.
AXE_ADVANCED_RULES Reglas avanzadas preestablecido aplicado a cada escaneo que realiza este servidor. Uno de "precise", "balanced", "thorough", "disabled" o el equivalente en porcentaje. Ver a continuación. Configuración predeterminada de Axe de tu organización
AXE_SCREENSHOT_DIR Directorio en el que la herramienta analyze guarda capturas de pantalla cuando se usa screenshot.save sin un camino explícito saveTo. Ver a continuación. Su directorio temporal del sistema operativo
AXE_TOKEN_REFRESH_PORT Puerto de loopback en el que el servidor escucha para aceptar un token de acceso OAuth renovado, de modo que una sesión larga sobreviva a la expiración del token sin reinicio. Ver Variables de actualización de token.
AXE_TOKEN_REFRESH_SECRET Secreto compartido que autentica un envío de token. Ver Variables de actualización de token.
AXE_TOKEN_REFRESH_HOST Interfaz de red a la que se vincula el escucha de actualización de token. Ver Variables de actualización de token. "127.0.0.1"
BROWSER_TIMEOUT_MS El número de milisegundos que permitiremos que las interacciones del navegador esperen antes de agotarse: navegación, cada paso individual de before acción y el propio escaneo axe. 30000
IGT_TIMEOUT_MS Cuánto tiempo puede durar una ejecución de Prueba Guiada Inteligente antes de que el servidor la abandone. Ver a continuación. 200000
SELECTION_SESSION_TTL_MS Cuánto tiempo espera una ejecución selección por fases pausada para su segunda llamada antes de cerrarse. Consulta Variables de selección por fases. 180000
MAX_SELECTION_SESSIONS Cuántas ejecuciones selección por fases pausadas pueden estar abiertas a la vez. Consulta Variables de selección por fases. 3
REMEDIATE_TIMEOUT_MS Cuánto tiempo puede durar una llamada de remediate antes de que el servidor la abandone, independientemente de cuántos problemas contenga el lote. 60000
AXE_PAGE_LOAD_DELAY_MS Retraso extra después de que la página se carga, antes de que comience el escaneo, para páginas que siguen renderizando después de la carga. Ver a continuación. 0
LOG_LEVEL Sigue el Protocolo Syslog; los valores admitidos son "debug", "info", "warn" y "error" "info"

AXE_SERVER_URL

El valor predeterminado (https://axe.deque.com) es correcto para la mayoría de los usuarios: aquellos en la instancia SaaS compartida de Deque en EE. UU. Si tu organización usa alguno de los siguientes, debes configurar AXE_SERVER_URL a la URL base de tu instancia:

  • Un instancia de SaaS regional (UE, Australia, Fráncfort, etc.)
  • Un cloud privado despliegue
  • Una on-premises instalación

Si no estás seguro de qué instancia utiliza tu organización, verifica la URL que usas para iniciar sesión en el Portal de Cuentas Axe o pregunta a tu administrador.

Configura AXE_SERVER_URL explícitamente en el bloque env de la configuración de tu servidor MCP. Los guías de configuración del cliente incluyen ejemplos que muestran exactamente dónde añadirlo.

AXE_CHROME_PATH

Solo distribución npm. Esto no es compatible con Docker, que siempre usa su navegador integrado — el servidor no se inicia si AXE_CHROME_PATH se configura en la distribución de Docker.

Por defecto, la distribución de npm usa la versión de Chromium que instalas a través de Playwright. Configura AXE_CHROME_PATH con la ruta completa de un binario existente de Chrome/Chromium para usar ese en su lugar y omitir la instalación de Playwright.

  • El valor debe ser un archivo binario ejecutable, no un paquete o directorio .app. En macOS, por ejemplo, apunta al binario dentro del paquete: /Applications/Google Chrome for Testing.app/Contents/MacOS/Google Chrome for Testing.
  • El binario debe iniciarse y responder a --version. El servidor valida esto al iniciar y falla rápidamente con Unable to find specified chrome instance si no puede.
  • Google Chrome de marca estable 137 y posteriores no es compatible. Usa Chrome para pruebas u otro binario compatible con Chromium.

Las herramientas analyze y igt también aceptan un argumento chromePath por llamada, que tiene prioridad sobre AXE_CHROME_PATH para esa llamada.

AXE_ADVANCED_RULES

Establece el preajuste de confianza Reglas avanzadas para cada escaneo que este servidor ejecute, anulando la configuración predeterminada de Axe de tu organización, siempre que tu administrador permita a los usuarios cambiar la configuración.

Los valores aceptados son "precise" (o "90%"), "balanced" (o "70%"), "thorough" (o "50%") y "disabled". Los valores no distinguen entre mayúsculas y minúsculas.

{
  "env": {
    "AXE_ADVANCED_RULES": "thorough"
  }
}
caution

Un valor no reconocido falla en el inicio del servidor en lugar de regresar silenciosamente a un valor predeterminado:

Invalid Advanced Rules value: "high". Expected one of: 'precise' (90%), 'balanced' (70%), 'thorough' (50%), 'disabled'.

La herramienta analyze también acepta un argumento advancedRules por llamada, que tiene prioridad sobre AXE_ADVANCED_RULES para esa llamada. Si su administrador ha bloqueado la configuración, ambos se ignoran en favor del preestablecido de la organización. Ver Reglas avanzadas para conocer las reglas de precedencia completas y el bloque de respuesta advancedRules.

AXE_SCREENSHOT_DIR

Establece el directorio en el que la herramienta analyze guarda capturas de pantalla cuando una llamada pasa screenshot.save sin un camino explícito. No tiene efecto en las llamadas que establecen screenshot.saveTo, que siempre prevalece, ni en las llamadas que no guardan en absoluto.

{
  "env": {
    "AXE_SCREENSHOT_DIR": "/Users/me/axe-screenshots"
  }
}

Las rutas relativas se resuelven en relación con el directorio de trabajo del servidor. El valor predeterminado es el directorio temporal de su sistema operativo.

important

En la distribución Docker, este camino está dentro del contenedor. Monte un volumen sobre él para que los archivos lleguen a su host; el servidor no detecta si existe un montaje, por lo que sin uno, las capturas de pantalla se descartan con el contenedor.

Variables de actualización de token

Esto se aplica solo a OAuth 2.0, y permite que un servidor en ejecución acepte un token de acceso recién renovado para que una sesión que supera su token no necesite reinicio. El escucha está desactivado por defecto y solo comienza cuando se configuran AXE_TOKEN_REFRESH_PORT y AXE_TOKEN_REFRESH_SECRET.

Normalmente no configura estos de manera manual. @deque/axe-auth run supervisa el servidor y los proporciona por usted: usted elige un puerto, y él genera el secreto.

Var de entorno Descripción Predeterminado
AXE_TOKEN_REFRESH_PORT Puerto en el que el escucha de actualización de token acepta envíos. Necesario para habilitar el escucha.
AXE_TOKEN_REFRESH_SECRET Secreto compartido que autentica cada envío. Necesario para habilitar el escucha; axe-auth run genera uno a menos que fije un valor.
AXE_TOKEN_REFRESH_HOST Interfaz a la que se vincula el escucha. Se establece en 0.0.0.0 bajo Docker, donde un puerto publicado se reenvía a la interfaz del contenedor, no a su loopback. "127.0.0.1"

Su token de actualización nunca se envía al servidor; solo los tokens de acceso de corta duración lo hacen, y el secreto compartido es lo que protege el punto final. Ver Mantener viva una sesión larga para configuraciones completas de Docker y npm.

IGT_TIMEOUT_MS

Delimita una ejecución de Prueba Guiada Inteligente, medida desde el momento en que comienza la prueba hasta que se reciben sus resultados. Se aplica tanto a las llamadas de analyze que pasan igtTools como al obsoleto Herramienta igt.

Una prueba está potenciada por IA y trabaja a través de los elementos interactivos de la página uno a la vez, por lo que legítimamente se ejecuta mucho más tiempo que un escaneo. Su valor predeterminado está dimensionado para eso, por lo que es mucho mayor que BROWSER_TIMEOUT_MS. Una ejecución que excede su límite falla con un error que nombra el presupuesto que sobrepasó:

IGT timed out after 200000ms

Aumente IGT_TIMEOUT_MS cuando una página tenga suficientes elementos interactivos para necesitar tiempo extra. Aumentar BROWSER_TIMEOUT_MS no ayudará: cada tiempo de espera en esta página es su propio presupuesto independiente, y el escaneo ya había terminado antes de que comenzara la prueba.

{
  "env": {
    "IGT_TIMEOUT_MS": "400000"
  }
}

Variables de selección por fases

Estas se aplican a selección por fases para el IGT de Elementos Interactivos. La primera llamada pausa la ejecución y mantiene su navegador abierto hasta que tu agente realiza la segunda llamada, de modo que estos limitan cuánto tiempo espera una ejecución pausada y cuántos navegadores pueden mantenerse abiertos a la vez.

Var de entorno Descripción Predeterminado
SELECTION_SESSION_TTL_MS Milisegundos que una ejecución pausada espera por la segunda llamada. Después de esto, la ejecución se cierra y una segunda llamada devuelve status: "session_expired". 180000
MAX_SELECTION_SESSIONS Máximo de ejecuciones pausadas abiertas a la vez. Una primera llamada que exceda el límite devuelve un error pidiéndote continuar o abandonar una ejecución existente. 3

Aumenta SELECTION_SESSION_TTL_MS si habitualmente necesitas más de tres minutos para revisar una larga lista de elementos. Ambos valores deben ser enteros positivos; de lo contrario, el servidor se negará a iniciar.

{
  "env": {
    "SELECTION_SESSION_TTL_MS": "600000"
  }
}

AXE_PAGE_LOAD_DELAY_MS

A diferencia de las variables anteriores, esto no es un tiempo de espera. Es un retraso fijo que el servidor siempre espera después de que la navegación se completa, antes de ejecutar cualquier Acciones before y antes de escanear. Existe para páginas que continúan renderizándose después de la carga sin nada fiable que esperar. Cada escaneo que este servidor realiza paga el retraso en su totalidad, así que mantenlo pequeño.

{
  "env": {
    "AXE_PAGE_LOAD_DELAY_MS": "2000"
  }
}

Prefiera un Paso waitFor en el array de before del herramienta analyze donde pueda nombrar un elemento que solo existe una vez que la página se ha estabilizado. waitFor continúa en el momento en que aparece ese elemento, por lo que es tanto más fiable como generalmente más rápido que un retraso generalizado.

Para asegurarte de que tu agente de codificación de IA utilice correctamente las herramientas del servidor Axe MCP y siga las mejores prácticas de accesibilidad, puedes proporcionarle instrucciones personalizadas. Estas instrucciones ayudan al agente a comprender el flujo de trabajo adecuado para analizar y remediar problemas de accesibilidad.

Dónde agregar las instrucciones

El método varía según el cliente:

  • VS Code con GitHub Copilot - Añadir a .github/copilot-instructions.md en la raíz de tu proyecto
  • Cursor - Añadir a "Reglas de Cursor" en configuración
  • Claude Code - Añadir a un archivo CLAUDE.md en la raíz de tu proyecto
  • Claude Desktop - Añadir a instrucciones personalizadas en configuración
  • Otros clientes MCP - Consulta la documentación de tu cliente para la configuración de instrucciones personalizadas
tip

En Claude Code, el Plugin de accesibilidad Axe puede escribir estos archivos por usted. /axe-accessibility:mcp-generate-instructions genera y fusiona el flujo de trabajo en CLAUDE.md, .github/copilot-instructions.md, reglas de Cursor o AGENTS.md.

Ejemplo de instrucciones de flujo de trabajo

A continuación se presenta una plantilla recomendada que puede adaptar para su agente:

# Accessibility Testing and Remediation Workflow

## MANDATORY WORKFLOW - DO NOT DEVIATE

When working with accessibility issues, you MUST follow this exact workflow:

### 1. Analysis Phase

When asked to analyze pages for accessibility issues, you MUST:

- Use the `analyze` tool to scan the page
- Do NOT manually identify accessibility issues
- Always provide the complete URL being analyzed

### 2. Authentication & Pre-Scan Setup

When the user's request involves credentials, form input, dismissing
overlays, or waiting for content before the scan, you MUST:

- Pass an ordered `before` array to the `analyze` tool using the
  `click`, `fill`, and `waitFor` actions
- Resolve any references to env vars, `.env*` files, or local
  configuration into literal strings BEFORE calling the tool — the
  server treats `value` as a literal and will not expand `${VAR}`,
  `$VAR`, or `{{VAR}}` syntax
- Use `fill` for secret values so the server's redaction protections
  apply; never embed secrets in a `selector`, which appears in logs
  and error messages
- ASK the user when the source of a credential or value is ambiguous;
  do NOT guess or fabricate values
- Use ONLY selectors the user provided; if a step needs a selector
  the user did not name, ASK rather than guess
- Use `waitFor` after any `click`/`fill` that triggers async UI
  (route changes, late-rendered content) to deterministically gate
  the next step or the scan — pick a selector that exists ONLY in
  the post-interaction state (e.g., a logout button or dashboard
  heading), never a generic one like `body` or `#app` that already
  exists beforehand

### 3. Remediation Phase

When asked to remediate or fix accessibility issues, you MUST:

- Collect ALL violations from the analysis and pass them to the
  `remediate` tool in a SINGLE batched call — do NOT call `remediate`
  once per issue
- Give each issue a unique `id` so each result can be correlated
  back to its input
- Provide the exact HTML element, rule ID, and issue description for
  every issue in the batch
- Review the remediation guidance before making any code changes
- Apply fixes based on the remediate tool's recommendations
- Do NOT manually fix accessibility issues without first using the remediate tool

### 4. Verification Phase

After applying fixes, you MUST:

- Re-run `analyze` to verify all issues are resolved
- Confirm zero violations before considering the task complete

## Required Workflow Example:

1. analyze → Find violations
2. remediate → Pass ALL violations in one batched call to get fix guidance
3. Apply recommended fixes to code
4. analyze → Verify fixes

## Enforcement

- NEVER skip the remediate tool when fixing accessibility issues
- ALWAYS use both analyze and remediate tools as specified
- This workflow ensures proper accessibility best practices and compliance

Por qué es importante

Estas instrucciones aseguran que su agente:

  • Usa la experiencia de Deque - Aprovecha modelos de IA entrenados en décadas de datos de evaluación de accesibilidad en lugar de conocimiento general de LLM
  • Sigue las mejores prácticas - Aplica arreglos consistentes, compatibles con WCAG, en lugar de soluciones genéricas
  • Verifica los cambios - Siempre confirma que los arreglos realmente resolvieron los problemas
  • Evita la falsa confianza - No asume que sabe cómo solucionar problemas de accesibilidad sin la orientación de expertos

Aunque es opcional, proporcionar estas instrucciones mejora significativamente la calidad y fiabilidad de las correcciones de accesibilidad en tu código.