imatza-rh/mcp-zuul

imatza-rh/mcp-zuul

от imatza-rh
MCP-сервер для Zuul CI, упрощающий анализ сбоев сборок. Позволяет искать ошибки в логах, отслеживать живые конвейеры и выявлять нестабильные задачи без переключения между UI. Полезен разработчикам и DevOps, работающим с Zuul.

mcp-zuul

PyPI Python License CI MCP Downloads codecov Listed on AiList

An MCP server for Zuul CI. Debug build failures by asking questions, not clicking through web UIs.

If mcp-zuul saves you a debugging session, a ⭐ star helps others find it.

One command, no install:

claude mcp add zuul -e ZUUL_URL=https://your-zuul.example.com -- uvx mcp-zuul

44 tools, 3 prompts, 3 resources — covering builds, logs, pipelines, jobs, infrastructure, and live status. Works with Claude Code, Claude Desktop, Cursor, Codex, Windsurf, and any MCP-compatible client.

You:   "Why did the latest gate job fail?"
Claude: → get_build_failures(uuid="abc123")
        → get_build_log(uuid="abc123", log_name="controller/logs/ci_script_008_run.log",
                        grep="error|failed|timed out", context=2)

        Root cause: cert-manager pod in Completed state blocked oc wait.
        Confidence: Confirmed — verified in ci_script_008_run.log:325-329.

Why mcp-zuul?

mcp-zuul Raw Zuul API Zuul web UI
Failure analysis Structured — task, host, error, rc Raw JSON, parse yourself Click through log pages
Log search Regex + context lines + line ranges Not available Browser Ctrl+F
Flaky detection Automatic pass/fail statistics Manual query + calculate Not available
Test results Parsed JUnit XML with failure details Not available External link
Anomaly detection ML-based via LogJuicer Not available Not available
Live status Job progress, ETA, pre-failure alerts Polling API Manual refresh
Multi-instance One config entry per Zuul Different base URLs Different browser tabs
Инструменты были проиндексированы:
autohold_createидемпотентныйвнешний мир

Создаёт запрос autohold — удерживает узлы после сбоя задания для отладки. Требует ZUUL_READ_ONLY=false. Аргументы: project: Название проекта (например, "org/repo") job: Название задания, для которого удерживаются узлы tenant: Тенант (по умолчанию из окружения) reason: Причина удержания count: Количество неудачных сборок для удержания (по умолчанию 1) node_hold_expiration: Время удержания узлов в секундах (по умолчанию 86400 = 24ч) change: Фильтр изменения (необязательно) ref: Фильтр ref (необязательно)

Создаёт Autohold

Параметры
  • changestring
  • countinteger
  • jobstringобязательный
  • node_hold_expirationinteger
  • projectstringобязательный
  • reasonstring
  • refstring
  • tenantstring
autohold_deleteидемпотентныйвнешний мир

Удаляет запрос autohold. Требует ZUUL_READ_ONLY=false. Аргументы: autohold_id: Идентификатор запроса Autohold (из list_autoholds) tenant: Tenant (по умолчанию из env)

Удаляет Autohold

Параметры
  • autohold_idstringобязательный
  • tenantstring
batch_diagnoseтолько чтениеидемпотентныйвнешний мир

Классифицирует несколько неудачных сборок за один вызов - возвращает таблицу триажа. Запускает diagnose_build(brief=True) параллельно для каждого UUID и возвращает компактную сводку классификации. Используйте вместо того, чтобы вызывать diagnose_build N раз при сортировке нескольких сбоев. Аргументы: uuids: Список UUID сборок для диагностики (макс. 20) tenant: Тенант (по умолчанию из окружения)

Пакетная диагностика сборок

Параметры
  • tenantstring
  • uuidsstring[]обязательный
browse_build_logsтолько чтениеидемпотентныйвнешний мир

