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

  1. Clonar el repositorio:
git clone https://github.com/ddang-jung/jenkins-mcp-server.git
cd jenkins-mcp-server
  1. Instalar dependencias:
npm install
  1. 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 Jenkins
  • JENKINS_TOKEN: Su token de API de Jenkins (recomendado) o contraseña

Cómo obtener el token de API de Jenkins

  1. Inicie sesión en Jenkins
  2. Vaya a Administrar Jenkins → Administrar usuarios → Haga clic en su nombre de usuario
  3. Haga clic en Configurar → Token de API → Agregar nuevo token
  4. 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 Jenkins
  • parameters (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 Jenkins
  • buildNumber (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 Jenkins
  • limit (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 Jenkins
  • buildNumber (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 JavaScript
  • npm run watch: Observar cambios y reconstruir
  • npm run inspector: Iniciar MCP Inspector para depuración
  • npm 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

  1. Haga un fork del repositorio
  2. Cree una rama de características
  3. Realice sus cambios
  4. Pruebe exhaustivamente
  5. Envíe una solicitud de extracción

Licencia

Este proyecto está licenciado bajo la Licencia MIT.

Solución de problemas

Problemas comunes

  1. "Error de API de Jenkins": Verifique su URL y credenciales de Jenkins
  2. "Trabajo no encontrado": Verifique el formato de la ruta del trabajo (use el prefijo job/)
  3. "Permiso denegado": Asegúrese de que su usuario de Jenkins tenga los permisos requeridos
  4. "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.