mcpField
B
buildtime

buildtime

本地服务
github.com/CloudCorpRecords开发工具01 周前更新

关于 buildtime

buildtime 分析 CI 构建运行,定位耗时步骤、比较运行趋势,并统计缓存命中与总耗时的关系。它可通过命令行或 MCP 服务接收运行数据,并在本地计算结果。

主要功能

  1. 01按步骤统计耗时
  2. 02识别最慢步骤
  3. 03比较前后半程趋势
  4. 04按缓存命中分组统计总耗时
  5. 05按阈值标记慢步骤
  6. 06本地 JSON 命令行与 MCP 服务

适用场景

  1. 01查找 CI 运行中最耗时的步骤
  2. 02检查运行耗时是否改善
  3. 03比较有无缓存时的平均总耗时
  4. 04标记超过耗时阈值的步骤

MCP 相关

MCP 服务提供 `analyze_build_times`,接收 CI 运行数据和可选的慢步骤阈值,并返回构建分析结果。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-buildtime": {
"command": "npx",
"args": [
"-y",
"@reneturcios/buildtime"
]
}
}
}
启动命令npx -y @reneturcios/buildtime

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/buildtime0.1.0
ocighcr.io/cloudcorprecords/buildtime:0.1.0

工具

1

收录的工具列表 · 更新于 1 周前

参数类型必填说明
runsarray是要分析的 CI 运行记录(至少一条)
slow_threshold_secondsnumber否将步骤标记为慢速的平均耗时阈值(秒,可选)

详细介绍

buildtime

你的构建越来越慢,但到底是哪个步骤拖了后腿? buildtime 会分析一组 CI 运行记录——各步骤的耗时,以及已知的缓存命中情况——并用数据指出瓶颈:

  • 各步骤统计信息 — 对每个不同的步骤名称,统计包含该步骤的运行次数、总耗时、平均耗时、最长耗时,以及该步骤占总耗时的比例;按耗时从高到低排序(耗时相同则按名称排序)
  • 最慢步骤 — 排名中的第一项
  • 趋势 — 按给定顺序排列运行记录,并分为前半部分和后半部分(奇数条记录时,中间那条归入前半部分);分别计算每部分的平均运行总耗时,以及两者之间的百分比变化;少于两条运行记录时为 null,前半部分的平均耗时为零时,百分比变化为 null
  • 缓存相关性 — 某条运行记录只要至少有一个步骤报告缓存命中,就计为“命中缓存”;buildtime 会报告两组的数量和各组的平均运行总耗时(空组为 null,绝不会填为零)
  • 标记最慢步骤 — 传入耗时阈值时,列出平均耗时达到或超过该阈值的步骤,并按耗时从高到低排序

所有浮点数均四舍五入到小数点后四位。计算过程纯粹且在本地执行:不会联网,不需要配置,也不会读取你所传入运行记录以外的任何文件。无效输入——缺少运行记录、步骤缺少耗时或耗时为负——都会报错并指出出错路径,且不会生成不完整的分析结果。

CLI

npx @reneturcios/buildtime analyze --runs runs.json
npx @reneturcios/buildtime --version

runs.json 包含完整的参数对象:

{
  "runs": [
    {
      "run_id": "run-101",
      "conclusion": "success",
      "steps": [
        { "name": "compile", "duration_seconds": 42.5, "cache_hit": true },
        { "name": "test", "duration_seconds": 87 }
      ]
    }
  ],
  "slow_threshold_seconds": 60
}

conclusion 和 cache_hit 对每条运行记录/每个步骤而言都是可选的,slow_threshold_seconds 整体而言是可选的。分析结果将以 JSON 格式输出。

退出代码:成功时为 0;运行时错误(包括无法读取或内容无效的运行记录文件,或输入无效)时为 1;用法错误时为 2。

MCP 服务

npx -y @reneturcios/buildtime mcp

MCP 客户端配置:

{
  "mcpServers": {
    "buildtime": {
      "command": "npx",
      "args": ["-y", "@reneturcios/buildtime", "mcp"]
    }
  }
}
工具
  • analyze_build_times — 分析多次 CI 运行中的构建瓶颈。

    • runs(数组,必填,至少一条)— 运行记录,格式为 {run_id, conclusion?, steps};其中每个步骤的格式为 {name, duration_seconds, cache_hit?}
    • slow_threshold_seconds(数字,可选,>= 0)— 标记平均耗时达到此阈值的步骤

    返回 {run_count, grand_total_seconds, step_stats, slowest_step, trend, cache, flagged_slowest}。

Docker

docker run -i ghcr.io/cloudcorprecords/buildtime
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/buildtime analyze --runs /w/runs.json

开发

npm install
npm run build   # tsc -> dist/
npm test        # tsx --test test/*.test.ts (pure local, no network)
npm run dev     # run the CLI from source

许可证

MIT — 版权所有 (c) 2026 Rene Turcios

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。