ES EN
Avanzado

Conectar a ArtificialQA por MCP

Conecta Claude Desktop, Cursor, Continue, Cline, Windsurf o cualquier otro cliente compatible con MCP a tu workspace de ArtificialQA. Dos caminos: OAuth (recomendado para personas) y API key estática (para automatizaciones provisionadas por un admin).

Esta página es la versión que puedes pasarle a un tester o project admin que tenga que configurar su propio cliente MCP. Para la superficie programática completa mira la Referencia de la API.

¿Qué camino uso?

OAuth (tokens oat_*) API key estática (aqa_*)
Quién lo configura Cualquier usuario autenticado — tú mismo. Un org admin genera la key y te la pasa.
Qué ves Se abre una pestaña del navegador en la primera conexión, haces login, eliges un proyecto y clic en Allow. Listo. Un string tipo aqa_v0C5… que pegas una vez en la config del cliente.
Identidad en el audit log Tu cuenta de usuario. La service key (el admin que la generó también queda registrado).
Modelo de permisos Tu rol en el proyecto, verificado en vivo en cada request. Si pierdes el acceso, la siguiente llamada se rechaza en ~60s. El scope (read / write) queda fijo desde el momento de creación.
Cuándo usar cada uno Vos. Casi siempre — es el default. Pipelines M2M o CI que corren desatendidas para siempre.
Si tu rol es tester, auditor o project admin, no puedes crear keys estáticas — solo los org admins pueden. Usá OAuth.

Setup OAuth (recomendado)

Necesitas tener mcp-remote instalado una vez en tu máquina. Es el proxy chico que hace de puente entre el transporte stdio de tu cliente y el endpoint HTTP de ArtificialQA, y maneja el flujo OAuth del navegador.

npm install -g mcp-remote

Después pega esto en el archivo de configuración de tu cliente:

{
  "mcpServers": {
    "artificialqa": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://app.artificialqa.com/api/v1/mcp"
      ]
    }
  }
}

Dónde vive el archivo de config

ClienteRuta del archivo
Claude Desktop (Windows)%APPDATA%\Claude\claude_desktop_config.json
Claude Desktop (macOS)~/Library/Application Support/Claude/claude_desktop_config.json
Cursor~/.cursor/mcp.json (usá el snippet stdio de arriba — Cursor todavía no maneja OAuth nativo, así que mcp-remote ejecuta el flujo por él)
Continue, Cline, Windsurf, ZedLa UI de MCP settings de cada uno acepta el mismo JSON.

Qué pasa la primera vez que conectas

  1. Abres tu cliente MCP (por ejemplo, cierras y vuelves a abrir Claude Desktop después de editar la config).
  2. mcp-remote descubre el servidor de auth de ArtificialQA.
  3. Tu navegador por defecto se abre en /oauth/authorize.
  4. Si no estás logueado en ArtificialQA en ese navegador, te manda a /login. Inicia sesión (y pasa el 2FA si tu cuenta lo requiere).
  5. Vuelves a la pantalla de consentimiento: eliges el proyecto sobre el que el cliente va a operar, eliges Read only o Read + write (tu rol en el proyecto es el techo), clic en Allow.
  6. El navegador muestra una página con el branding "Authorization successful". Puedes cerrar la pestaña.
  7. Tu cliente MCP ahora marca el servidor como conectado. Prueba list_test_plans o list_test_cases para confirmar.

A partir de ahí, mcp-remote cachea tus tokens en ~/.mcp-auth/ y los rota solo. No vas a volver a ver el navegador por ~30 días, o hasta que revoques la sesión.

Nota Windows

Si npx -y mcp-remote falla con 'C:\Program' is not recognized, es cmd /C trabándose con el espacio en C:\Program Files\nodejs\npx.cmd. Apuntá directamente al shim bajo %APPDATA%\Roaming\npm\:

{
  "mcpServers": {
    "artificialqa": {
      "command": "C:\\Users\\<usuario>\\AppData\\Roaming\\npm\\mcp-remote.cmd",
      "args": ["https://app.artificialqa.com/api/v1/mcp"]
    }
  }
}

"No accessible projects" / "No organizations"