Просматривает или загружает файлы из каталога логов сборки. Без пути: выводит корневой каталог логов. С путём, заканчивающимся на '/': выводит содержимое указанного подкаталога. С путём к файлу: загружает и возвращает содержимое файла (не более 512 КБ). Для фильтрованной загрузки больших файлов используйте get_build_log с log_name и grep — он поддерживает поиск по регулярным выражениям и диапазоны строк. Аргументы: uuid: UUID сборки tenant: Имя тенанта (используется значение по умолчанию, если пусто) path: Относительный путь внутри каталога логов (например "logs/controller/", "zuul-info/inventory.yaml", "logs/hypervisor/ci-framework-data/artifacts/") url: URL сборки Zuul (альтернатива uuid + tenant) max_lines: Ограничить содержимое файла первыми N строками (0 = без ограничения). Ответ включает количество total_lines для пагинации.

Просматривает лог-файлы

Параметры
  • direct_log_urlstring
  • max_linesinteger
  • pathstring
  • tenantstring
  • urlstring
  • uuidstring
check_healthтолько чтениеидемпотентныйвнешний мир

Проверяет подключение к Zuul API и статус аутентификации. Используйте это, чтобы убедиться, что сервер работает после запуска или когда вызовы инструментов начинают давать сбой. Повторная аутентификация выполняется автоматически через обёртку api(), если сессия Kerberos истекла.

Health Check

Параметры

Без параметров.

diagnose_and_testтолько чтениеидемпотентныйвнешний мир

Единый вызов диагностики и результатов тестов - объединяет diagnose_build и get_build_test_results. Один раз получает метаданные сборки, затем параллельно выполняет анализ ошибок и разбор JUnit-тестов. Экономит один сетевой запрос по сравнению с вызовом обоих инструментов по отдельности. Аргументы: uuid: UUID сборки tenant: Тенант (по умолчанию из окружения) url: URL сборки Zuul (альтернатива uuid + tenant) brief: Краткая диагностика (по умолчанию true). Установите false для полных деталей ошибки.

Диагностирует с помощью тестов.

Параметры
  • briefboolean
  • tenantstring
  • urlstring
  • uuidstring
diagnose_buildтолько чтениеидемпотентныйвнешний мир

Диагностика ошибок за один вызов — структурированные ошибки + контекст из журнала. Объединяет get_build_failures (какая задача упала, сообщение об ошибке) с целевым поиском по логу (окружающий контекст из job-output.txt). Возвращает всё необходимое для понимания ошибки за один вызов. Включает ref_url/project/change и files_in_failure, чтобы потребители могли проверить, относятся ли падающие файлы к изменению или уже существовали ранее. Используйте этот инструмент вместо раздельных вызовов get_build_failures и get_build_log. Args: uuid: UUID сборки tenant: Имя тенанта (используется стандартное, если пусто) url: URL сборки Zuul (альтернатива uuid + tenant)

Диагностирует сбой сборки

Параметры
  • briefboolean
  • tenantstring
  • urlstring
  • uuidstring
find_flaky_jobsтолько чтениеидемпотентныйвнешний мир

Обнаруживает нестабильные задания, анализируя историю последних сборок на предмет перемежающихся сбоев. Получает последние сборки для задания и вычисляет статистику успехов/неудач. Задание со смешанными результатами SUCCESS/FAILURE и частотой отказов >20% скорее всего нестабильно. Возвращает количество по каждому результату и частоту отказов. Аргументы: job_name: Имя задания для анализа tenant: Имя тенанта (используется значение по умолчанию, если не указано) project: Фильтр по конкретному проекту pipeline: Фильтр по конкретному пайплайну limit: Количество последних сборок для анализа (по умолчанию 20, максимум 100)

Обнаружение нестабильных заданий

Параметры
  • detailboolean
  • job_namestringобязательный
  • limitinteger
  • pipelinestring
  • projectstring
  • tenantstring
get_autoholdтолько чтениеидемпотентныйвнешний мир

Получает детали конкретного запроса autohold. Показывает все подробности, включая удерживаемые узлы, время и проект/задачу, которая вызвала удержание. Аргументы: autohold_id: ID запроса autohold (из list_autoholds) tenant: Имя арендатора (используется значение по умолчанию, если пусто)

Детали Autohold

Параметры
  • autohold_idstringобязательный
  • tenantstring
get_badgeтолько чтениеидемпотентныйвнешний мир

