mcpField
B
buildtime

buildtime

ローカル
github.com/CloudCorpRecords開発ツール01 週間前に更新

buildtime について

buildtime は CI のビルド実行を分析し、遅いステップや実行時間の推移、キャッシュヒットと合計時間の関係を示します。CLI または MCP サーバーから実行データを受け取り、ローカルで計算します。

主な機能

  1. 01ステップ別の所要時間統計
  2. 02最遅ステップの特定
  3. 03前半と後半の推移比較
  4. 04キャッシュヒット別の合計時間
  5. 05閾値による遅いステップの抽出
  6. 06ローカル実行の JSON CLI と MCP サーバー

活用シーン

  1. 01CI 実行で最も時間のかかるステップの特定
  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 実行(1 件以上)
slow_threshold_secondsnumberいいえ遅いステップとしてフラグ付けする平均時間のしきい値(秒、任意)

詳細

buildtime

ビルドがどんどん遅くなっていますが、原因はどのステップでしょうか? buildtime は、一連の CI 実行をプロファイリングし、ステップごとの所要時間と、判明している場合はキャッシュヒットを分析して、ボトルネックを示す数値を返します。

  • ステップごとの統計 — 個別のステップ名ごとに、該当ステップを含む実行回数、合計・平均・最大所要時間、および総所要時間に占める割合を算出し、所要時間の長い順(同じ場合は名前順)に並べます
  • 最も遅いステップ — このランキングの先頭の項目です
  • 傾向 — 指定された順序のまま実行を第 1 半分と第 2 半分に分けます(実行数が奇数の場合、中央の実行は第 1 半分に含まれます)。各半分の実行合計時間の平均と、その間の変化率を返します。実行が 2 回未満の場合は null となり、第 1 半分の平均がゼロの場合は変化率自体が null となります
  • キャッシュとの相関 — 少なくとも 1 つのステップでキャッシュヒットが報告された実行を「キャッシュあり」とします。buildtime は両グループの件数と、各グループの実行合計時間の平均を返します(グループが空の場合は null となり、ゼロで埋めることはありません)
  • 低速フラグ付き — 低速しきい値を指定すると、平均所要時間がしきい値以上のステップを所要時間の長い順に返します

すべての浮動小数点数は小数点以下 4 桁に丸められます。 計算は純粋かつローカルで行われます。ネットワークや設定は不要で、渡された実行データ以外のファイルを読み込むことはありません。実行の欠落、所要時間のないステップ、負の所要時間などの無効な入力は、問題のあるパスを示すエラーで拒否され、プロファイルの一部だけが生成されることはありません。

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、実行時エラー(読み取れない、または無効な runs ファイルや無効な入力を含む)の場合は 1、使用方法のエラーの場合は 2 です。

MCP サーバー

npx -y @reneturcios/buildtime mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "buildtime": {
      "command": "npx",
      "args": ["-y", "@reneturcios/buildtime", "mcp"]
    }
  }
}
ツール
  • analyze_build_times — CI 実行全体のビルドのボトルネックをプロファイリングします。

    • runs(配列、必須、1 件以上)— {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 — Copyright (c) 2026 Rene Turcios

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。