Te topaste con uno de los estados de error de la pantalla de consentimiento. Causas frecuentes:

PantallaQué significaSolución
No organizations Tu cuenta no es miembro de ninguna organización. Común para cuentas de super-admin de plataforma. Usá una cuenta que sí sea miembro en algún lado (tu cuenta regular de equipo).
No accessible projects Estás en una organización pero no tienes fila de ProjectMember en ningún proyecto. Pídele al project admin que te agregue a un proyecto.
MCP is disabled for this organization La organización tiene la feature de MCP apagada. Pídele al org admin que la active desde Org Settings → MCP.

Cierra la pestaña, sal desde el menú desplegable, entra con la cuenta correcta y reinicia tu cliente MCP para volver a disparar el flujo.

Setup con API key estática (provisionada por un admin)

Si tu org admin te dio una key aqa_*, pega esto en su lugar:

{
  "mcpServers": {
    "artificialqa": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://app.artificialqa.com/api/v1/mcp",
        "--header",
        "Authorization: Bearer aqa_v0C5AyynN..."
      ]
    }
  }
}

La única diferencia respecto al snippet de OAuth es el flag --header Authorization: Bearer ... al final. No hay flujo de navegador en la primera conexión — la key te autentica de inmediato. La key está atada a un solo proyecto, así que el cliente solo ve datos dentro de ese proyecto.

Clientes HTTP nativos (Cursor sin stdio)

Cursor y Continue también pueden hablar Streamable HTTP directamente, sin mcp-remote. Misma idea, otra forma de config:

{
  "mcpServers": {
    "artificialqa": {
      "url": "https://app.artificialqa.com/api/v1/mcp",
      "headers": {
        "Authorization": "Bearer aqa_v0C5AyynN..."
      }
    }
  }
}

HTTP nativo solo funciona con keys estáticas — Cursor y Continue no manejan el handshake OAuth por sí mismos. Si quieres OAuth en esos clientes, usá el snippet stdio de arriba y dejá que mcp-remote maneje el flujo.

Verificar la conexión (curl)

No necesitas un cliente para confirmar que el endpoint responde. Con una key estática:

curl https://app.artificialqa.com/api/v1/mcp \
  -X POST \
  -H "Authorization: Bearer aqa_v0C5AyynN..." \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Esperá un array result.tools con cada herramienta a la que tienes acceso. Un 401 con header WWW-Authenticate significa que la key fue rechazada (revisá el valor y que tu org tenga MCP habilitado). Un 403 con mcp_disabled significa que el org admin tiene que activar la feature de MCP.

Los tokens OAuth (oat_*) funcionan igual desde curl, pero tienes que sacar uno del cache que mcp-remote escribe — no hay UI para copiar tu access token, porque justamente el punto es que nunca lo veas.

Problemas frecuentes

"Authorization successful" nunca aparece y el navegador queda colgado en consent. Probablemente el cliente MCP hizo timeout (~60s en el handshake inicial). Cierra y reabre tu cliente MCP para arrancar el flujo con un proceso fresco de mcp-remote. Ten la contraseña y el TOTP a mano para que el flujo termine bien por debajo de los 60s.

La pestaña se abre cada vez que arranco el cliente. mcp-remote no pudo escribir su cache. Verificá que ~/.mcp-auth/ esté escribible por tu usuario. En macOS, a veces el sandbox de Claude Desktop necesita que le vuelvas a dar acceso al home directory.

"redirect_uri not registered for this client". La redirect URI registrada por mcp-remote ya no coincide con el puerto en el que está escuchando (típicamente después de borrar el cache a mano). Limpiá el cache y dejá que se vuelva a registrar:

rm -rf ~/.mcp-auth                                          # macOS / Linux
Remove-Item -Recurse -Force "$env:USERPROFILE\.mcp-auth"   # Windows PowerShell

Después reabre el cliente MCP.

'C:\Program' is not recognized en Windows. Mira la nota Windows en la sección de setup OAuth de arriba — usá la ruta al shim .cmd en lugar de npx.

Referencia

¿Necesitas ayuda? Si te atascas después de probar los pasos de arriba, escríbenos desde artificialqa.com y te ayudamos a conectarte.