Получает бейдж статуса для последнего результата сборки проекта. Возвращает URL бейджа (SVG), который можно встроить в файлы README для отображения текущего статуса CI. Возвращает информацию с кодом 404, если набор сборок не найден. Аргументы: project: Имя проекта (например, "org/repo") tenant: Имя тенанта (используется значение по умолчанию, если не указано) pipeline: Фильтр по пайплайну (необязательно) branch: Фильтр по ветке (необязательно)

Значок проекта

Параметры
  • branchstring
  • pipelinestring
  • projectstringобязательный
  • tenantstring
get_buildтолько чтениеидемпотентныйвнешний мир

Получает детали сборки: URL лога, nodeset, артефакты, тайминги, детали ошибки. Аргументы: uuid: UUID сборки (полный или префикс из list_builds) tenant: Tenant (по умолчанию из env) url: URL сборки Zuul (альтернатива uuid + tenant) brief: компактный ответ, содержащий только uuid, job, result, pipeline, duration

Сведения о сборке

Параметры
  • briefboolean
  • tenantstring
  • urlstring
  • uuidstring
get_build_anomaliesтолько чтениеидемпотентныйвнешний мир

Обнаруживает аномальные строки логов с помощью ML-анализа LogJuicer. Сравнивает логи неудачных сборок с успешными эталонами, чтобы найти необычные строки. Требует, чтобы LOGJUICER_URL был настроен. Принимает UUID сборки или URL сборки Zuul. Аргументы: uuid: UUID сборки tenant: Имя тенанта (используется значение по умолчанию, если не указано) url: URL сборки Zuul (альтернатива uuid + tenant)

Обнаружение аномалий в логах

Параметры
  • tenantstring
  • urlstring
  • uuidstring
get_build_failuresтолько чтениеидемпотентныйвнешний мир

Анализирует неудачную сборку и сообщает, какая задача не удалась, на каком хосте, с сообщением об ошибке и кодом возврата. Извлекает точные данные об ошибке из структурированного job-output.json Zuul. Для большинства случаев используйте diagnose_build, который включает все эти данные, а также классификацию ошибок, контекст журнала и сведения о времени выполнения. Ответы об ошибках содержат ref_url/project/change и files_in_failure (пути к файлам, извлечённые из вывода ошибок). Используйте их, чтобы проверить, являются ли отказавшие файлы частью изменения, прежде чем делать вывод, связана ли ошибка с изменением или это существующая проблема в репозитории. Примечание: задачи Ansible с no_log: true будут иметь пустые поля msg в failed_tasks. Используйте get_build_log с grep, чтобы найти реальный текст ошибки в сырых логах. Аргументы: uuid: UUID сборки tenant: Имя тенанта (по умолчанию используется пустое) url: URL сборки Zuul (альтернатива uuid + tenant)

Анализ ошибок сборки

Параметры
  • tenantstring
  • urlstring
  • uuidstring
get_build_logтолько чтениеидемпотентныйвнешний мир

Читает, ищет и перемещается по файлам логов сборки с помощью grep, диапазонов строк и сводки ошибок. Аргументы: uuid: UUID сборки tenant: Имя тенанта (использует значение по умолчанию, если пусто) log_name: Файл лога для чтения (по умолчанию "job-output.txt"). Для других файлов используйте путь относительно log_url сборки, например "logs/controller/ci-framework-data/logs/ci_script_008_run.log" mode: "summary" (по умолчанию: хвост + строки с ошибками) или "full" (постраничные блоки) lines: Для summary: количество строк в хвосте (по умолчанию 100). Для full: строка смещения начала. start_line: Читать с этого номера строки (нумерация с 1). Если задан вместе с end_line, возвращает именно этот диапазон (переопределяет mode). end_line: Читать до этого номера строки включительно (нумерация с 1). grep: Регулярное выражение Python для фильтрации строк лога (переопределяет mode). Используйте | для OR: "error|failed|timeout". НЕ используйте обратный слэш-пайп. context: Строк контекста до и после каждого совпадения grep (по умолчанию 0, максимум 10) url: URL сборки Zuul (альтернатива uuid + tenant)

Читает лог сборки

Параметры
  • contextinteger
  • direct_log_urlstring
  • end_lineinteger
  • filter_noiseboolean
  • grepstring
  • linesinteger
  • log_namestring
  • max_matchesinteger
  • modestring
  • start_lineinteger
  • tenantstring
  • urlstring
  • uuidstring
