Jenkins

by gcorroto

Not rated
GitHub

About

A server for integrating with Jenkins CI/CD to manage and trigger builds.

Details

Author
gcorroto
Categories
Developer Tools

Setup

Install Jenkins in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/gcorroto/mcp-jenkins

Follow the installation instructions in the repository README, then restart your MCP client.

MCP server para operar Jenkins desde clientes compatibles con Model Context Protocol, como VS Code, Claude Desktop u otros agentes. Permite consultar jobs, lanzar builds, esperar a que terminen, revisar logs, inspeccionar stages de pipelines, gestionar approvals, consultar artifacts/cobertura y administrar jobs sin entrar en la UI de Jenkins.

- Listar jobs, multibranch projects y ramas.
- Consultar estado, configuracion y ultimo build de un job.
- Lanzar builds con o sin parametros.
- Esperar de forma bloqueante hasta que un build termine.
- Ver historial de builds, logs, stages, nodos y acciones pendientes.
- Detener builds con confirmacion explicita.
- Hacer rebuild/replay si Jenkins tiene los endpoints/plugins necesarios.
- Crear, actualizar, habilitar, deshabilitar o borrar jobs usando confirmaciones de seguridad.
- Consultar reportes de cobertura cuando el job los publique.

- Node.js 18 o superior.
- URL de Jenkins accesible desde la maquina donde corre el cliente MCP.
- Usuario de Jenkins con permisos suficientes.
- API token o password de Jenkins.

Usa API tokens cuando sea posible. No guardes credenciales reales en repositorios ni compartas configuraciones con secretos.

{ "servers": { "jenkins": { "type": "stdio", "command": "npx", "args": ["-y", "--package", "@grec0/mcp-jenkins@latest", "mcp-jenkins"], "env": { "JENKINS_URL": "https://tu-jenkins.com/jenkins", "JENKINS_USERNAME": "tu-usuario", "JENKINS_PASSWORD": "tu-api-token" } } } }

Para fijar una version concreta, cambia@latestpor una version publicada:

"args": ["-y", "--package", "@grec0/mcp-jenkins@0.2.2", "mcp-jenkins"]
{ "servers": { "jenkins": { "type": "stdio", "command": "mcp-jenkins", "env": { "JENKINS_URL": "https://tu-jenkins.com/jenkins", "JENKINS_USERNAME": "tu-usuario", "JENKINS_PASSWORD": "tu-api-token" } } } }

La mayoria de herramientas nuevas usanfullName, que es la ruta logica del job en Jenkins.

Grec0AI_backend_sb Grec0AI_backend_sb/main folder/backend/main

En un multibranch project, normalmente el primer nivel es el proyecto y el segundo nivel es la rama. Por ejemplo, si Jenkins muestra:

Las tools antiguas usanappybranch. Siguen disponibles por compatibilidad, pero para uso nuevo se recomienda usar los managers basados enfullName.

- Usajenkins_job_managerpara jobs y pipelines.
- Usajenkins_build_managerpara ejecuciones/builds.
- Usajenkins_wait_for_buildcuando un agente deba esperar a Jenkins antes de continuar.
- Usajenkins_pipeline_monitorpara stages, nodos e inputs pendientes.
- Usa las toolsjenkins_get_*,jenkins_start_jobyjenkins_stop_jobsi ya tienes prompts antiguos basados enappybranch.

{ "action": "list", "limit": 20 }
{ "action": "list", "folder": "Grec0AI_backend_sb", "limit": 20 }
{ "action": "start", "fullName": "Grec0AI_backend_sb/main" }

- Lista builds para identificar el numero iniciado.

{ "action": "list", "fullName": "Grec0AI_backend_sb/main", "limit": 5 }
{ "fullName": "Grec0AI_backend_sb/main", "buildNumber": 298, "pollIntervalSeconds": 10, "timeoutSeconds": 1800, "includeStages": true }

- Solo despues de recibircompleted: true, revisa logs, stages o ejecuta validaciones dependientes del build.

{ "action": "console", "fullName": "Grec0AI_backend_sb/main", "buildNumber": 298, "limit": 8000 }
{ "action": "steps", "fullName": "Grec0AI_backend_sb/main", "buildNumber": 298 }
{ "action": "pending_inputs", "fullName": "Grec0AI_backend_sb/main", "buildNumber": 298 }

- Envia la decision usando laproceedUrloabortUrldevuelta por Jenkins.

{ "action": "submit_input", "decisionUrl": "https://tu-jenkins.com/jenkins/job/.../proceedEmpty" }

Gestiona jobs y pipelines usando rutasfullName.

{ "action": "list", "query": "backend", "limit": 20 }
{ "action": "get", "fullName": "Grec0AI_backend_sb/main" }
{ "action": "get_config", "fullName": "Grec0AI_backend_sb/main" }
{ "action": "update_config", "fullName": "sandbox/test-pipeline", "configXml": "<flow-definition>...</flow-definition>", "confirmName": "sandbox/test-pipeline" }
{ "action": "delete", "fullName": "sandbox/test-pipeline", "confirmName": "sandbox/test-pipeline" }
{ "action": "list", "fullName": "Grec0AI_backend_sb/main", "limit": 10 }
{ "action": "start", "fullName": "Grec0AI_backend_sb/main", "parameters": { "DEPLOY_ENV": "dev" } }
{ "action": "wait", "fullName": "Grec0AI_backend_sb/main", "buildNumber": 298, "pollIntervalSeconds": 10, "timeoutSeconds": 1800, "includeStages": true }
{ "action": "console", "fullName": "Grec0AI_backend_sb/main", "buildNumber": 298, "limit": 12000 }
{ "action": "stop", "fullName": "Grec0AI_backend_sb/main", "buildNumber": 298, "confirmBuild": 298 }

