MCP-Jenkins
A server that enables interaction with Jenkins CI/CD pipelines from any compatible MCP client (like Claude Desktop), allowing users to manage jobs, builds, coverage reports, and other Jenkins functionality through natural language.
README Documentation
@grec0/mcp-jenkins
MCP server para integración con Jenkins CI/CD. Este servidor permite interactuar con Jenkins desde cualquier cliente MCP compatible (como Claude Desktop) para gestionar jobs, builds, reportes de cobertura y más.
Características
- ✅ Gestión de Jobs: Obtener estado, iniciar y detener jobs
- 📋 Monitoreo de Builds: Ver steps, nodos y estados de ejecución
- 🔄 Acciones de Input: Manejar aprobaciones y acciones pendientes
- 📊 Reportes de Cobertura: Analizar cobertura de código detallada
- 🌿 Integración Git: Listar ramas disponibles para builds
- 🔒 Autenticación Segura: Soporte para HTTPS con certificados auto-firmados
Instalación
Opción 1: Usar con npx (Recomendado)
# No requiere instalación global
npx @grec0/mcp-jenkins
Opción 2: Instalación global
npm install -g @grec0/mcp-jenkins
Requisitos Previos
Plugins de Jenkins Requeridos
⚠️ IMPORTANTE: Para funcionalidad completa, necesitas estos plugins instalados en Jenkins:
Obligatorios:
pipeline-rest-api
- Para API de pipelinesgit-parameter
- Para listado de ramas Git
Opcionales (para cobertura):
jacoco
- Para reportes de cobertura Java- Plugin de cobertura frontend (Istanbul, etc.)
📖 Ver JENKINS_REQUIREMENTS.md para instrucciones detalladas de instalación
Configuración
Variables de Entorno
export JENKINS_URL="https://tu-jenkins.com"
export JENKINS_USERNAME="tu-usuario"
export JENKINS_PASSWORD="tu-token-o-password"
Configuración en Claude Desktop
Agregar al archivo de configuración de Claude Desktop:
Opción 1: Con npx (Recomendado)
{
"mcpServers": {
"jenkins": {
"command": "npx",
"args": ["@grec0/mcp-jenkins"],
"env": {
"JENKINS_URL": "https://tu-jenkins.com",
"JENKINS_USERNAME": "tu-usuario",
"JENKINS_PASSWORD": "tu-token"
}
}
}
}
Opción 2: Con instalación global
{
"mcpServers": {
"jenkins": {
"command": "mcp-jenkins",
"env": {
"JENKINS_URL": "https://tu-jenkins.com",
"JENKINS_USERNAME": "tu-usuario",
"JENKINS_PASSWORD": "tu-token"
}
}
}
}
Herramientas Disponibles
Gestión de Jobs
jenkins_get_job_status
- Obtener estado de un jobjenkins_start_job
- Iniciar un job con rama específicajenkins_stop_job
- Detener un job en ejecuciónjenkins_get_git_branches
- Listar ramas de Git disponibles
Monitoreo de Builds
jenkins_get_build_steps
- Ver steps de un buildjenkins_get_node_status
- Estado de un nodo específicojenkins_get_pending_actions
- Acciones pendientes de input
Acciones de Input
jenkins_submit_input_action
- Enviar aprobación/rechazo
Reportes de Cobertura
jenkins_get_coverage_report
- Reporte de cobertura generaljenkins_get_coverage_lines
- Cobertura de archivo específicojenkins_get_coverage_paths
- Listar archivos con cobertura
Uso
Obtener estado de un job
¿Cuál es el estado del job "mi-app"?
Iniciar un build
Inicia el job "mi-app" con la rama "feature/nueva-funcionalidad"
Ver cobertura de código
Muéstrame el reporte de cobertura del build #123 de "mi-app"
Aprobar un deployment
Obtén las acciones pendientes del build #456 de "mi-app" y luego aprueba el deployment
Simplificaciones respecto al código Java original
- Eliminación del parámetro
area
: Solo se usaapp
para simplificar - Estructura de jobs simplificada:
/job/app-{app}-pipeline
en lugar de/job/{area}/job/app{area}-{app}-pipeline
- Configuración por variables de entorno: Más simple que la configuración de Spring Boot
Ejecución Manual
Con npx:
# Configurar variables de entorno
export JENKINS_URL="https://tu-jenkins.com"
export JENKINS_USERNAME="tu-usuario"
export JENKINS_PASSWORD="tu-token"
# Ejecutar
npx @grec0/mcp-jenkins
Con instalación global:
# Instalar globalmente
npm install -g @grec0/mcp-jenkins
# Configurar variables de entorno
export JENKINS_URL="https://tu-jenkins.com"
export JENKINS_USERNAME="tu-usuario"
export JENKINS_PASSWORD="tu-token"
# Ejecutar
mcp-jenkins
Desarrollo
# Clonar el repositorio
git clone https://github.com/gcorroto/mcp-jenkins.git
cd mcp-jenkins
# Instalar dependencias
npm install
# Compilar
npm run build
# Ejecutar en modo desarrollo
npm run dev
# Ejecutar tests
npm test
Licencia
MIT
Contribuciones
Las contribuciones son bienvenidas. Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/nueva-feature
) - Commit tus cambios (
git commit -am 'Agregar nueva feature'
) - Push a la rama (
git push origin feature/nueva-feature
) - Abre un Pull Request
Soporte
Si encuentras algún problema, por favor abre un issue en GitHub.