mcp_jenkins
Сервер Jenkins MCP. Протокол контекста модели (MCP) позволяет инструментам ИИ (например, чат-ботам) взаимодействовать с вашей настройкой Jenkins и управлять ею, т. е. извлекать информацию и изменять настройки.
Примечание: это минимальная экспериментальная версия сервера MCP Jenkins, которая в настоящее время находится на ранней стадии разработки.
Описание
Этот проект предоставляет сервер Model Context Protocol (MCP) для взаимодействия с Jenkins. Он позволяет пользователям запускать задания Jenkins, получать статусы сборки и выполнять другие операции, связанные с Jenkins, через интерфейс MCP.
Related MCP server: mcp-jenkins
Компоненты
server.py: основное серверное приложение MCP Jenkins.functions_schema.md: определяет схему для функций, предоставляемых сервером MCP Jenkins.client.py: пример клиента, демонстрирующий взаимодействие с сервером MCP Jenkins (предоставлен только для справки).functional tests: Содержит функциональные тесты для сервера MCP Jenkins.
Установка
Чтобы установить пакет, выполните:
Использование
Общие рабочие процессы
Запуск сервера
Чтобы запустить сервер MCP:
Запуск примера клиента
Чтобы запустить пример клиента:
Например, чтобы вывести список сборок для задания с именем «резервные копии» с использованием определенной модели, можно выполнить:
Примечание: Если пакет установлен с помощью pip install . , также доступен консольный скрипт mcp_jenkins_client .
Это может привести к выводу, похожему на:
Сборка и тестирование с помощью Docker
Обычный рабочий процесс разработки и тестирования заключается в том, чтобы сначала создать образ Docker, а затем выполнить тесты:
Создайте образ Docker: на этом этапе подготавливается среда, необходимая для тестирования.
./docker/buildЗапуск тестов: после завершения сборки выполните тесты.
./docker/run.tests
Такая последовательность гарантирует, что тесты будут проводиться на последней сборке в согласованной среде Docker.
Развертывание тестовой среды
Чтобы развернуть локальный тестовый экземпляр Jenkins (без аутентификации, только для функциональных тестов):
Подключение к существующему экземпляру Jenkins
Чтобы использовать сервер MCP Jenkins с существующим экземпляром Jenkins, вам необходимо настроить следующие переменные среды:
JENKINS_URL: Полный URL вашего экземпляра Jenkins (например,http://your-jenkins-host:8080). Это обязательно .JENKINS_USER: (Необязательно) Ваше имя пользователя Jenkins, если требуется аутентификация.JENKINS_API_TOKEN: (Необязательно) Ваш токен Jenkins API. Он должен быть предоставлен вместе сJENKINS_USER, если используется аутентификация. Вы можете сгенерировать токен API на странице конфигурации пользователя Jenkins (<Jenkins URL>/me/configure).MCP_API_KEY: Секретный ключ API для защиты этого сервера MCP. Запросы к серверу MCP должны будут включать этот ключ в заголовокX-API-Key. Это необходимо , если толькоDEBUG_MODEне установлен вtrue.DEBUG_MODE: Установите значениеtrue, чтобы запустить сервер MCP в режиме отладки, который обходит требованиеMCP_API_KEYи обеспечивает более подробное ведение журнала. Не используйте в производстве.
Пример конфигурации (Bash):
После настройки этих переменных среды вы можете запустить сервер MCP с помощью скрипта Docker:
Затем сервер MCP попытается подключиться к указанному вами экземпляру Jenkins.
Интеграция OpenWebUI
Файл open-webui/open_webui_interface.py содержит пример интеграции этого сервера MCP Jenkins с экземпляром OpenWebUI.
Чтобы использовать его:
В интерфейсе OpenWebUI перейдите в раздел для добавления или настройки инструментов.
Создайте новый инструмент.
Скопируйте все содержимое файла
open-webui/open_webui_interface.pyи вставьте его в конфигурацию инструмента в OpenWebUI.Важно : Вам необходимо будет настроить параметры подключения в вставленном коде, а именно:
MCP_JENKINS_SERVER_URL: Установите эту переменную среды в вашей среде OpenWebUI на URL-адрес вашего работающего сервера MCP Jenkins (например,http://localhost:5000). Скрипт по умолчанию используетhttp://localhost:5000если переменная не установлена.MCP_API_KEY: Если ваш сервер MCP Jenkins настроен на запрос ключа API, убедитесь, что эта переменная среды установлена в вашей среде OpenWebUI. Скрипт выведет предупреждение, если он не будет найден, но все равно попытается выполнить запросы.
После настройки инструменты, определенные в open_webui_interface.py (например, list_jobs , trigger_build , get_build_status ), должны стать доступными для использования в вашем интерфейсе чата OpenWebUI.
Лицензия
Данный проект лицензирован по лицензии MIT.