get_buildsetтолько чтениеидемпотентныйвнешний мир

Получает полные сведения о сборке: все сборки, результаты, события и время. Аргументы: uuid: UUID сборки tenant: Название тенанта (используется значение по умолчанию, если не указано) url: URL сборки Zuul (альтернатива uuid + tenant)

Сведения о наборе сборок

Параметры
  • briefboolean
  • tenantstring
  • urlstring
  • uuidstring
get_build_test_resultsтолько чтениеидемпотентныйвнешний мир

Парсит результаты тестов в формате JUnit XML из директории логов сборки. Находит файлы с результатами тестов через zuul-manifest.json и парсит JUnit XML, возвращая структурированные количества пройденных/упавших/пропущенных тестов с деталями об ошибках. Работает с tempest, tobiko и любой тестовой средой, которая выводит JUnit XML. Args: uuid: UUID сборки tenant: Имя тенанта (используется значение по умолчанию, если пусто) url: URL сборки Zuul (альтернатива uuid + tenant)

Результаты тестов

Параметры
  • failures_onlyboolean
  • tenantstring
  • urlstring
  • uuidstring
get_build_timesтолько чтениеидемпотентныйвнешний мир

Тренды длительности сборок — замедляется ли задача? Вычисляет среднее, минимум и максимум из результатов. Возвращает длительности сборок с данными о времени для анализа трендов. Используйте это для выявления регрессий производительности или задач, склонных к таймаутам. Примечание: Эта конечная точка возвращает ВСЕ результаты (SUCCESS, FAILURE и т.д.) и не поддерживает фильтрацию по результату. Для отфильтрованных средних (например, только SUCCESS) используйте get_job_durations. Аргументы: tenant: Имя тенанта (используется значение по умолчанию, если пусто) job_name: Фильтр по имени задачи project: Фильтр по имени проекта pipeline: Фильтр по имени пайплайна branch: Фильтр по имени ветки limit: Максимальное количество результатов, 1-100 (по умолчанию 20) skip: Смещение для пагинации

Тренды длительности сборки

Параметры
  • branchstring
  • detailboolean
  • job_namestring
  • limitinteger
  • pipelinestring
  • projectstring
  • skipinteger
  • tenantstring
get_change_statusтолько чтениеидемпотентныйвнешний мир

Статус конвейера для конкретного change или PR/MR. Когда в конвейере: статус в реальном времени с заданиями, затраченным временем, buildset UUID. Когда не в конвейере: автоматически получает последний завершённый buildset. Аргументы: change: номер change, GitHub ref (refs/pull/N/head) или GitLab ref tenant: Tenant (по умолчанию из env) url: Zuul change status URL (альтернатива change + tenant) brief: урезать до основ для мониторинга (примерно на 50% меньше). Используйте для повторных опросов.

Изменяет статус

Параметры
  • briefboolean
  • changestring
  • tenantstring
  • urlstring
get_componentsтолько чтениеидемпотентныйвнешний мир

Показывает компоненты системы Zuul: планировщики, исполнители, объединители, веб-серверы. Проверяет, исправен ли Zuul. Показывает состояние компонента (работает/приостановлен), версию и имя хоста.

Системные компоненты

Параметры

Без параметров.

get_config_errorsтолько чтениеидемпотентныйвнешний мир

Получает ошибки конфигурации Zuul - почему задания не запускаются, сломанные конфиги, отсутствующие ссылки. Это первый инструмент для проверки, когда задание не запускается или проект ведет себя неожиданно. Возвращает синтаксические ошибки, отсутствующие ссылки и проблемы с доступом к репозиторию для тенанта или конкретного проекта. Аргументы: tenant: Имя тенанта (используется по умолчанию, если пусто) project: Фильтр по имени конкретного проекта (опционально)

Ошибки конфигурации

Параметры
  • projectstring
  • tenantstring
get_connectionsтолько чтениеидемпотентныйвнешний мир

