Stunt Double

Las personas de usuario de IA prueban tu producto, prototipos y vistas previas en un navegador real y devuelven evidencia en capturas de pantalla.

Servidor MCP alojado

npx add-mcp 'https://app.stuntdouble.io/api/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

Servidor MCP de Stunt Double

Implementa personajes de usuario de IA para validar recorridos de usuario a escala. Encuentra fricciones de UX antes que los usuarios reales.

Stunt Double implementa agentes de IA con personajes de usuario realistas para validar recorridos de usuario a escala. Crea actores, ejecuta flujos de trabajo automatizados y listas de verificación contra cualquier aplicación web, y detecta puntos de fricción antes de que los usuarios reales los encuentren. Se integra con Claude, Linear, GitHub y Slack.

Este repositorio

Este repositorio contiene configuración de plugin y MCP (.claude-plugin/plugin.json y .mcp.json para Claude, .cursor-plugin/plugin.json y mcp.json raíz para Cursor, server.json para el registro MCP), además de habilidades, agentes y reglas de Cursor. No hay package.json ni servidor ejecutable aquí: el endpoint MCP está alojado en https://app.stuntdouble.io/api/mcp desde el código principal de Stunt Double. Consulta CONTRIBUTING.md para saber cómo validar ediciones y evitar confundir esta carpeta con un paquete de Node.

Inicio rápido

Claude Code

claude mcp add --transport http stuntdouble https://app.stuntdouble.io/api/mcp

Plugin de Claude Code

El repositorio también es un plugin de Claude: agrupa el servidor MCP alojado (.mcp.json) con las habilidades en skills/ y los agentes en agents/.

claude plugin marketplace add stunt-double/stuntdouble-mcp
claude plugin install stuntdouble@stuntdouble

Habilidades (cualquier agente)

Las habilidades en skills/ se instalan en Claude Code, Cursor, Codex, OpenCode y otros agentes que leen archivos SKILL.md, usando la CLI de habilidades. Estas impulsan el servidor MCP anterior, así que conéctalo también.

npx skills add stunt-double/stuntdouble-mcp                          # pick from the list
npx skills add stunt-double/stuntdouble-mcp --skill verify-change     # just one
HabilidadQué hace
check-agent-readinessComprueba qué tan bien los agentes de IA (ChatGPT, Claude, Gemini, Perplexity y otros) pueden encontrar, entender y actuar en un sitio web usando el Índice de Stunt Double, explica la puntuación de sesiones reales de agentes, compara con pares y vuelve a puntuar después de correcciones
check-brandAudita un producto o sitio contra pautas de marca y tono de voz
check-complianceVerifica un producto contra requisitos legales y de cumplimiento en Stunt Double (consentimiento de cookies, acceso a privacidad y términos, divulgaciones requeridas, respaldo de afirmaciones, flujos de cancelación de suscripción) y recopila evidencia para que el consejo legal la revise
check-continuityVerifica la continuidad entre superficies en Stunt Double
check-design-systemAudita un producto en vivo contra su sistema de diseño en Stunt Double
create-actor-panelCrea y configura un actor de Stunt Double (personaje de IA) con entradas de conocimiento para simulación realista de usuarios
design-reviewEjecuta una sesión de revisión de diseño recopilando comentarios de múltiples actores de Stunt Double sobre un diseño o flujo propuesto
maintain-automationsCambia una automatización o lista de verificación existente de Stunt Double sin perder el historial de ejecuciones: reprograma disparadores, edita y reconecta pasos del flujo de trabajo, crea ramas condicionales, actualiza verificaciones en su lugar y pausa o retira lo que ya no se necesita
run-qa-suiteEjecuta la suite completa de control de calidad de Stunt Double
run-user-interviewPlanifica, configura y lanza una entrevista de usuario estructurada con participantes de IA en Stunt Double, y luego lee el informe sintetizado
run-ux-validationValida un recorrido de usuario ejecutando flujos de trabajo o listas de verificación de Stunt Double e informando los resultados
setup-guardrailsEstablece salvaguardas continuas en Stunt Double
triage-feedbackRevisa, categoriza y gestiona envíos de comentarios de Stunt Double entre proyectos
verify-changeVerifica un cambio de código publicado o en vista previa ejecutando un actor de Stunt Double a través de los flujos de usuario afectados y, opcionalmente, informa los resultados en la solicitud de extracción

