Skip to main content
Glama

Jenkins MCP

MCP-сервер на основе Jenkins REST API, нацеленный на совместимость с Jenkins 2.332.2, 2.356 и последующими версиями.

Он не устанавливает плагины Jenkins, поэтому не ограничен минимальной версией ядра Jenkins, требуемой официальным плагином mcp-server. Один MCP-сервер может одновременно управлять несколькими экземплярами Jenkins в конфигурации и выбирать целевой экземпляр с помощью jenkins_name.

Реализованные возможности

  • Запрос версии Jenkins и совместимых возможностей

  • Запрос текущего аутентифицированного пользователя

  • Запрос заданий в корневом каталоге или в папке

  • Запрос заданий и сборок

  • Получение журналов сборки с ограничением количества возвращаемых строк

  • Запрос очереди, элементов очереди и узлов

  • Запуск сборки, остановка сборки, отмена сборки в очереди

  • Аутентификация по имени пользователя + API-токену

  • Автоматическое получение и повторная попытка CSRF Crumb Jenkins

  • По умолчанию только чтение, операции записи требуют явной установки read_only: false

Related MCP server: Jenkins MCP Server

Установка

Рекомендуется использовать Python 3.10 или выше:

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[dev]'

Конфигурация нескольких экземпляров Jenkins

Создайте jenkins-mcp.json:

{
  "instances": [
    {
      "name": "jenkins-233",
      "base_url": "https://jenkins-233.example.com",
      "username": "mcp-user",
      "api_token": "replace-me",
      "read_only": true,
      "verify_ssl": true,
      "timeout_seconds": 30,
      "max_log_lines": 2000
    },
    {
      "name": "jenkins-356",
      "base_url": "https://jenkins-356.example.com/jenkins",
      "username": "mcp-user",
      "api_token": "replace-me",
      "read_only": false
    }
  ],
  "server": {
    "transport": "stdio",
    "log_level": "INFO"
  }
}

Запуск:

jenkins-mcp --config jenkins-mcp.json

В производственной среде рекомендуется внедрять конфигурацию через переменные окружения или системы управления секретами, не отправляйте API-токены в Git.

Конфигурация одного экземпляра Jenkins через переменные окружения

Также можно использовать следующие переменные:

export JENKINS_URL='https://jenkins.example.com'
export JENKINS_USERNAME='mcp-user'
export JENKINS_API_TOKEN='replace-me'
export JENKINS_READ_ONLY='true'
jenkins-mcp

Для нескольких экземпляров можно поместить массив JSON в JENKINS_INSTANCES_JSON или использовать JENKINS_CONFIG_FILE для указания на файл конфигурации JSON.

Конфигурация MCP-клиента

Пример stdio:

{
  "mcpServers": {
    "jenkins": {
      "command": "/absolute/path/to/.venv/bin/jenkins-mcp",
      "args": ["--config", "/absolute/path/to/jenkins-mcp.json"]
    }
  }
}

При вызове инструмента используйте jenkins_name, например:

list_jobs(jenkins_name="jenkins-233")
get_build_log(jenkins_name="jenkins-356", job_name="team/app", build_number=123)

Стратегия совместимости версий

Сервис определяет версию через заголовок ответа X-Jenkins. 2.332.2 — текущая минимальная базовая линия совместимости, 2.356 использует те же базовые возможности REST API. Различия, связанные с версиями, помещаются в модель возможностей в versioning.py, а уровень инструментов MCP не содержит прямых проверок версий.

Базовый REST API лучше подходит для использования в разных версиях, чем API плагинов Jenkins, но функции, специфичные для плагинов, расширенная информация о конвейерах и управление учетными данными не входят в текущие гарантии совместимости между версиями.

Разработка

pytest
ruff check .

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables managing Jenkins operations like listing jobs, triggering builds, and checking build statuses through a configurable MCP server.
    3
    10
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for interacting with a Jenkins CI/CD server. Allows you to trigger jobs, check build statuses, and manage your Jenkins instance through MCP.
    30 npm
    14
    Apache 2.0