Jenkins MCP Server
MCP Jenkins es una capa de integración basada en Go diseñada para conectar herramientas del Protocolo de Contexto de Modelo (MCP) con pipelines de CI/CD de Jenkins. Este proyecto proporciona un puente ligero y de alto rendimiento que permite la ejecución automatizada de pipelines, la gestión de trabajos y la recuperación de estado a través de flujos de trabajo impulsados por MCP.
Documentación
Servidor MCP de Jenkins
Una implementación de servidor del Model Context Protocol (MCP) en Go que proporciona acceso programático a la funcionalidad de CI/CD de Jenkins. Este servidor permite a los asistentes de IA y otros clientes MCP interactuar con instancias de Jenkins a través de una interfaz de protocolo estandarizada.
Características
- Cobertura completa de la API de Jenkins: Listar trabajos, disparar builds, monitorear estado, recuperar logs y artefactos
- Cumplimiento del protocolo MCP: Implementación completa de la especificación del Model Context Protocol
- Autenticación segura: Autenticación con nombre de usuario y token de API con soporte TLS/SSL
- Manejo robusto de errores: Reintento automático con retroceso exponencial para fallos transitorios
- Listo para producción: Manejo integral de errores, registro y gestión de tiempos de espera
- Soporte multi-instancia: Prefijado opcional de herramientas para ejecutar múltiples servidores Jenkins
Instalación
Opción 1: Instalar desde el código fuente
go install github.com/NithishNithi/go-jenkins-mcp/cmd/jenkins-mcp-server@latest
Opción 2: Compilar desde el código fuente
git clone https://github.com/NithishNithi/go-jenkins-mcp.git
cd go-jenkins-mcp
go build -o jenkins-mcp-server .
Opción 3: Descargar binario precompilado
Descargue la última versión desde la página de versiones.
Requisitos
- Go 1.23.6 o posterior (para compilar desde el código fuente)
- Acceso a una instancia de Jenkins
- Nombre de usuario y token de API de Jenkins
Configuración
Variables de entorno
# Required
JENKINS_URL=https://jenkins.example.com
JENKINS_USERNAME=your-username
JENKINS_API_TOKEN=your-api-token-here
# Optional
JENKINS_TIMEOUT=30s # Request timeout (default: 30s)
JENKINS_TLS_SKIP_VERIFY=false # Skip TLS verification (default: false)
JENKINS_CA_CERT=/path/to/ca.crt # Custom CA certificate path
JENKINS_MAX_RETRIES=3 # Maximum retry attempts (default: 3)
JENKINS_RETRY_BACKOFF=1s # Initial retry backoff (default: 1s)
JENKINS_TOOL_PREFIX=prod # Tool name prefix for multi-instance setups
Nota: JENKINS_TOOL_PREFIX le permite ejecutar múltiples servidores MCP de Jenkins simultáneamente prefijando los nombres de las herramientas (por ejemplo, prod_jenkins_list_jobs, staging_jenkins_list_jobs).
Archivo de configuración
Cree un archivo config.yaml:
jenkins:
url: https://jenkins.example.com
username: your-username
apiToken: your-api-token-here
toolPrefix: prod # Optional prefix for tool names
# Optional settings
timeout: 30s
tls:
skipVerify: false
caCert: /path/to/ca.crt
retry:
maxAttempts: 3
backoff: 1s
Ejecutar con archivo de configuración:
jenkins-mcp-server --config /path/to/config.yaml
Cómo obtener su token de API de Jenkins
- Inicie sesión en Jenkins
- Haga clic en su nombre en la esquina superior derecha
- Haga clic en "Configurar"
- En "Token de API", haga clic en "Agregar nuevo token"
- Copie el token generado
Uso
Ejecutar el servidor
# Using environment variables
export JENKINS_URL=https://jenkins.example.com
export JENKINS_USERNAME=your-username
export JENKINS_API_TOKEN=your-token
jenkins-mcp-server
# Using configuration file
jenkins-mcp-server --config config.yaml
Herramientas disponibles
Trabajos
- jenkins_list_jobs - Listar todos los trabajos de Jenkins accesibles
- jenkins_get_job - Obtener información detallada del trabajo
- jenkins_trigger_build - Disparar un nuevo build (admite parámetros)
Builds
- jenkins_get_build - Obtener estado y detalles del build
- jenkins_get_build_log - Recuperar la salida de consola
- jenkins_get_running_builds - Obtener todos los builds en ejecución
- jenkins_stop_build - Detener un build en ejecución
Artefactos
- jenkins_list_artifacts - Listar artefactos del build
- jenkins_get_artifact - Descargar artefactos específicos
Cola
- jenkins_get_queue - Ver la cola de builds
- jenkins_get_queue_item - Obtener detalles del elemento de la cola
- jenkins_cancel_queue_item - Cancelar builds en cola
Vistas
- jenkins_list_views - Listar todas las vistas
- jenkins_get_view - Obtener trabajos en una vista
- jenkins_create_view - Crear una nueva vista
Servidor y nodos
- jenkins_server_health - Verificar la salud del servidor
- jenkins_list_nodes - Listar nodos de Jenkins
- jenkins_get_pipeline_script - Recuperar el contenido del Jenkinsfile
Integración con clientes MCP
Claude Desktop
Agregue a su archivo de configuración de Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"jenkins": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "JENKINS_URL=https://jenkins.example.com",
"-e", "JENKINS_USERNAME=your-username",
"-e", "JENKINS_API_TOKEN=your-api-token",
"-e", "JENKINS_TOOL_PREFIX=prod",
"ghcr.io/nithishnithi/jenkins-mcp-server:latest"
]
}
}
}
Reinicie Claude Desktop y luego pregunte:
- "Listar todos los trabajos de Jenkins"
- "Disparar un build para el trabajo main-pipeline"
- "Mostrarme el estado del último build de mi-app"
- "Obtener el log del build #42"
Solución de problemas
Problemas de conexión
- Verifique que
JENKINS_URLsea correcto y accesible - Compruebe la conectividad de red y las reglas del firewall
- Asegúrese de que Jenkins esté en ejecución
Fallos de autenticación
- Verifique que el token de API sea válido
- Compruebe que el nombre de usuario sea correcto
- Regenerar el token de API si es necesario
Errores TLS/SSL
- Establezca
JENKINS_TLS_SKIP_VERIFY=truesolo para pruebas - Proporcione un certificado CA personalizado mediante
JENKINS_CA_CERT - Actualice los certificados CA del sistema
Errores de permisos
- Verifique que el usuario de Jenkins tenga los permisos adecuados
- Compruebe los permisos a nivel de trabajo en Jenkins
Problemas de tiempo de espera
- Aumente el valor de
JENKINS_TIMEOUT - Compruebe el rendimiento del servidor de Jenkins
- Verifique la latencia de la red
El cliente MCP no detecta el servidor
- Verifique la ruta del binario en la configuración
- Compruebe que las variables de entorno estén configuradas correctamente
- Reinicie el cliente MCP después de los cambios
- Asegúrese de que el binario tenga permisos de ejecución:
chmod +x jenkins-mcp-server
Habilitar registro de depuración
export LOG_LEVEL=debug
jenkins-mcp-server
Desarrollo
Estructura del proyecto
.
├── internal/
│ ├── config/ # Configuration management
│ ├── jenkins/ # Jenkins API client
│ └── mcp/ # MCP server implementation
├── main.go # Application entry point
├── go.mod # Go module definition
├── Dockerfile # Docker image definition
└── README.md # This file
Compilación
go build -o jenkins-mcp-server .
Contribuciones
¡Las contribuciones son bienvenidas! Por favor:
- Haga un fork del repositorio
- Cree una rama de características
- Agregue pruebas para sus cambios
- Envíe una solicitud de extracción
Licencia
Licencia MIT: consulte el archivo LICENSE para más detalles.
Soporte
- Problemas: Problemas de GitHub
- Protocolo MCP: Model Context Protocol
Agradecimientos
Construido con el SDK de Go del Model Context Protocol