Claude (web, Desktop, móvil)

Ve a Configuración → Conectores → Agregar conector personalizado y pega:

https://app.stuntdouble.io/api/mcp

Cursor / Windsurf

Agrega el bloque mcpServers a continuación a un archivo de configuración MCP:

  • Local al proyecto (recomendado para este clon del repositorio): .cursor/mcp.json en la raíz de tu proyecto.
  • Global (todos los proyectos): ~/.cursor/mcp.json en macOS/Linux (consulta documentación de MCP de Cursor para tu sistema operativo).
{
  "mcpServers": {
    "stuntdouble": {
      "url": "https://app.stuntdouble.io/api/mcp"
    }
  }
}

Usa solo url para servidores remotos (HTTP Streamable se negocia automáticamente). Claves adicionales como "type": "streamable-http" no forman parte de la forma documentada de mcp.json de Cursor y pueden romper la validación del plugin.

Mercado de Cursor (instalación en un clic) espera un diseño de plugin: .cursor-plugin/plugin.json más mcp.json raíz. Esos archivos están en este repositorio. La ruta logo del plugin es assets/logo.png (incluida en este repositorio). El archivo server.json es el manifiesto separado del registro MCP para mcp-publisher y listados de directorios; el instalador de Cursor no lo usa.

Autenticación

La autenticación se maneja automáticamente mediante OAuth 2.1 con PKCE. La primera vez que tu cliente de IA se conecta, se abrirá una ventana del navegador para que inicies sesión y autorices el acceso a tu cuenta de Stunt Double. No se requieren claves API ni tokens.

Para Cursor, el URI de redirección de OAuth está fijado a cursor://anysphere.cursor-mcp/oauth/callback (documentación).

Lo que una conexión puede alcanzar

El servidor actúa como tú, nunca más. Cada herramienta resuelve el espacio de trabajo sobre el que se le pregunta y verifica tu membresía en él antes de hacer cualquier cosa, por lo que una conexión alcanza exactamente los espacios de trabajo que list_workspaces devuelve para ti, y un espacio de trabajo archivado no alcanza nada. Un espacio de trabajo del que no eres miembro responde igual que uno que no existe: "no encontrado".

Eso también aplica a los IDs, no solo al workspace_id que pasas. Una herramienta que toma el ID de otro objeto (una lista de verificación para un paso de automatización, un actor para un participante de entrevista) verifica que ese objeto pertenezca al mismo espacio de trabajo antes de almacenarlo o ejecutarlo, y se niega con "no encontrado en este espacio de trabajo" en caso contrario. Las negativas nunca dicen a qué espacio de trabajo pertenece un ID.

Los alcances reducen esto aún más, nunca lo amplían. La pantalla de consentimiento nombra lo que la conexión solicitó, y un token otorgado con mcp:read no muestra las herramientas de escritura o ejecución en absoluto: están ausentes de tools/list en lugar de presentes y fallando.

AlcanceQué permite
mcp:readLeer tus espacios de trabajo y su contenido
mcp:writeCrear y editar contenido en tus espacios de trabajo
mcp:runIniciar ejecuciones de listas de verificación, ejecuciones de automatización y entrevistas, que consumen la asignación de ejecuciones del espacio de trabajo, y volver a ejecutar puntuaciones del Índice de Stunt Double para dominios que posees

Herramientas disponibles

Cuenta

HerramientaDescripción
get_meLa cuenta bajo la que actúa esta conexión: ID, correo electrónico, nombre, zona horaria, canal de notificación