Выводит список настроенных исходных подключений — экземпляры Gerrit, GitHub, GitLab. Показывает, с какими системами рецензирования кода взаимодействует данный экземпляр Zuul, с указанием типа подключения, имени хоста и базового URL.

Source Connections

Параметры

Без параметров.

get_freeze_jobтолько чтениеидемпотентныйвнешний мир

Получает полностью разрешённую конфигурацию для конкретного задания после наследования. Показывает итоговый объединённый nodeset, таймаут, playbooks и переменные после применения всего наследования от родительских заданий. Используйте это, чтобы точно понять, что будет делать задание - отвечает на вопросы «какой nodeset будет использоваться?» и «какие playbooks запускаются?». Args: pipeline: Имя пайплайна (например, "check", "gate") project: Имя проекта (например, "openstack-k8s-operators/openstack-operator") job_name: Имя задания для разрешения branch: Имя ветки (по умолчанию "main") tenant: Имя тенанта (используется значение по умолчанию, если пусто)

Разрешенная конфигурация задания

Параметры
  • branchstring
  • include_varsboolean
  • job_namestringобязательный
  • pipelinestringобязательный
  • projectstringобязательный
  • tenantstring
get_freeze_jobsтолько чтениеидемпотентныйвнешний мир

Получает разрешённый граф заданий для конвейера/проекта/ветки. Показывает, какие именно задания будут запущены, со всеми разрешёнными наследованиями, включая зависимости между заданиями. Используйте, чтобы понять порядок запуска заданий и почему задание есть (или нет) в конвейере. Аргументы: pipeline: Имя конвейера (например, "check", "gate") project: Имя проекта (например, "openstack-k8s-operators/openstack-operator") branch: Имя ветки (по умолчанию "main") tenant: Имя арендатора (используется значение по умолчанию, если пусто)

Resolved Job Graph

Параметры
  • branchstring
  • pipelinestringобязательный
  • projectstringобязательный
  • tenantstring
get_jobтолько чтениеидемпотентныйвнешний мир

Получает конфигурацию задания — parent, nodeset, timeout, branches и все варианты. Аргументы: name: Имя задания tenant: Имя тенанта (используется значение по умолчанию, если пусто)

Конфигурация задания

Параметры
  • namestringобязательный
  • tenantstring
get_job_durationsтолько чтениеидемпотентныйвнешний мир

Получает среднюю/минимальную/максимальную длительность для нескольких задач в одном вызове. Извлекает историю сборок для каждой задачи параллельно и вычисляет статистику длительности. Разработана для инструментов мониторинга, которым нужны средние длительности для всей цепочки пайплайна без выполнения N отдельных вызовов API. Args: job_names: Список имён задач для получения статистики tenant: Имя тенанта (используется значение по умолчанию, если пусто) result: Фильтр по результату (по умолчанию "SUCCESS" для чистых средних) limit: Сборок на задачу для анализа (по умолчанию 10, максимум 50)

Статистика длительности пакетных заданий

Параметры
  • job_namesstring[]обязательный
  • limitinteger
  • resultstring
  • tenantstring
get_projectтолько чтениеидемпотентныйвнешний мир

Получает конфигурацию проекта — какие пайплайны и задания настроены. Args: name: Имя проекта (например, "openstack-k8s-operators/openstack-operator") tenant: Имя тенанта (используется значение по умолчанию, если пусто)

Конфигурация проекта

Параметры
  • namestringобязательный
  • tenantstring
get_statusтолько чтениеидемпотентныйвнешний мир

Показывает статус конвейера в реальном времени: что сейчас в очереди или выполняется. Аргументы: tenant: Арендатор (по умолчанию из окружения) pipeline: Фильтр имени конвейера project: Фильтр проекта active_only: Показывать только конвейеры с активными элементами (по умолчанию true) brief: Компактный вывод (~50% меньше) для многократного опроса

Статус конвейера

Параметры
  • active_onlyboolean
  • briefboolean
  • pipelinestring
  • projectstring
  • tenantstring
get_tenant_infoтолько чтениеидемпотентныйвнешний мир

Получает возможности арендатора, конфигурацию аутентификации и адрес websocket. Показывает, какие функции доступны для этого арендатора (история заданий, realms аутентификации) и имя арендатора. Аргументы: tenant: имя арендатора (если не указан, используется значение по умолчанию)

