Jenkins MCP Server
Un servidor MCP para automatizar tareas y gestionar trabajos en un servidor Jenkins.
Documentación
Jenkins MCP Server
Un servidor de Model Context Protocol (MCP) que permite a Claude interactuar con Jenkins a través de diversas herramientas de automatización. Este servidor proporciona capacidades integrales de gestión de Jenkins, incluyendo monitoreo de trabajos, control de compilaciones y gestión de colas.
Características
- Gestión de trabajos: Listar trabajos, obtener configuraciones de trabajos y monitorear el estado de los trabajos
- Control de compilaciones: Disparar compilaciones con parámetros, detener compilaciones en ejecución y verificar el estado de las compilaciones
- Historial de compilaciones: Recuperar el historial de compilaciones e información detallada de las compilaciones
- Registros de consola: Acceder a la salida de consola de las compilaciones para depuración
- Gestión de colas: Monitorear la cola de compilaciones de Jenkins y compilaciones atascadas
- Soporte de carpetas: Navegar por carpetas de Jenkins y estructuras organizativas
Instalación
- Clonar el repositorio:
git clone https://github.com/ddang-jung/jenkins-mcp-server.git
cd jenkins-mcp-server
- Instalar dependencias:
npm install
- Compilar el proyecto:
npm run build
Configuración
Variables de entorno
Establezca las siguientes variables de entorno para la autenticación de Jenkins:
JENKINS_URL: La URL de su servidor Jenkins (por ejemplo,http://localhost:8080)JENKINS_USER: Su nombre de usuario de JenkinsJENKINS_TOKEN: Su token de API de Jenkins (recomendado) o contraseña
Cómo obtener el token de API de Jenkins
- Inicie sesión en Jenkins
- Vaya a Administrar Jenkins → Administrar usuarios → Haga clic en su nombre de usuario
- Haga clic en Configurar → Token de API → Agregar nuevo token
- Copie el token generado
Configuración de Git
El proyecto incluye un archivo .gitignore completo que excluye:
- Artefactos de compilación (
build/,dist/) - Dependencias (
node_modules/) - Variables de entorno (
.env*) - Credenciales de Jenkins y archivos de configuración
- Archivos de IDE (
.vscode/,.idea/) - Archivos del sistema (
.DS_Store,Thumbs.db)
Importante: Nunca confirme credenciales de Jenkins o tokens de API en el control de versiones.
Configuración de Claude Desktop
Agregue esta configuración a su claude_desktop_config.json:
{
"mcpServers": {
"jenkins": {
"command": "node",
"args": ["/path/to/jenkins-mcp-server/build/index.js"],
"env": {
"JENKINS_URL": "http://your-jenkins-server:8080",
"JENKINS_USER": "your-username",
"JENKINS_TOKEN": "your-api-token"
}
}
}
}
Uso
Iniciar el servidor
npm start
El servidor se ejecuta en stdio y se comunica con Claude a través del protocolo MCP.
Modo de desarrollo
Para desarrollo con reconstrucción automática:
npm run watch
Para depuración con MCP Inspector:
npm run inspector
Herramientas disponibles
1. get_build_status
Obtener el estado de una compilación específica de Jenkins.
Parámetros:
jobPath(obligatorio): Ruta al trabajo de Jenkins (por ejemplo, "job/MyProject/job/main")buildNumber(opcional): Número de compilación o "lastBuild" para la más reciente
Ejemplo:
{
"jobPath": "job/MyProject",
"buildNumber": "lastBuild"
}
2. trigger_build
Disparar una nueva compilación de Jenkins con parámetros opcionales.
Parámetros:
jobPath(obligatorio): Ruta al trabajo de Jenkinsparameters(opcional): Parámetros de compilación como pares clave-valor
Ejemplo:
{
"jobPath": "job/MyProject",
"parameters": {
"BRANCH": "main",
"DEPLOY_ENV": "staging"
}
}
3. get_build_log
Recuperar la salida de consola de una compilación específica.
Parámetros:
jobPath(obligatorio): Ruta al trabajo de JenkinsbuildNumber(obligatorio): Número de compilación o "lastBuild"
4. list_jobs
Listar todos los trabajos de Jenkins en una carpeta o en el nivel raíz.
Parámetros:
folderPath(opcional): Ruta a la carpeta (por ejemplo, "job/MyFolder") o vacío para la raíz
5. get_build_history
Obtener el historial de compilaciones de un trabajo específico de Jenkins.
Parámetros:
jobPath(obligatorio): Ruta al trabajo de Jenkinslimit(opcional): Número de compilaciones recientes a recuperar (predeterminado: 10)
6. stop_build
Detener una compilación de Jenkins en ejecución.
Parámetros:
jobPath(obligatorio): Ruta al trabajo de JenkinsbuildNumber(obligatorio): Número de compilación o "lastBuild"
7. get_queue
Obtener el estado actual de la cola de compilaciones de Jenkins.
Parámetros: Ninguno
8. get_job_config
Obtener los detalles de configuración de un trabajo de Jenkins.
Parámetros:
jobPath(obligatorio): Ruta al trabajo de Jenkins
Formato de ruta de trabajo
Las rutas de trabajos de Jenkins siguen este formato:
- Trabajo de nivel raíz:
job/JobName - Trabajo en carpeta:
job/FolderName/job/JobName - Multi-nivel:
job/Folder1/job/Folder2/job/JobName
Manejo de errores
El servidor proporciona un manejo integral de errores:
- Errores de autenticación: Verifique sus credenciales de Jenkins
- Trabajo no encontrado: Verifique el formato de la ruta del trabajo
- Errores de permisos: Asegúrese de que su usuario de Jenkins tenga los permisos adecuados
- Errores de red: Verifique la conectividad con el servidor de Jenkins
Desarrollo
Estructura del proyecto
jenkins-mcp-server/
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled JavaScript output
├── package.json # Project configuration
├── tsconfig.json # TypeScript configuration
├── .gitignore # Git ignore rules
└── README.md # This file
Scripts
npm run build: Compilar TypeScript a JavaScriptnpm run watch: Observar cambios y reconstruirnpm run inspector: Iniciar MCP Inspector para depuraciónnpm run prepare: Preparar compilación (se ejecuta automáticamente)npm run clean: Limpiar artefactos de compilación y dependencias (macOS/Linux)npm run clean:win: Limpiar artefactos de compilación y dependencias (Windows)
Limpieza del proyecto
Para restablecer el proyecto a su estado inicial (eliminar artefactos de compilación y dependencias):
macOS/Linux:
npm run clean
# or manually:
rm -rf node_modules build package-lock.json
Windows:
npm run clean:win
# or manually:
rmdir /s /q node_modules & rmdir /s /q build & del package-lock.json
Contribuciones
- Haga un fork del repositorio
- Cree una rama de características
- Realice sus cambios
- Pruebe exhaustivamente
- Envíe una solicitud de extracción
Licencia
Este proyecto está licenciado bajo la Licencia MIT.
Solución de problemas
Problemas comunes
- "Error de API de Jenkins": Verifique su URL y credenciales de Jenkins
- "Trabajo no encontrado": Verifique el formato de la ruta del trabajo (use el prefijo
job/) - "Permiso denegado": Asegúrese de que su usuario de Jenkins tenga los permisos requeridos
- "Conexión rechazada": Verifique si el servidor de Jenkins está en ejecución y es accesible
Modo de depuración
Habilite el registro de depuración configurando:
export DEBUG=jenkins-mcp-server
Para más información, visite la documentación de la API REST de Jenkins.