El canal de notificación y la zona horaria son configuraciones de cuenta más que de espacio de trabajo, por lo que son la misma respuesta en todos los espacios de trabajo. Pasa el timezone al crear un flujo de trabajo programado, o "todos los días hábiles a las 9" se convierte en las nueve en UTC.

Espacios de trabajo

HerramientaDescripción
list_workspacesLista tus espacios de trabajo
get_workspaceObtén detalles del espacio de trabajo por ID o slug, incluidos sus controles establecidos por el administrador (settings)
list_workspace_membersLista los miembros de un espacio de trabajo

get_workspace informa los controles de seguridad del espacio de trabajo bajo settings: uso compartido público, el widget de comentarios, trabajadores autoalojados y la política de red. Son límites establecidos por un administrador, por lo que una función desactivada allí no puede reactivarse para un solo proyecto.

Búsqueda

HerramientaDescripción
searchBusca en un espacio de trabajo entre proyectos, actores, listas de verificación, entrevistas, automatizaciones, problemas, objetivos, comentarios, conocimiento de actores, información, revisiones de diseño, recursos de proyecto y conversaciones. Clasificada, con filtros opcionales

search toma un workspace_id más un query opcional, filtro de types, filtro de project_id y limit (máximo 50). Los términos se comparan como prefijos, por lo que una palabra parcial es suficiente. Omite query para explorar los elementos actualizados más recientemente. Los resultados incluyen el id que necesitas para el getter correspondiente, por lo que generalmente es más económico que listar un tipo de entidad y filtrar la lista tú mismo. Úsala antes de crear cualquier cosa, para encontrar el actor o la lista de verificación que ya cubre el trabajo.

Proyectos

HerramientaDescripción
list_projectsListar proyectos en un espacio de trabajo
get_projectObtener un proyecto (el producto rastreado por listas de verificación, flujos de trabajo, comentarios)
create_projectCrear un proyecto (un producto para rastrear con listas de verificación, flujos de trabajo, comentarios)
list_project_mcp_serversLos servidores MCP a los que pueden acceder las ejecuciones de este proyecto

Un proyecto se archiva, nunca se elimina, y un proyecto archivado se lee como ausente en cada herramienta aquí. Registrar un servidor MCP y adjuntarlo a un proyecto son acciones de administrador del espacio de trabajo en el panel; list_project_mcp_servers es cómo verificas qué herramientas tendrá realmente una ejecución antes de escribir una lista de verificación que dependa de una.

Pautas

Reglas permanentes a las que el equipo somete el producto: sistema de diseño, tono de voz, marca, contenido, accesibilidad, cumplimiento, seguridad, rendimiento o conocimiento compartido. Una pauta es propiedad del espacio de trabajo y se adjunta a los proyectos a los que aplica, por lo que una regla puede aplicarse a cada proyecto sin ser reescrita. Lo que esté en vigor se renderiza en cada ejecución de lista de verificación, revisión de diseño, entrevista y triaje para ese proyecto.

HerramientaDescripción
list_workspace_guidelinesLa biblioteca del espacio de trabajo, con cuántos proyectos mantienen cada regla
add_workspace_guidelineAgregar una regla a la biblioteca, opcionalmente adjuntándola a proyectos
update_workspace_guidelineEditar una regla, desactivarla o aplicarla a cada revisión de diseño en el espacio de trabajo
remove_workspace_guidelineEliminar una regla de la biblioteca, desadjuntándola de cada proyecto
list_project_guidelinesLas reglas a las que este proyecto está sujeto
add_project_guidelineRegistrar una regla y someter este proyecto a ella
set_project_guidelineAdjuntar una regla de la biblioteca a un proyecto, desadjuntarla o desactivarla allí

Dos interruptores deciden si una regla está en vigor para un proyecto: el enabled de la biblioteca y el del adjunto. list_project_guidelines los combina en un solo enabled para que nunca tengas que razonar sobre ambos. Una regla con apply_to_design_reviews configurado también aplica a revisiones de diseño planteadas desde Slack o Linear, que no llevan un proyecto al que adjuntarla.