Информация об арендаторе

Параметры
  • tenantstring
investigate_changeтолько чтениеидемпотентныйвнешний мир

Исследование в один вызов - сборки, диагностика и статус autohold для изменения. Объединяет list_builds, diagnose_build(brief) и поиск autohold в один ответ. Предназначен для типичного рабочего процесса "что происходит с этим изменением?" - заменяет 3-4 отдельных вызова инструментов. Аргументы: change: Номер изменения (например, "2601") job: Фильтр имени задания (подстрока). Когда задано, включаются только сборки, соответствующие этому заданию, и autohold фильтруются. tenant: Tenant (по умолчанию: None)

Исследует изменение

Параметры
  • changestringобязательный
  • jobstring
  • tenantstring
list_autoholdsтолько чтениеидемпотентныйвнешний мир

Перечисляет запросы autohold — узлы, удерживаемые после сбоя для отладки. Проверяет, когда задания застревают в ожидании узлов, или находит ваш autohold. Args: tenant: Арендатор (по умолчанию из окружения) project: Фильтр по проекту (совпадение подстроки). При установке использует API-эндпоинт с областью проекта для фильтрации на стороне сервера. job: Фильтр по имени задания (совпадение подстроки, на стороне клиента)

Autohold Requests

Параметры
  • jobstring
  • projectstring
  • tenantstring
list_buildsтолько чтениеидемпотентныйвнешний мир

Ищет сборки по фильтрам. Возвращает краткие сводки сборок. Аргументы: tenant: Имя тенанта (использует значение по умолчанию, если пусто) project: Фильтрует по имени проекта pipeline: Фильтрует по имени пайплайна job_name: Фильтрует по имени задачи change: Фильтрует по номеру изменения branch: Фильтрует по имени ветки patchset: Фильтрует по набору изменений ref: Фильтрует по git-ссылке result: Фильтрует по результату (SUCCESS, FAILURE, TIMED_OUT, SKIPPED и т.д.) completed_after: Фильтрует сборки, завершённые после указанного времени (ISO 8601, например "2026-04-18T00:00:00Z") completed_before: Фильтрует сборки, завершённые до указанного времени (ISO 8601) started_after: Фильтрует сборки, запущенные после указанного времени (ISO 8601) started_before: Фильтрует сборки, запущенные до указанного времени (ISO 8601) limit: Максимальное количество результатов, от 1 до 100 (по умолчанию 20) skip: Смещение для постраничного вывода (по умолчанию 0)

Ищет сборки

Параметры
  • branchstring
  • changestring
  • completed_afterstring
  • completed_beforestring
  • job_namestring
  • limitinteger
  • patchsetstring
  • pipelinestring
  • projectstring
  • refstring
  • resultstring
  • skipinteger
  • started_afterstring
  • started_beforestring
  • tenantstring
list_buildsetsтолько чтениеидемпотентныйвнешний мир

Ищет buildsets (группы сборок, запущенных одним событием). Args: tenant: Имя tenant (использует значение по умолчанию, если пусто) project: Фильтрует по проекту pipeline: Фильтрует по имени пайплайна change: Фильтрует по номеру изменения branch: Фильтрует по имени ветки ref: Фильтрует по git ref result: Фильтрует по результату completed_after: Фильтрует buildsets, завершённые после этого времени (ISO 8601, например "2026-04-18T00:00:00Z") completed_before: Фильтрует buildsets, завершённые до этого времени (ISO 8601) started_after: Фильтрует buildsets, запущенные после этого времени (ISO 8601) started_before: Фильтрует buildsets, запущенные до этого времени (ISO 8601) limit: Максимум результатов, 1-100 (по умолчанию 20) skip: Смещение для пагинации include_builds: Получает полные детали (сборки, события) для каждого buildset. Экономит отдельный вызов get_buildset на каждый результат, но медленнее для больших наборов результатов. Лучше всего с limit <= 5.

Ищет сборки

Параметры
  • branchstring
  • changestring
  • completed_afterstring
  • completed_beforestring
  • include_buildsboolean
  • limitinteger
  • pipelinestring
  • projectstring
  • refstring
  • resultstring
  • skipinteger
  • started_afterstring
  • started_beforestring
  • tenantstring
