SuperAPI AI 工具集

mcp-zuul

mcp-zuul 是一个面向 Zuul CI 的 MCP 服务器,让用户通过 Claude、Cursor 等 MCP 客户端以问答方式调试构建失败、搜索日志、管理流水线和监控任务,无需手动在 Web 界面中点击操作。

访问官网

工具介绍

用途

mcp-zuul 是一个面向 Zuul CI 的 MCP(Model Context Protocol)服务器,用于通过自然语言提问来调试构建失败、搜索日志、管理流水线与监控任务,替代在 Web UI 中反复点击排查的方式。它可配合 Claude Code、Claude Desktop、Cursor、Codex、Windsurf 以及任何兼容 MCP 的客户端使用。

主要能力

  • 覆盖构建、日志、流水线、任务、基础设施与实时状态,提供 48 个工具、5 个提示(prompts)和 3 个资源(resources)。
  • 结构化失败分析:get_build_failures 解析 Zuul 的 job-output.json,返回失败的具体 Ansible 任务、所在主机、错误消息、返回码与 stderr。
  • 读取任意日志文件:get_build_log 不限于 job-output.txt,可通过 log_name 读取构建日志目录中的任意文件(如 ci_script 日志、ansible.log、部署日志),支持完整 grep、tail 与行范围。
  • 精确日志导航:通过 start_line / end_line 跳转到指定行范围。
  • 智能 grep:支持正则搜索与上下文行,自动将常见 shell grep 的 | 语法转换为 Python 正则的 |。
  • 实时流水线感知:get_change_status 返回实时任务进度、已耗时、预计完成时间与预失败检测(pre_fail 字段);变更不在流水线中时自动获取最近一次已完成的 buildset。
  • 工具过滤:通过 ZUUL_ENABLED_TOOLS 或 ZUUL_DISABLED_TOOLS 减少 LLM 选择工具的噪声,只暴露工作流需要的工具。
  • 支持直接粘贴 Zuul 构建 URL,自动解析租户与 UUID。
  • 不稳定任务检测:find_flaky_jobs 分析近期构建历史并计算通过/失败统计。
  • 任务依赖图:get_freeze_jobs 返回经继承解析后的完整任务图及其依赖。
  • Kerberos/SPNEGO 认证:支持位于 OIDC + Kerberos 之后的 Zuul 实例,自动走完整 SPNEGO 重定向链,会话 cookie 持久化并在过期时透明重新认证。
  • Streamable HTTP 传输:通过 MCP_TRANSPORT=streamable-http 作为持久 HTTP 服务器运行,用于远程/共享部署;支持 stdio(默认)、SSE 和 streamable-http。
  • 写操作:可入队/出队/提升变更以及重新入队 buildset。影响流水线的工具默认禁用(ZUUL_READ_ONLY=true),并完全从服务器移除;autohold 管理(创建/删除)因不影响运行中的流水线而始终可用。
  • LogJuicer 集成:get_build_anomalies 使用基于机器学习的日志分析,通过对比失败日志与成功基线来发现异常行;该功能可选,需要配置 LOGJUICER_URL。
  • Token 高效输出:所有响应去除 None 值并使用紧凑格式化;tail_build_log 只返回最后 N 行。
  • 错误处理:所有工具返回 JSON(包括错误),网络失败、认证问题和无效参数返回 {"error": "descriptive message"},不会抛出未处理异常。

使用方式

  • 无需安装,一条命令即可运行(推荐 uvx):uvx mcp-zuul(完整命令见官方仓库与 Setup 文档)。
  • 也可安装:pip install mcp-zuul。
  • MCP 客户端配置使用统一 JSON 结构,添加到客户端的 MCP 配置文件中;Claude Code 位于 ~/.claude.json 的 mcpServers 下,Claude Desktop(claude_desktop_config.json)、Cursor(.cursor/mcp.json)等格式相同。GUI 客户端不继承 shell PATH,需使用 uvx 的完整路径(通过 which uvx 获取)。
  • 环境变量配置:支持通过 ZUUL_AUTH_TOKEN 传入令牌认证;Kerberos/SPNEGO 需有效的 Kerberos 票据(kinit)与 gssapi 包,Linux 需先安装系统包再以 mcp-zuul[kerberos] 安装;支持多实例配置。
  • Docker 镜像:ghcr.io/imatza-rh/mcp-zuul;Docker 环境可用无值转发方式继承宿主环境变量,Kerberos 场景可挂载票据缓存。
  • 提供的提示模板可预加载上下文并引导分析;可浏览资源供客户端在不调用工具的情况下附加到对话。

适用场景

  • 调试构建失败:list_builds → get_build_failures 获取根因(任务名、错误、返回码)。
  • 深入日志:browse_build_logs 找到日志文件后用 get_build_log 配合 grep 与上下文定位错误。
  • 按行号精确读取日志片段。
  • 查看实时流水线状态或最近完成的 buildset。
  • 对比同一流水线中多个构建结果(list_builds → get_buildset)。
  • 直接粘贴 Zuul URL 自动解析租户与 UUID。
  • 排查任务未运行原因(get_config_errors)。
  • 检查节点可用性(list_nodes、list_labels)。
  • 检测不稳定任务(find_flaky_jobs)。
  • 查看项目运行的任务(get_freeze_jobs)与继承后的节点集(get_freeze_job)。
  • 用 tail_build_log 以最少 token 快速查看构建失败原因。

限制

  • Kerberos 支持的 gssapi 在 Linux 上无预编译 wheel,需从源码编译并先安装系统依赖(如 krb5-config、Python.h);macOS 和 Windows 有预编译 wheel,无需额外包。
  • 写操作中的影响流水线工具默认禁用(ZUUL_READ_ONLY=true),需显式设置 ZUUL_READ_ONLY=false 并需要认证令牌或 Kerberos。
  • LogJuicer 集成为可选功能,必须配置 LOGJUICER_URL。
  • 令牌不应硬编码在配置文件中(会出现在 ps 输出中),应通过宿主环境变量传入。
  • 暂未提供关于收费、价格、平台支持范围与效果指标的更多信息。