Codifica un estándar como pauta en lugar de repetirlo en cada lista de verificación, y busca en la biblioteca antes de escribir una nueva regla: adjuntar la que ya existe mantiene el estándar del equipo en un solo lugar para editar.

Actores

HerramientaDescripción
list_actorsListar actores activos en un espacio de trabajo
get_actorObtener detalles del actor, incluido el mensaje del sistema y las capacidades
create_actorCrear un nuevo actor en un espacio de trabajo
update_actorActualizar nombre, descripción, mensaje del sistema, capacidades o estado del actor. Establecer estado en "archivado" para eliminación suave

Conocimiento

HerramientaDescripción
list_actor_knowledgeListar entradas de conocimiento para un actor
add_actor_knowledgeAgregar una entrada de conocimiento a un actor
remove_actor_knowledgeEliminar una entrada de conocimiento

Conversaciones

HerramientaDescripción
list_conversationsListar conversaciones, opcionalmente filtradas por actor
get_conversationObtener una conversación con sus mensajes

Listas de verificación

HerramientaDescripción
list_checklistsListar listas de verificación en un espacio de trabajo
get_checklistObtener detalles de la lista de verificación, verificaciones y ejecuciones recientes
get_checklist_runObtener una ejecución de lista de verificación con resultados por verificación
run_checklistActivar una ejecución de lista de verificación (asíncrono). Devuelve el ID de ejecución
create_checklistCrear una lista de verificación de QA basada en navegador (alojar vía proyecto o URL, actor, instrucciones, verificaciones)
update_checklistActualizar una lista de verificación (pasa checks para reemplazar el conjunto completo)
delete_checklistEliminar una lista de verificación y sus verificaciones y ejecuciones

Flujos de trabajo

Un flujo de trabajo es un grafo, no una lista: sus pasos se ejecutan siguiendo las conexiones entre ellos. Las herramientas de pasos mantienen esas conexiones, por lo que agregar, eliminar y reordenar pasos es suficiente para construir uno. connect_workflow_steps solo se necesita para ramificar.

HerramientaDescripción
list_workflowsListar flujos de trabajo en un espacio de trabajo
get_workflowObtener un flujo de trabajo con sus pasos, bordes, el orden que toma una ejecución y ejecuciones recientes
run_workflowActivar una ejecución de flujo de trabajo (asíncrono). Devuelve el ID de ejecución
get_workflow_runObtener una ejecución de flujo de trabajo con detalles a nivel de paso
create_workflowCrear un flujo de trabajo (automatización de múltiples pasos)
update_workflowActualizar el nombre, descripción o activador de un flujo de trabajo
toggle_workflowActivar o pausar un flujo de trabajo
delete_workflowEliminar un flujo de trabajo y sus pasos y ejecuciones
add_workflow_stepAgregar un paso y conectarlo en la ejecución
update_workflow_stepCambiar el tipo o configuración de un paso en su lugar
remove_workflow_stepEliminar un paso y cerrar el hueco que deja
reorder_workflow_stepsEstablecer el orden en que se ejecutan los pasos
connect_workflow_stepsConectar un paso a otro, para las rutas Verdadero y Falso de una condición

Comentarios

HerramientaDescripción
list_feedbackListar comentarios para un proyecto, más recientes primero
get_feedbackObtener un envío de comentarios con sus respuestas
update_feedback_statusActualizar el estado de los comentarios

GitHub

HerramientaDescripción
list_pull_requestsListar solicitudes de extracción para un repositorio de GitHub
get_pull_requestObtener detalles de una solicitud de extracción de GitHub (título, autor, ramas, estadísticas)
comment_on_prPublicar un comentario en una solicitud de extracción de GitHub

Entrevistas

Entrevistas de usuario estructuradas: actores o personas generadas pasan por una guía de discusión (secciones + preguntas/tareas) contra una URL objetivo, luego Stunt Double sintetiza temas y recomendaciones.

