Servidor MCP de Squidler
Squidler.io
Los agentes de codificación con IA destacan en la fase de Construcción de una aplicación web, pero tienen dificultades con la fase de Verificación. Squidler está diseñado para validar tu aplicación web como lo haría un humano, basándose en casos de uso en lenguaje natural y sin necesidad de escribir pruebas frágiles que dependan del DOM.
Squidler no es solo una herramienta de pruebas; permite que tu agente de codificación analice su propio trabajo desde la perspectiva del usuario, desacoplado de la implementación. Squidler cierra el ciclo autónomo de Construir → Verificar → Corregir y te permite actuar como el verdadero humano en el bucle que gestiona el resultado, no la salida.
Servidor MCP de Squidler
Con el servidor MCP de Squidler, habilitas a tus agentes de codificación con IA, como Cursor, Claude Code, Replit, Lovable, etc., para que trabajen con Squidler. Esto significa que puedes hacer que tu agente de codificación construya una funcionalidad, describa el caso de uso en lenguaje natural para Squidler, le pida a Squidler que lo pruebe, obtenga los detalles de cómo fue la ejecución de la prueba y los detalles de todos los problemas o fricciones encontrados al usar tu aplicación web.
A continuación se presentan los detalles y un ejemplo de cómo comenzar con Squidler a través de MCP. Si tienes alguna pregunta, no dudes en contactar a mattias@squidler.io.
Configuración
Agrega a la configuración de tu cliente MCP:
{
"mcpServers": {
"squidler": {
"transport": "http",
"url": "https://mcp.squidler.io",
"headers": {
"Authorization": "Bearer YOUR_SQUIDLER_API_TOKEN"
}
}
}
}
Obtén tu token de API en squidler.io/integrations/api-keys.
Guía integrada para agentes
El servidor MCP incluye instrucciones integradas que enseñan a tu agente de IA un flujo de trabajo de prueba después de la funcionalidad. Cuando está conectado, el agente sabe automáticamente cómo usar Squidler sin que tengas que explicárselo. El flujo de trabajo que sigue:
- Ejecutar pruebas existentes — verificar que nada se haya roto con la nueva funcionalidad.
- Investigar fallos — usar los resultados y eventos de las ejecuciones de prueba para entender qué falló. Corrige el código si es un error, o actualiza/elimina la prueba si está obsoleta.
- Etiquetar la funcionalidad — crear una etiqueta para la funcionalidad completada (por ejemplo, "Inicio de sesión de usuario", "Flujo de pago") para organizar tu catálogo de pruebas.
- Cubrir la nueva funcionalidad — crear casos de prueba para el nuevo comportamiento usando la conversación guiada (
test_case_create), etiquetarlos con la etiqueta de la funcionalidad y ejecutarlos para confirmar que pasan.
- Para páginas sin enlace clicable (endpoints ocultos, enlaces profundos), escribe los pasos como: "Navegar directamente a /ruta"
- Confirmar en verde — volver a ejecutar hasta que todas las pruebas pasen, luego pasar a la siguiente funcionalidad.
Con el tiempo, esto construye un catálogo creciente de pruebas organizadas por funcionalidad que previene regresiones y documenta cómo se supone que funciona el sistema.
Recursos
| URI del recurso | Descripción |
|---|
squidler://help | Documentación del servidor y capacidades disponibles |
squidler://sites | Lista de todos los sitios disponibles |
Herramientas
Sitios
| Herramienta | Descripción |
|---|
sites_list | Listar todos los sitios disponibles |
site_details | Obtener información del sitio (propietario, URL, nombre, enlace de frontend) |
site_create | Crear un nuevo sitio |
Problemas
| Herramienta | Descripción |
|---|
problems_summary | Resumen de problemas (recuento total por tipo) |
problems_list | Listar problemas con paginación y filtrado |
problem_get | Obtener información detallada sobre un problema específico |
problem_resolve | Marcar un problema como resuelto |
problem_dismiss | Marcar un problema como falso positivo |
Creación de casos de prueba
| Herramienta | Descripción |
|---|
test_case_create | Iniciar una conversación guiada para crear un caso de prueba de alta calidad almacenado en Squidler. Aprovecha el conocimiento de las páginas del sitio, la cobertura de pruebas existente y las mejores prácticas de prueba. Devuelve un conversationId — continúa con test_case_create_respond. |
test_case_create_respond | Continuar una conversación de creación de casos de prueba en curso — responder preguntas, revisar el borrador o confirmar la creación. Funciona tanto para test_case_create como para test_case_create_standalone. |
Casos de prueba
| Herramienta | Descripción |
|---|
test_cases_list | Listar todos los casos de prueba |
test_case_get | Obtener detalles del caso de prueba |
test_cases_list_by_label | Listar casos de prueba con una etiqueta específica |
validate_test_case | Validar un caso de prueba en cuanto a calidad, viabilidad y mejores prácticas |
test_case_update | Actualizar un caso de prueba existente (incluye retroalimentación automática de validación) |
test_case_delete | Eliminar un caso de prueba |
test_case_run | Ejecutar un solo caso de prueba |
test_cases_run_all | Ejecutar todos los casos de prueba |
test_cases_run_by_label | Ejecutar casos de prueba con una etiqueta específica |
Casos de prueba almacenados en el repositorio / independientes
Para agentes que gestionan casos de prueba como archivos markdown en su propio repositorio (sin almacenamiento en Squidler). Cubre el ciclo de crear → validar → ejecutar → promover. Particularmente útil para la iteración de desarrollo local: combina test_case_run_standalone con el proxy npx @squidlerio/squidler-mcp para enrutar las ejecuciones a través de un Chrome local contra http://localhost:<port>.
| Herramienta | Descripción |
|---|
test_case_create_standalone | Conversación guiada que produce texto markdown independiente (sin almacenamiento en Squidler). El arquitecto hace más preguntas aclaratorias que el flujo vinculado al sitio, ya que no tiene contexto del sitio. El resultado final es {filename, markdown} para que el agente lo escriba en su repositorio local. Continúa con test_case_create_respond. |
validate_test_case_text | Validar el markdown de un archivo de caso de prueba del Sistema B sin ejecutarlo. Devuelve errores tipados para problemas de frontmatter, esquema y cuerpo, cada uno con un número de línea del archivo cuando esté disponible. Úsalo antes de escribir archivos generados, después de ediciones manuales o en ganchos de CI. |
test_case_run_standalone | Ejecutar un caso de prueba proporcionado como markdown en línea contra un baseUrl personalizado (típicamente un servidor de desarrollo localhost o un despliegue de vista previa). La Optimización de Pasos / Acciones Fijas se basan automáticamente en ejecuciones anteriores del mismo (org, contentHash). Devuelve un checkId. |
test_case_runs_standalone_list | Listar ejecuciones independientes pasadas para la organización del llamante con un identificador dado, de la más reciente a la más antigua. Contraparte independiente de test_runs_list — útil para deduplicar antes de volver a ejecutar mediante hash de contenido. |
test_case_promote | Promover un archivo markdown almacenado en el repositorio a un caso de prueba vinculado al sitio en Squidler. Idempotente en (siteId, identifier): produce UNCHANGED, UPDATED o CREATED dependiendo de la comparación de hash de contenido con la revisión más reciente. |
Ejecuciones de prueba
| Herramienta | Descripción |
|---|
test_runs_list | Listar el historial de ejecución de un caso de prueba |
test_case_poll | Sondeo prolongado para actualizaciones de estado y eventos de ejecución de prueba |
test_run_outcome | Obtener el resultado de aprobado/fallido y los resultados de objetivos para una ejecución de prueba |
test_run_events | Obtener eventos de ejecución detallados y capturas de pantalla |
test_run_stop | Detener una prueba actualmente en ejecución |
pending_checks_list | Listar verificaciones en cola (esperando comenzar) para un sitio, más las verificaciones actualmente en ejecución que bloquean cada una. Úsalo cuando test_case_run devuelva queued: true. |
Etiquetas
| Herramienta | Descripción |
|---|
labels_list | Listar todas las etiquetas |
label_get | Obtener detalles de la etiqueta |
label_create | Crear una nueva etiqueta |
label_update | Actualizar una etiqueta |
label_delete | Eliminar una etiqueta |
test_case_labels_add | Agregar etiquetas a un caso de prueba |
test_case_label_remove | Eliminar una etiqueta de un caso de prueba |
Encabezados
| Herramienta | Descripción |
|---|
headers_list | Listar encabezados personalizados para un sitio |
header_add | Agregar o actualizar un encabezado personalizado |
header_delete | Eliminar un encabezado personalizado |
Credenciales
| Herramienta | Descripción |
|---|
credentials_list | Listar credenciales de inicio de sesión disponibles |
credentials_create_userpass | Crear credenciales con correo electrónico/nombre de usuario y contraseña explícitos |
credentials_create_email | Crear credenciales con correo electrónico @squidlermail.io generado automáticamente para pruebas de verificación |
credentials_create_oidc | Crear credenciales OIDC para sitios que usan OpenID Connect |
Revisiones de persona (retroalimentación de UX)
| Herramienta | Descripción |
|---|
personas_list | Listar todas las personas disponibles para revisiones de UX |
persona_review_run | Ejecutar una revisión de persona en un caso de prueba validado |
persona_review_findings | Obtener hallazgos detallados de una revisión de persona completada |
persona_findings_list | Listar hallazgos de persona para un sitio y persona, filtrados por estado |
persona_finding_triage | Actualizar el estado del hallazgo (RESOLVED, DISMISSED, IN_PROGRESS, OPEN) |
Gestión de cuenta
| Herramienta | Descripción |
|---|
account_status | Verificar el plan actual, la cuota de pruebas restante y las actualizaciones disponibles |
account_upgrade_url | Generar una URL de corta duración para actualizar tu plan |
Prompts
| Prompt | Descripción |
|---|
create-test-case | Creación guiada de casos de prueba con objetivos, pasos y estrategias de fallo |
site-health-check | Resumen rápido del estado de calidad del sitio con recomendaciones accionables |
run-test-suite | Ejecutar todos o pruebas etiquetadas y monitorear resultados |
get-started-with-squidler | Incorporación completa: crear sitio, generar pruebas iniciales, ejecutarlas |
suggest-initial-tests | Analizar el código base para sugerir 2-4 casos de prueba iniciales |
enhance-tests-from-runs | Analizar eventos de ejecución de pruebas para identificar y corregir debilidades |
identify-ux-improvements | Descubrir problemas de usabilidad a partir de patrones de fricción del tester de IA |
correlate-accessibility-and-ux | Cruzar problemas de accesibilidad con fricción en la ejecución de pruebas |
run-persona-review | Ejecutar revisiones de persona en casos de prueba validados para descubrir problemas de UX |
migrate-legacy-tests | Migrar casos de prueba heredados al formato actual |
Ejemplos de Prompts
| Lo que puedes decir | Lo que hace |
|---|
| "Crea un sitio para https://myapp.com llamado 'Mi App'" | Registra tu sitio web con Squidler para comenzar a monitorear y probar |
| "Analiza el código base y crea casos de prueba para los flujos de usuario clave" | Usa conversaciones guiadas para crear casos de prueba integrales que cubran flujos felices, casos límite y pruebas negativas |
| "Ejecuta todos mis casos de prueba" | Ejecuta tus casos de prueba en un navegador real con validación de objetivos y detección de problemas |
| "Muéstrame los resultados de mis últimas ejecuciones de prueba" | Ve qué objetivos pasaron o fallaron, y entiende qué sucedió durante la ejecución |
| "Obtén los eventos de prueba detallados para el caso de prueba #1 y analiza la UX" | Revisa los registros de ejecución para identificar fricción de UX y problemas de usabilidad |
| "Corrige los problemas que impiden que el caso de prueba #1 pase" | Analiza los fallos de prueba y corrige los problemas de código subyacentes |
| "Obtén el problema #42 y ayúdame a corregirlo" | Aborda problemas específicos de accesibilidad, funcionalidad o contenido |
| "Corrige todos los problemas de accesibilidad en mi sitio" | Corrige por lotes los problemas de cumplimiento WCAG iterando a través de los problemas |