testlink-mcp
testlink-mcp
Un servidor de Model Context Protocol amigable con IA y con prioridad en la seguridad para TestLink 1.9.20. Expone herramientas normalizadas de descubrimiento y análisis, paginación por cursor acotada, salida estructurada y escrituras con vista previa antes de aplicar a través de stdio.
Este repositorio es una implementación limpia basada en la interfaz XML-RPC pública de TestLink y en el SDK público de MCP. No depende de ningún paquete privado de TestLink ni de un árbol de código fuente privado.
Características
Se inicia sin credenciales para que los clientes MCP puedan descubrir todas las herramientas, recursos e indicaciones.
Modo de demostración determinista explícito para evaluación e incorporación.
structuredContent,outputSchema, anotaciones de herramientas, paginación por cursor y códigos de error estables.Solo metadatos de adjuntos; el contenido de los adjuntos y las cargas útiles base64 se eliminan.
Escrituras deshabilitadas por defecto. No existe herramienta de eliminación.
Cada aplicación requiere
confirm: true, una vista previa no caducada de 10 minutos y una instantánea del servidor sin cambios.Las llamadas con efectos secundarios nunca se reintentan automáticamente; los intentos de aplicación se registran en un registro de operaciones redactado.
Una protección en tiempo de ejecución bloquea versiones de Node impares no compatibles o al final de su vida útil y niveles de parches de seguridad por debajo del mínimo declarado.
Related MCP server: TestRail MCP Server
Requisitos
Node.js
^22.23.2 || ^24.18.1 || ^26.5.1TestLink 1.9.20 con su API XML-RPC habilitada
La base de desarrollo y contenedor es Node 24.19.0 LTS. CI también ejecuta Node 22.23.2 y 26.7.0.
Inicio rápido
nvm use
npm ci
npm run build
TESTLINK_DEMO_MODE=true node dist/cli.jsInvocación futura de npm tras la publicación:
npx -y testlink-mcp@1.0.0Configuración del cliente MCP:
{
"mcpServers": {
"testlink": {
"command": "npx",
"args": ["-y", "testlink-mcp@1.0.0"],
"env": {
"TESTLINK_URL": "https://testlink.example.com/testlink",
"TESTLINK_DEV_KEY": "your-testlink-dev-key"
}
}
}
}No pongas credenciales reales en archivos rastreados. Copia .env.example a un .env ignorado, o inyecta variables de entorno desde tu cliente MCP o gestor de secretos.
Herramientas
Flujo de trabajo | Herramienta | Propósito |
Inicio |
| Comprobar configuración, compatibilidad, modo demo y política de escritura |
Explorar |
| Listar proyectos |
Explorar |
| Listar planes de pruebas en un proyecto |
Explorar |
| Listar builds en un plan |
Explorar |
| Recorrer un nivel de suite |
Analizar |
| Buscar casos en un ámbito acotado de proyecto/suite |
Analizar |
| Recuperar un caso normalizado |
Analizar |
| Recuperar metadatos seguros de adjuntos |
Analizar |
| Inspeccionar cobertura de requisitos y planes |
Analizar |
| Inspeccionar evidencia reciente de ejecuciones |
Validar |
| Encontrar contenido de caso incompleto o ambiguo |
Vista previa |
| Vista previa de creación/actualización y pertenencias a planes |
Aplicar |
| Aplicar una vista previa de sincronización confirmada y sin cambios |
Vista previa |
| Vista previa de informes aprobado/fallido/bloqueado |
Aplicar |
| Aplicar una vista previa de resultado confirmada y sin cambios |
Todas las herramientas devuelven:
{
"ok": true,
"data": {},
"meta": {
"source": "testlink",
"requestId": "..."
}
}Los fallos usan ok: false con { code, message, retryable, details? }. Los consumidores deben ramificarse según error.code, no según el texto del mensaje.
Flujo de trabajo de escritura segura
Busca un caso existente y recupera su versión actual.
Valida el caso de prueba deseado.
Llama a la herramienta de vista previa correspondiente.
Muestra
proposedChangesal usuario y obtén confirmación explícita.Llama a apply con el ID de vista previa y
confirm: trueen un plazo de 10 minutos.Si apply devuelve
CONFLICToPREVIEW_EXPIRED, crea y revisa una nueva vista previa.
Activa las escrituras solo en el proceso del servidor que deba realizarlas:
TESTLINK_WRITE_ENABLED=true npx -y testlink-mcp@1.0.0La ruta predeterminada del registro es ~/.local/state/testlink-mcp/operations.jsonl. Sobrescríbela con TESTLINK_LEDGER_PATH. El registro contiene hashes y resultados redactados, no claves de desarrollador.
Configuración
Variable | Por defecto | Significado |
| sin definir | URL base de TestLink o endpoint XML-RPC completo |
| sin definir | Clave API personal de TestLink |
|
| Usar datos de demostración locales deterministas |
|
| Permitir herramientas de aplicación confirmadas |
|
| Tiempo de espera de solicitud, 100–300000 ms |
|
| Tamaño máximo de respuesta XML |
| directorio de estado del usuario | Registro de operaciones JSONL redactado |
| sin definir | Paquete de CA adicional opcional; la verificación TLS permanece habilitada |
El modo demo es explícito y prevalece sobre la configuración remota:
TESTLINK_DEMO_MODE=true TESTLINK_WRITE_ENABLED=true node dist/cli.jsDesarrollo
npm ci
npm run check
npm test
npm run eval
npm run build
npm audit --omit=dev --audit-level=high
npm pack --dry-runLa evaluación offline de selección de herramientas comprueba que las intenciones comunes de usuario seleccionen de manera diferenciada las herramientas de búsqueda, validación, vista previa y aplicación. Es determinista y no envía datos a un modelo externo.
Docker
La imagen se ejecuta como un usuario no root y usa Node 24.19.0. Crea la imagen sin publicar:
docker buildx build --platform linux/amd64,linux/arm64 --tag testlink-mcp:local --output type=oci,dest=testlink-mcp.oci.tar .Nombre futuro de la imagen tras aprobación y publicación: ghcr.io/easonlin/testlink-mcp:1.0.0.
Política de publicación
La versión 1.0.0 está lista para su lanzamiento, pero la publicación sigue siendo una acción explícita. El flujo de trabajo de publicación protegido requiere una etiqueta de versión firmada, vuelve a ejecutar todas las compuertas de pruebas/evaluación/auditoría/SBOM/paquete, publica npm con procedencia, publica una imagen GHCR multiarquitectura con SBOM y procedencia, crea un GitHub Release y, finalmente, publica la entrada validada del Registro MCP.
Un flujo de trabajo protegido separado de prueba de humo en vivo verifica el paquete instalado contra una instancia real de TestLink 1.9.20 mediante llamadas de solo lectura. Su URL y clave de desarrollador deben almacenarse como secretos de entorno y nunca se escriben en los registros.
El manifiesto del paquete y server.json comparten el nombre MCP io.github.easonlin/testlink-mcp. La validación del Registro se puede ejecutar sin publicar:
mcp-publisher validate server.jsonReferencias públicas
Licencia
MIT
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that allows interaction with TestRail's core entities (projects, cases, runs, results, datasets) through a standardized protocol compatible with MCP clients like Claude Desktop.2320MIT
- FlicenseNot gradedqualityNot gradedmaintenanceA Model Context Protocol server that provides integration with TestRail, allowing AI assistants to interact with TestRail projects, test cases, test runs, and results.1,3341
- AlicenseBqualityCmaintenanceA security-focused Model Context Protocol server that enables controlled local tool execution through strict network firewalls, filesystem protections, and rate-limiting policies. It features a plugin-based architecture for progressive tool discovery and includes reference implementations for web searching and bug tracking.15MIT
- AlicenseBqualityAmaintenanceAI-native Model Context Protocol (MCP) server for TestRail. Lets Claude, Cursor, Windsurf, and other AI assistants browse projects, create and update test cases, kick off test runs, and record results through natural-language conversation — with strongly-typed tool schemas and per-project custom field validation that helps LLMs generate valid TestRail requests on the first try.2681730Apache 2.0
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Eason0in/testlink-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server