HerramientaDescripción
list_interviewsListar entrevistas en un espacio de trabajo, opcionalmente filtradas por proyecto
get_interviewObtener una entrevista con su guía de discusión (secciones + elementos) y participantes
create_interviewCrear una nueva entrevista en un proyecto (nombre, URL objetivo, breve de investigación)
update_interviewActualizar el nombre, URL objetivo, breve de investigación o estado de una entrevista
add_interview_sectionAgregar una sección a la guía de discusión
add_interview_itemAgregar una pregunta o tarea a una sección
add_interview_participantAdjuntar un participante, ya sea un actor existente o un persona_spec ad hoc
get_interview_participantObtener un participante, incluida su transcripción completa de la ejecución
get_interview_reportObtener el informe sintetizado actual (resumen, temas, recomendaciones, resumen por pregunta)
launch_interviewLanzar la ronda de entrevistas (asíncrono). Devuelve el ID de ejecución de activación
regenerate_interview_reportRe-ejecutar la síntesis en transcripciones existentes (asíncrono). Devuelve el ID de ejecución de activación

Prompts

La mayoría de los clientes MCP (Claude, Claude Code, Cursor) muestran estos como comandos de barra. Cada uno es una receta autocontenida: qué herramientas llamar, en qué orden y cómo informar.

PromptDescripción
validate_designValidar un diseño en vivo, prototipo o URL de vista previa (Figma Make, artefacto de Claude, v0, staging) con personas de IA
verify_changeVerificar un cambio de código publicado o en vista previa ejecutando un actor a través de los flujos afectados, comentando opcionalmente en el PR
run_user_researchEjecutar un estudio de entrevistas estructurado con múltiples personas y sintetizar temas y recomendaciones
triage_feedbackTriar comentarios de usuarios sobre un proyecto: agruparlos, reproducir problemas con un actor y actualizar estados
setup_guardrailsCrear listas de verificación para flujos críticos más un flujo de trabajo que las re-ejecuta en un horario o en eventos de despliegue/PR
check_brandAuditar un producto contra pautas de marca y tono de voz, señalando desviaciones con evidencia
check_design_systemAuditar un producto en vivo contra su sistema de diseño (tipografía, color, espaciado, componentes) en páginas renderizadas
check_complianceVerificar un producto contra requisitos legales y de cumplimiento y recopilar evidencia para que el consejo la revise
check_continuityVerificar la continuidad entre superficies (precios, terminología, promesas) entre marketing, producto, documentación y correos electrónicos
stuntdouble_guideOrientación para Stunt Double: qué hace, cuándo usarlo y el catálogo completo de herramientas

Recursos

Contexto de solo lectura que un cliente puede adjuntar sin llamar a una herramienta. La guía y la conexión siempre están listadas; los recursos del espacio de trabajo necesitan mcp:read, igual que las herramientas que devuelven esos datos.

URITipo MIMEDescripción
stuntdouble://guidetext/markdownQué hace Stunt Double, cuándo usarlo, el catálogo completo de herramientas y cómo consultar una ejecución
stuntdouble://connectionapplication/jsonQuién actúa como la conexión, los alcances que tiene, las herramientas que desbloquea y las que le faltan
stuntdouble://workspacesapplication/jsonLos espacios de trabajo a los que la conexión puede acceder, con tu rol (mismos datos que list_workspaces)
stuntdouble://workspaces/{workspace_id}/projectsapplication/jsonLos proyectos en vivo en un espacio de trabajo, los más recientemente abiertos primero (mismos datos que list_projects)

resources/list incluye una entrada de proyectos por espacio de trabajo, para que un cliente pueda navegarlos sin expandir la plantilla.

Índice de Stunt Double

El Índice de Stunt Double es un ranking público de cómo los agentes de IA experimentan los sitios web: cada dominio rastreado recibe una puntuación sobre 100 a partir de sondeos HTTP más sesiones de agentes en vivo, una por proveedor de IA y tarea de referencia. Los datos del índice son públicos, no datos del espacio de trabajo, por lo que las herramientas de lectura alcanzan cualquier sitio rastreado.