Tool dedicada para agentes que necesitan bloquear el flujo hasta que Jenkins termine un build. La llamada responde cuando el build finaliza, cuando se alcanza el timeout o cuando Jenkins entra en una pausa manual (input) que requiere aprobación.

{ "fullName": "Grec0AI_backend_sb/main", "buildNumber": 298, "pollIntervalSeconds": 10, "timeoutSeconds": 1800, "includeStages": true }
{ "fullName": "Grec0AI_backend_sb/main", "buildNumber": 298, "completed": true, "timedOut": false, "waitedSeconds": 120, "pollCount": 13, "result": "SUCCESS", "build": { "number": 298 }, "stages": [] }

Si Jenkins queda pausado esperando aprobación manual, la tool devuelvewaitingForInput: true, el objetopendingInputconproceedUrl/abortUrly unnextStepcon la llamada exacta ajenkins_submit_input_action.

SitimedOutestrue, el build seguía corriendo cuando se alcanzó el timeout.

Inspecciona detalles especificos de pipelines.

{ "action": "steps", "fullName": "Grec0AI_backend_sb/main", "buildNumber": 296 }
{ "action": "node", "fullName": "Grec0AI_backend_sb/main", "buildNumber": 296, "nodeId": "20" }
{ "action": "pending_inputs", "fullName": "Grec0AI_backend_sb/main", "buildNumber": 298 }
{ "action": "submit_input", "decisionUrl": "https://tu-jenkins.com/jenkins/job/.../proceedEmpty" }

Estas tools siguen disponibles para prompts antiguos o flujos simples basados enappybranch.

{ "app": "mi-app", "branch": "main" }

Algunas acciones pueden cambiar o destruir configuracion en Jenkins. El MCP exige confirmacion explicita.

Recomendacion: prueba primerocreate_pipeline,update_configydeleteen un job temporal.

Funcionalidad disponible con Jenkins core:

- Listar jobs.
- Consultar job/build.
- Iniciar builds.
- Detener builds.
- Leer logs.
- Leer y actualizarconfig.xmlsi el usuario tiene permisos.
- Listar artifacts archivados.

Plugins recomendados para funcionalidad completa:

ConsultaJENKINS_REQUIREMENTS.mdpara detalle de plugins, endpoints y errores comunes.

- Las tools devuelven JSON serializado como contenido de texto MCP.
- consolepuede limitar logs conlimitpara evitar respuestas enormes.
- artifactsdevuelve metadata y URLs; no descarga binarios por defecto.
- coveragedepende mucho de como el job publique sus reportes.
- jenkins_wait_for_buildmantiene la llamada abierta hasta fin de build, timeout o pausa manual con input pendiente; ajustatimeoutSecondspara builds largos.

ERR_MODULE_NOT_FOUNDconzod-to-json-schema

Cannot find module '.../zod-to-json-schema/dist/esm/parsers/record.js'

usa una version reciente del paquete y preferiblemente arranca con--package:

"args": ["-y", "--package", "@grec0/mcp-jenkins@latest", "mcp-jenkins"]

Sinpxquedo con una instalacion temporal contaminada, borra la carpeta_npxque aparece en el stacktrace o limpia el cache de npm.

RevisaJENKINS_USERNAME,JENKINS_PASSWORD, API token y permisos del usuario en Jenkins.

El job puede no ser Pipeline o puede faltar el pluginpipeline-rest-api.

{ "action": "list", "limit": 50 }

Despues lista dentro del multibranch project:

{ "action": "list", "folder": "nombre-del-proyecto", "limit": 50 }

El build seguía corriendo. SubetimeoutSeconds, revisa logs conconsoleo consulta el build conjenkins_build_manager get. Si la respuesta incluyewaitingForInput: true, aprueba o aborta conjenkins_submit_input_actionusando ladecisionUrldevuelta.

Esta seccion es solo para quienes quieran modificar el paquete.

npm install npm run build npm test npm run prerelease

No publiques una version nueva sin ejecutarnpm run prerelease.

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

Create crafted UI components inspired by the best 21st.dev design engineers.

Bring agent evaluations, observability, and synthetic test set generation directly into your IDE for free with Galileo's new MCP server

An MCP server to help AI assistants to answer questions and generate AccelByte Extend SDK code more effectively .

MCP server for AI Diagram Maker — generate beautiful software engineering diagrams directly inside Cursor, Claude Desktop, Claude Code, or any MCP-compatible AI agent

ALAPI MCP Tools,Call hundreds of API interfaces via MCP

AI-powered SVG animation generator that transforms static files into animated SVG components using the Allyson platform

MCP server that gives AI assistants on-demand access to 1,500+ amCharts docs, ~300 code examples, and 1000+ class API references.

APIMatic MCP Server is used to validate OpenAPI specifications using APIMatic. The server processes OpenAPI files and returns validation summaries by leveraging APIMatic’s API.

One shared context layer for AI agents and humans — live API specs, DB schemas, and versioned contracts across repos so every agent and teammate works from the same source of truth.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.