M00N Report
Gestión de pruebas a través de MCP: redacte casos de prueba, ejecute ejecuciones manuales con resultados por caso, publique versiones y vincule pruebas automatizadas a los casos que cubren.
Documentación
@m00nsolutions/mcp-server
Gestión de pruebas agéntica sobre MCP. Este servidor permite que un asistente de IA haga el trabajo en lugar de leer sobre él: redactar casos de prueba, planificar y ejecutar ejecuciones de pruebas manuales, vincular la automatización con los casos que cubre, crear versiones y leer el estado de salud del proyecto en M00N Report, una plataforma de gestión de pruebas nativa de IA.
¿Qué instalación necesito?
| Este paquete npm (stdio) | Conector remoto alojado | |
|---|---|---|
| Cómo se ejecuta | npx @m00nsolutions/mcp-server como proceso local | Sin proceso local; el cliente habla con la API por HTTP |
| Autenticación | Una clave MCP en M00N_API_KEY | OAuth 2.1 con PKCE, pantalla de consentimiento del navegador |
| Clientes | Cualquier cliente MCP: Claude Code, Claude Desktop, Cursor y otros | Solo claude.ai y claude.com |
Si no te conectas desde claude.ai o claude.com, usa este paquete con una clave MCP. Ese es el resto de este README. Para el conector, consulta la guía del conector.
Requisitos
Node 20 o superior, y cualquier cliente compatible con MCP.
Instalación
No hay paso de instalación. El cliente lo lanza con npx, como se configura a continuación.
Para fijar una versión en un entorno compartido o de CI, añade una al nombre del paquete en args, como ["-y", "@m00nsolutions/mcp-server@<version>"]. npm view @m00nsolutions/mcp-server versions enumera lo que se publica. Un marcador de posición en lugar de un número a propósito: un ejemplo concreto aquí queda obsoleto en la próxima versión, y uno obsoleto recomienda fijar una versión que ya no tiene las correcciones actuales.
Inicio rápido
1. Obtén una clave MCP
En M00N Report, abre Configuración -> Claves MCP y crea una clave. Empieza con m00n_mcp_ seguido de 48 caracteres hexadecimales. Esta no es la credencial que usan los reporteros de pruebas; la suya empieza con m00n_ y es rechazada aquí.
Una clave MCP lleva exactamente los permisos de la cuenta a la que pertenece, nunca más, y se puede reducir aún más. El ámbito elimina herramientas de la lista que ve el cliente, así que una lista de herramientas más corta de lo esperado es una decisión de ámbito, no un fallo.
La clave va en tu propia configuración de cliente MCP en tu máquina. No la pongas en un archivo de espacio de trabajo que viva en un repositorio.
2. Conecta tu cliente
Claude Code, una línea:
claude mcp add m00n --env M00N_API_URL=https://m00nreport.com --env M00N_API_KEY=m00n_mcp_... -- npx -y @m00nsolutions/mcp-server
Cualquier otro cliente usa el mismo bloque JSON:
{
"mcpServers": {
"m00n": {
"command": "npx",
"args": ["-y", "@m00nsolutions/mcp-server"],
"env": {
"M00N_API_URL": "https://m00nreport.com",
"M00N_API_KEY": "m00n_mcp_your_key_here"
}
}
}
}
Dónde va ese bloque:
| Cliente | Archivo de configuración |
|---|---|
| Cursor | ~/.cursor/mcp.json |
| Claude Desktop, macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Desktop, Windows | %APPDATA%\Claude\claude_desktop_config.json |
Para una instancia autoalojada, apunta M00N_API_URL a tu propio origen raíz, sin sufijo /api. La barra final se elimina por ti.
3. Confirma la conexión
Reinicia el cliente y luego pregúntale:
Lista mis proyectos de M00N Report
Una lista de tus proyectos significa que el servidor está conectado y la clave es válida. Un error, o que el asistente diga que no tiene esa herramienta, significa que no lo está; consulta Solución de problemas.
Herramientas
Ocho áreas. La lista completa con argumentos está en /documentation/mcp/tools, mantenida junto al código. El servidor obtiene su propia lista de tu instancia al iniciar, así que lo que ve tu cliente es lo que tu instancia soportaba cuando el cliente se conectó.
| Área | Qué cubre |
|---|---|
| Proyectos y análisis | Proyectos, tendencias y estadísticas de lanzamientos, historial por prueba, búsqueda entre pruebas automatizadas |
| Casos de prueba | Crear, leer, actualizar, mover, eliminar, editar en bloque y vincular una prueba automatizada al caso que cubre |
| Carpetas y suites | La jerarquía de carpetas y suites, más estadísticas por carpeta |
| Colecciones de pruebas | Conjuntos de casos con nombre reutilizables que se insertan en cualquier ejecución |
| Ejecuciones manuales | Construir una ejecución a partir de suites, colecciones o casos individuales, y luego registrar resultados por caso |
| Versiones | Crear y gestionar versiones, y adjuntar o desadjuntar los lanzamientos que les pertenecen |
| Salud y cobertura | Una verificación de salud compuesta, brechas de cobertura en ambas direcciones, sugerencias de casos, escaneo de funciones, exportación de informes |
| Enlaces externos | Adjuntar y eliminar tickets de Jira o Linear en un caso |
Una ejecución es una prueba manual: asignados, entorno, fechas y resultados por paso capturados contra una instantánea de cada caso en el momento en que se añadió.
Cuántas herramientas puede ver tu clave proviene de tu instancia:
curl -s -H "X-MCP-Key: $M00N_API_KEY" "$M00N_API_URL/api/mcp/tools" | jq .count
Una clave con ámbito ve menos. No se cita ningún número aquí a propósito: la superficie cambia con la versión, y una cifra en un README es el único lugar donde nadie recuerda actualizar.
Prompts
Flujos de trabajo guiados de varios pasos que el cliente puede ofrecer por nombre. Cada uno toma un único argumento opcional project, un nombre o un UUID; omítelo y el servidor elige el proyecto cuando solo hay uno en el ámbito.
| Prompt | Qué hace |
|---|---|
analyze_flaky_tests | Encontrar pruebas que pasan y fallan sin un cambio de código, y clasificarlas |
debug_test_failure | Trabajar un solo fallo hasta su causa desde su historial y trazas |
release_readiness | Juzgar si una versión es segura para publicar |
generate_test_cases | Redactar casos manuales para un área que no tiene ninguno |
weekly_health_report | Resumir la semana entre proyectos |
investigate_regression | Encontrar qué cambió entre una ejecución que pasa y una que falla |
run_manual_execution | Llevar un ciclo de pruebas manuales desde el ensamblaje hasta los resultados por caso |
Recursos
Vistas de solo lectura que el cliente puede obtener sin llamar a una herramienta: todos los proyectos, resumen de salud del proyecto, informe de pruebas inestables, pruebas que fallan actualmente, estructura de carpetas, informe de lanzamiento, contenido de casos de prueba, resumen de versiones.
Configuración
| Variable de entorno | Requerida | Predeterminado | Descripción |
|---|---|---|---|
M00N_API_URL | para conectar | Tu URL de M00N Report. Origen raíz, sin sufijo /api. La barra final se elimina por ti. | |
M00N_API_KEY | para conectar | Una clave MCP (m00n_mcp_...). Cualquier cosa sin ese prefijo es rechazada antes de la primera solicitud. | |
M00N_DEBUG | no | false | Añade detalle por solicitud a stderr, incluidos los argumentos de cada llamada a herramienta. Los pasos de inicio y los errores se registran de todos modos. |
M00N_TIMEOUT_MS | no | 30000 | Tiempo de espera de solicitud, un número simple de milisegundos. 60s, 1e4, 30,000 y 1.5 son rechazados con una advertencia en stderr y se usa el predeterminado. |
M00N_INSECURE_SSL | no | false | Aceptar un certificado autofirmado. Solo instancias autoalojadas. |
Los dos booleanos están activados para true, 1 o yes, en cualquier caso. Cualquier otro valor, incluidos false y 0, los deja desactivados.
Configura los dos primeros o ninguno. Configurar solo uno se trata como un error y se rechaza, porque un servidor a medio configurar que igualmente arranca es más difícil de diagnosticar que uno que no arranca.
La URL base es M00N_API_URL aquí; los reporteros de pruebas llaman a la misma URL M00N_SERVER_URL. Los seis paquetes leen M00N_API_KEY, pero la suya es una clave de API de proyecto en lugar de una clave MCP, así que una variable de shell exportada no puede servir para ambos.
Ejecución sin clave
Iniciado sin M00N_API_URL ni M00N_API_KEY, el servidor se ejecuta en modo de vista previa: lista sus herramientas, prompts y recursos desde una instantánea empaquetada y rechaza cada llamada con un mensaje que dice qué configurar. No se envía nada a ningún lugar, porque no hay a dónde enviarlo.
Eso es lo que permite que un inspector, un cliente o un directorio muestren la superficie de herramientas antes de que alguien se registre. Es una descripción del servidor, nunca uno funcional, así que los listados provienen de la instantánea en lugar de tu instancia: una clave con ámbito normalmente ve menos herramientas de las que muestra la instantánea.
Los mantenedores actualizan la instantánea con npm run snapshot:refresh contra una clave sin ámbito.
Autoalojado
Apunta M00N_API_URL a tu propia instancia y emite la clave MCP desde esa instancia. Todo lo demás es idéntico, lo que importa cuando la razón para autoalojar es que los datos de prueba no pueden salir de tu red.
Con un certificado autofirmado, añade "M00N_INSECURE_SSL": "true" al mismo bloque env. Notas completas: /documentation/mcp/self-hosted.
Qué se envía
A M00N_API_URL por HTTPS: las llamadas a herramientas que hace tu asistente y sus argumentos. El servidor es un proxy hacia tu propia instancia y no almacena nada por sí mismo.
Cada llamada a herramienta se escribe en un registro de auditoría MCP con una interfaz en la aplicación, y el límite de velocidad por clave limita a un agente descontrolado. La clave nunca se escribe en ese registro, ni en stderr. Con M00N_DEBUG los argumentos de cada llamada a herramienta se imprimen en stderr, así que trata esa salida como tratarías los datos mismos.
Solución de problemas
| Síntoma | Causa |
|---|---|
| El cliente no muestra herramientas de M00N Report | La configuración no se recargó. Reinicia el cliente por completo, no solo la conversación. |
Las herramientas están listadas pero cada llamada responde running unconfigured | Ni M00N_API_URL ni M00N_API_KEY llegaron al proceso, así que se inició en modo de vista previa. Verifica que el bloque env realmente se aplica a este servidor. |
M00N_API_KEY should start with "m00n_mcp_" | Esa es una clave de API de proyecto, la que usan los reporteros de pruebas. Las claves MCP son separadas: Configuración -> Claves MCP. |
Authentication failed: Invalid or expired MCP key | La clave es incorrecta, está revocada o es de otra instancia. O M00N_API_URL lleva un sufijo /api, lo que hace que cada solicitud devuelva 401 por muy buena que sea la clave. Revisa la URL primero, luego emite una clave nueva. |
WARNING: M00N_API_URL is http://... | No es un error, y el servidor sigue funcionando. Significa que la clave se envía sin cifrar en cada solicitud. Usa https a menos que la instancia esté en una red privada de confianza. Las direcciones de bucle local no advierten. |
... redirected to ... | La URL responde con una redirección, y las redirecciones no se siguen porque la clave MCP viajaría a donde apunten. Configura M00N_API_URL a la dirección que responde directamente, usualmente la forma https://. |
Cannot connect to M00N Report API at ... | Nada está escuchando en esa URL. La instancia está caída, o el puerto está cerrado para ti. |
Cannot resolve M00N Report API host | El nombre de host no se resuelve. Un error tipográfico, o un nombre privado alcanzado desde fuera de su red. |
Request to M00N Report API timed out | Aumenta M00N_TIMEOUT_MS, o revisa la ruta de red. |
SSL certificate error connecting to ... | Un certificado autofirmado en una instancia autoalojada. Configura M00N_INSECURE_SSL a true. |
Not found during ... | El resto de la línea es la respuesta del propio servidor y usualmente nombra la solución, como qué proyectos existen. Léelo antes de cambiar una configuración. |
Rate limit exceeded. Retry after Ns. | 1000 llamadas a herramientas por minuto por clave, en una ventana deslizante. El mensaje lleva la espera. Un agente trabajando en una tarea rara vez se acerca; alcanzar esto usualmente significa un bucle. |
| Menos herramientas de las esperadas | La clave tiene ámbito de permisos, o la instancia es más antigua que el paquete. La lista de herramientas proviene de tu instancia. |
El servidor registra en stderr con o sin M00N_DEBUG, y la mayoría de los clientes lo muestran en su panel MCP. Configura M00N_DEBUG a true para añadir cada solicitud y sus argumentos.
Limitaciones conocidas
- La lista de herramientas se lee una sola vez, al inicio. Si redefines el alcance de una clave o actualizas la instancia, el cliente conserva la lista anterior hasta que lo reinicies.
GET /api/healthdebe ser accesible cuando está configurado. Se verifica antes que cualquier otra cosa y un fallo detiene el servidor, por lo que un proxy que reenvíe solo/api/mcp/*no muestra ninguna herramienta, aunque todas funcionarían.- Una clave con alcance de cero herramientas no se inicia. El servidor se cierra en lugar de conectarse con una lista vacía. Esta es la ruta configurada; sin credenciales en absoluto, se inicia en modo de vista previa.
- Los prompts y los recursos son opcionales. Si sus listados fallan, el servidor aún se inicia, con el motivo en stderr, y el cliente no ve ninguno de ellos durante toda la sesión.
- Las redirecciones se rechazan, no se siguen. La clave viaja en un encabezado personalizado, y los seguidores de redirecciones eliminan solo los encabezados de autenticación que reconocen, por lo que seguir una entregaría la clave al host que respondiera a continuación. Una redirección se informa con la dirección a la que apuntaba.
- Solo stdio. Para un transporte HTTP, usa el conector alojado.
Soporte
Licencia
Licencia MIT. Consulta LICENSE.