HerramientaDescripción
get_index_reportLa puntuación de un sitio, banda, rango, categoría y puntuaciones por proveedor, fricciones, comprobaciones de sondeo fallidas y cuándo se puntuó por última vez
list_index_sessionsLas sesiones de agente detrás de una puntuación (ejecución más reciente por defecto), con estado, puntuación, evidencia, un resumen y fricciones. Filtrar por proveedor o categoría
search_index_domainsEncontrar un sitio por dominio o nombre, o navegar el ranking, opcionalmente por sector
request_index_rerunRe-puntuar un dominio que posees (mcp:run). Sondeos frescos ahora, unas 24 sesiones de agente en unos minutos. Una vez cada 10 minutos

get_index_report, list_index_sessions y request_index_rerun toman un domain, o un project_id para usar el dominio del Índice vinculado a ese proyecto (que verifica tu membresía como cualquier lectura de proyecto). Solo el propietario del dominio puede re-ejecutarlo: un administrador de la plataforma, la persona que lo reclamó o, mientras no esté reclamado, alguien que haya iniciado sesión con un correo de trabajo en ese dominio exacto. Después de una re-ejecución, consulta list_index_sessions con el run_id devuelto hasta que las sesiones terminen, luego lee get_index_report. (invitar/eliminar miembros) está disponible en el panel web.

Ejemplos de prompts

Cuatro prompts que ejercitan el núcleo del servidor una vez conectado:

  1. Verificar un flujo: "Crea una lista de verificación que se registre para una nueva cuenta en https://demo-checkout-stunt-double.vercel.app,, añada un artículo al carrito y llegue al pago, luego ejecútala y dime qué comprobaciones fallaron."
  2. Ejecutar una entrevista de usuario: "Configura una entrevista con tres personas (un comprador primerizo, un cliente recurrente y un usuario de lector de pantalla) sobre nuestra página de precios, lánzala y resume el informe."
  3. Verificar la preparación del agente: "¿Qué tan bien pueden usar los agentes de IA stripe.com según el Índice de Stunt Double, y qué categorías están arrastrando su puntuación?"
  4. Triar comentarios: "Resume los comentarios abiertos en mi proyecto principal, agrupa en temas y marca cualquier cosa ya corregida como resuelta."

Política de privacidad

El servidor está alojado por Stunt Double y actúa como el usuario que ha iniciado sesión. Lee y escribe solo en los espacios de trabajo a los que ese usuario pertenece, dentro de los alcances OAuth que otorga (mcp:read, mcp:write, mcp:run). No lee tu conversación con el cliente de IA más allá de los argumentos pasados a cada llamada de herramienta, y no accede a la memoria, historial de chat o archivos del cliente.

Los datos creados a través del servidor (proyectos, actores, listas de verificación, ejecuciones, entrevistas, comentarios) se almacenan en tu espacio de trabajo de Stunt Double y se manejan bajo la Política de privacidad de Stunt Double, que cubre recopilación, uso, almacenamiento, subprocesadores, retención y tus derechos. Revoca una conexión en cualquier momento desconectándola en tu cliente de IA.

Soporte

Transporte

Este servidor usa transporte Streamable HTTP. El endpoint es:

https://app.stuntdouble.io/api/mcp

Registro MCP

El servidor está listado en el Registro MCP oficial como io.stuntdouble/mcp-server, por lo que los clientes y directorios respaldados por el registro pueden encontrarlo por nombre:

curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.stuntdouble/mcp-server"

Cada versión fusionada a main se publica allí automáticamente (ver CONTRIBUTING.md).

Enlaces

Verificación de cambios

Desde la raíz del repositorio:

node scripts/validate-json.mjs
npx --yes prettier@3.4.2 --check README.md CONTRIBUTING.md SECURITY.md CHANGELOG.md mcp.json .mcp.json server.json .cursor-plugin/plugin.json .claude-plugin/plugin.json .claude-plugin/marketplace.json

Más contexto en CONTRIBUTING.md. GitHub Actions ejecuta las mismas comprobaciones en push y pull requests.

Licencia

MIT