list_imagesтолько чтениеидемпотентныйвнешний мир

Перечисляет образы дисков nodepool со статусом сборки и артефактами загрузки. Показывает доступные базовые образы для узлов заданий, включая историю сборок и сведения о том, к каким провайдерам они были загружены. Аргументы: tenant: Имя тенанта (если пусто, используется значение по умолчанию)

Nodepool Images

Параметры
  • tenantstring
list_jobsтолько чтениеидемпотентныйвнешний мир

Перечисляет все задачи в тенанте. Опционально фильтрует по подстроке имени. Аргументы: tenant: Имя тенанта (используется значение по умолчанию, если пусто) filter: Подстрока для фильтрации имен задач без учёта регистра limit: Максимальное количество возвращаемых результатов (по умолчанию 200, 0 — без ограничений)

Перечисляет задания

Параметры
  • filterstring
  • limitinteger
  • tenantstring
list_labelsтолько чтениеидемпотентныйвнешний мир

Перечисляет доступные метки nodepool (типы узлов, которые могут запрашивать задания). Аргументы: tenant: Имя тенанта (используется значение по умолчанию, если не указано)

Метки Nodepool

Параметры
  • tenantstring
list_nodesтолько чтениеидемпотентныйвнешний мир

List nodepool nodes. Показывает, что доступно, используется или подготавливается. Проверяйте это, когда задания застревают в ожидании узлов. По умолчанию возвращает сводку, сгруппированную по метке и состоянию. Установите detail=true для просмотра отдельных узлов. Аргументы: tenant: Имя тенанта (используется значение по умолчанию, если пусто) detail: Включает список отдельных узлов (по умолчанию false, только сводка) limit: Максимальное количество узлов в подробном списке (по умолчанию 200, 0 - без ограничений). Сводная статистика всегда охватывает все узлы независимо от лимита.

Nodepool Nodes

Параметры
  • detailboolean
  • limitinteger
  • tenantstring
list_pipelinesтолько чтениеидемпотентныйвнешний мир

Перечисляет все пайплайны с их типами триггеров. Аргументы: tenant: Имя тенанта (используется значение по умолчанию, если пусто)

Список пайплайнов

Параметры
  • tenantstring
list_projectsтолько чтениеидемпотентныйвнешний мир

Перечисляет все проекты в тенанте. Опционально фильтрует по подстроке имени. Args: tenant: Имя тенанта (используется значение по умолчанию, если пусто) filter: Подстрока для фильтрации названий проектов без учёта регистра limit: Максимальное количество возвращаемых результатов (по умолчанию 200, 0 для неограниченного количества)

Выводит список проектов.

Параметры
  • filterstring
  • limitinteger
  • tenantstring
list_providersтолько чтениеидемпотентныйвнешний мир

Перечисляет nodepool облачных провайдеров с типами и образами. Показывает, какая инфраструктура доступна для запуска задач: названия провайдеров, доступные типы (размеры ВМ) и образы (базовые ОС). Аргументы: tenant: Название тенанта (используется значение по умолчанию, если не указано)

Nodepool Providers

Параметры
  • tenantstring
list_semaphoresтолько чтениеидемпотентныйвнешний мир

Перечисляет семафоры - блокировки ресурсов, которые ограничивают параллельное выполнение заданий. Проверьте это, когда задания неожиданно ожидают. Семафор на максимальном количестве держателей означает, что задания поставлены в очередь и ожидают освобождения блокировки. Аргументы: tenant: Имя тенанта (используется значение по умолчанию, если пусто)

Семафоры

Параметры
  • tenantstring
list_system_eventsтолько чтениеидемпотентныйвнешний мир

Перечисляет системные события: обновления конфигурации, реконфигурации, изменения конвейеров. Полезно для отладки «почему моя задача перестала выполняться?» или отслеживания развёртываний конфигурации. Показывает тип события, временную метку и описание. Args: tenant: Имя арендатора (используется значение по умолчанию, если пусто) event_type: Фильтр по типу события (опционально) limit: Максимум результатов (по умолчанию 50) skip: Смещение для пагинации

System Events

