mcp_jenkins
Un servidor MCP de Jenkins. El Protocolo de Contexto de Modelo (MCP) permite que las herramientas de IA (como los chatbots) se comuniquen con tu configuración de Jenkins y la controlen, es decir, que recuperen información y modifiquen la configuración.
Nota: Esta es una versión experimental mínima del servidor Jenkins MCP y actualmente se encuentra en desarrollo inicial.
Descripción
Este proyecto proporciona un servidor de Protocolo de Contexto de Modelo (MCP) para interactuar con Jenkins. Permite a los usuarios activar trabajos de Jenkins, obtener estados de compilación y realizar otras operaciones relacionadas con Jenkins a través de la interfaz MCP.
Componentes
server.py
: la aplicación principal del servidor Jenkins de MCP.functions_schema.md
: define el esquema para las funciones expuestas por el servidor Jenkins de MCP.client.py
: un cliente de ejemplo que demuestra cómo interactuar con el servidor Jenkins de MCP (se proporciona solo como referencia).functional tests
: contiene pruebas funcionales para el servidor Jenkins de MCP.
Instalación
Para instalar el paquete, ejecute:
Uso
Flujos de trabajo comunes
Ejecución del servidor
Para ejecutar el servidor MCP:
Ejecución del cliente de ejemplo
Para ejecutar el cliente de ejemplo:
Por ejemplo, para enumerar las compilaciones para un trabajo llamado "copias de seguridad" que utilizan un modelo específico, puede ejecutar:
Nota: Si el paquete se instala mediante pip install .
, el script de consola mcp_jenkins_client
también está disponible.
Esto podría producir un resultado similar a:
Construyendo y probando con Docker
Un flujo de trabajo común para el desarrollo y las pruebas es primero construir la imagen de Docker y luego ejecutar las pruebas:
- Construir la imagen de Docker: este paso prepara el entorno necesario para las pruebas.
- Ejecutar pruebas: una vez completada la compilación, ejecute las pruebas.
Esta secuencia garantiza que las pruebas se realicen contra la última compilación en un entorno Dockerizado consistente.
Implementación de un entorno de prueba
Para implementar una instancia de prueba local de Jenkins (sin autenticación, solo para pruebas funcionales):
Conexión a una instancia de Jenkins existente
Para utilizar el servidor Jenkins MCP con una instancia de Jenkins existente, debe configurar las siguientes variables de entorno:
JENKINS_URL
: La URL completa de su instancia de Jenkins (p. ej.,http://your-jenkins-host:8080
). Este campo es obligatorio .JENKINS_USER
: (opcional) Su nombre de usuario de Jenkins si se requiere autenticación.JENKINS_API_TOKEN
: (Opcional) Su token de API de Jenkins. Debe proporcionarse junto conJENKINS_USER
si se utiliza autenticación. Puede generar un token de API en la página de configuración de su usuario de Jenkins (<Jenkins URL>/me/configure
).MCP_API_KEY
: Una clave API secreta para proteger este servidor MCP. Las solicitudes al servidor MCP deberán incluir esta clave en el encabezadoX-API-Key
. Esto es obligatorio a menos queDEBUG_MODE
se configure comotrue
.DEBUG_MODE
: Configúrelo comotrue
para ejecutar el servidor MCP en modo de depuración, lo que omite el requisitoMCP_API_KEY
y proporciona un registro más detallado. No lo use en producción.
Ejemplo de configuración (Bash):
Una vez configuradas estas variables de entorno, puedes ejecutar el servidor MCP mediante el script Docker:
Luego, el servidor MCP intentará conectarse a la instancia de Jenkins especificada.
Integración con OpenWebUI
El archivo open-webui/open_webui_interface.py
proporciona un ejemplo de cómo integrar este servidor Jenkins MCP con una instancia de OpenWebUI.
Para usarlo:
- En su interfaz OpenWebUI, navegue a la sección para agregar o configurar herramientas.
- Crear una nueva herramienta.
- Copie todo el contenido del archivo
open-webui/open_webui_interface.py
y péguelo en la configuración de la herramienta en OpenWebUI. - Importante : Deberás ajustar los parámetros de conexión dentro del código pegado, específicamente:
MCP_JENKINS_SERVER_URL
: Establezca esta variable de entorno en su entorno OpenWebUI con la URL del servidor MCP Jenkins en ejecución (p. ej.,http://localhost:5000
). El script tomahttp://localhost:5000
de forma predeterminada si no se establece la variable.MCP_API_KEY
: Si su servidor Jenkins de MCP está configurado para requerir una clave API, asegúrese de que esta variable de entorno esté definida en su entorno OpenWebUI. El script mostrará una advertencia si no la encuentra, pero intentará realizar solicitudes.
Una vez configuradas, las herramientas definidas en open_webui_interface.py
(por ejemplo, list_jobs
, trigger_build
, get_build_status
) deberían estar disponibles para su uso dentro de su interfaz de chat OpenWebUI.
Licencia
Este proyecto está licenciado bajo la licencia MIT.
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Un servidor de Protocolo de contexto de modelo (MCP) que permite que herramientas de IA como los chatbots interactúen con Jenkins y lo controlen, lo que permite a los usuarios activar trabajos, verificar estados de compilación y realizar otras operaciones de Jenkins a través del lenguaje natural.
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that enables AI assistants to interact with Jenkins CI/CD servers, providing tools to check build statuses, trigger builds, and retrieve build logs.Last updated -38JavaScriptMIT License
- AsecurityAlicenseAqualityA server that uses the Model Context Protocol (MCP) to allow AI agents to safely execute shell commands on a host system.Last updated -1762TypeScriptMIT License
- -securityAlicense-qualityA Model Context Protocol (MCP) server that enables real-time, interactive AI chat with Selector AI through a streaming-capable server and Docker-based client communicating via stdin/stdout.Last updated -1PythonApache 2.0
- -securityAlicense-qualityThe Model Context Protocol (MCP) Jenkins integration is an open-source implementation that bridges Jenkins with AI language models following Anthropic's MCP specification. This project enables secure, contextual AI interactions with Jenkins tools while maintaining data privacy and security.Last updated -25PythonMIT License