Параметры
  • event_typestring
  • limitinteger
  • skipinteger
  • tenantstring
list_tenantsтолько чтениеидемпотентныйвнешний мир

Перечисляет всех Zuul tenants с количеством проектов и очередей.

Перечисляет арендаторов

Параметры

Без параметров.

stream_build_consoleтолько чтениеидемпотентныйвнешний мир

Читает живой консольный вывод из RUNNING сборки. Подключается к endpoint WebSocket console-stream в Zuul и захватывает вывод в течение timeout секунд, возвращая последние lines строк (поведение tail). Этот инструмент только для RUNNING сборок. Для завершённых сборок используйте tail_build_log или get_build_log. Опционально — требует pip install mcp-zuul[console]. Аргументы: uuid: UUID сборки (из get_change_status) tenant: Имя tenant (использует значение по умолчанию, если пусто) url: URL сборки Zuul (альтернатива uuid + tenant) lines: Количество строк, возвращаемых с конца (по умолчанию 100, максимум 500) timeout: Секунд для буферизации перед возвратом (по умолчанию 10, максимум 30)

Stream Build Console

Параметры
  • linesinteger
  • tenantstring
  • timeoutinteger
  • urlstring
  • uuidstring
tail_build_logтолько чтениеидемпотентныйвнешний мир

Получает последние N строк лога сборки: самый быстрый способ узнать, почему сборка завершилась неудачей. Более эффективен по токенам, чем get_build_log(mode="summary"), когда вам нужен только хвост. Используйте как первый шаг при исследовании ошибок. Args: uuid: Идентификатор сборки UUID tenant: Имя тенанта (используется значение по умолчанию, если пусто) lines: Количество строк с конца (по умолчанию 50, максимум 500) log_name: Файл журнала для чтения (по умолчанию "job-output.txt") url: URL сборки Zuul (альтернатива uuid + tenant) skip_postrun: Пропускать строки сбора логов после выполнения и брать хвост с конца фазы выполнения (по умолчанию true). Применяется только к job-output.txt. Установите false для просмотра сырого хвоста.

Выводит последние строки журнала.

Параметры
  • direct_log_urlstring
  • linesinteger
  • log_namestring
  • skip_postrunboolean
  • tenantstring
  • urlstring
  • uuidstring

Похожие MCP-сервера

ofershap/mcp-server-github-actions

ofershap/mcp-server-github-actions

MCP сервер для управления GitHub Actions: просмотр логов, перезапуск упавших задач, отмена сборок и запуск деплоев прямо из редактора. Ускоряет отладку CI/CD без переключения контекста.

TypeScript4
qainsights/locust-mcp-server

qainsights/locust-mcp-server

MCP-сервер для запуска нагрузочных тестов Locust из AI-сред. Просто интегрирует написание тестовых сценариев и запуск в headless или UI режиме. Полезен разработчикам и QA для быстрой верификации пр...

Python13
hungthai1401/bruno-mcp

hungthai1401/bruno-mcp

MCP сервер для запуска API-тестов из коллекций Bruno. Позволяет LLM выполнять тесты через Bruno CLI, получать детальные результаты: статус, статистику прохождения, ошибки и время выполнения. Полезе...

JavaScript44
Daghis/teamcity-mcp

Daghis/teamcity-mcp

MCP сервер объединяет AI-ассистентов с TeamCity CI/CD. Разработчики запускают сборки, просматривают логи, управляют параметрами и агентами из редактора. Режимы: Dev для повседневных задач и Full дл...

TypeScript29
eyaushev/swagger-testcase-mcp

eyaushev/swagger-testcase-mcp

Автоматически генерирует тест-кейсы из Swagger/OpenAPI спецификаций. Анализирует параметры, ограничения и схемы, создавая тесты 8 категорий для ручного тестирования или импорта в TMS, ускоряя подго...

TypeScript2
currents-dev/currents-mcp

currents-dev/currents-mcp

MCP сервер для подключения AI-агентов к панели Currents. Позволяет анализировать CI-тесты, выявлять flaky тесты и сбои, управлять проектами и правилами карантина прямо из редактора. Ускоряет отладку на основе реальных данных.

TypeScript20
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин