release-readiness-triage-mcp について
release-readiness-triage-mcp は、リリースの安全性を評価するエンジニアリングチーム向けの MCP サーバーです。CI 失敗の分類、不安定テストの履歴、コード変更との関連、マイグレーション検査を組み合わせ、リスクに基づく判定を出します。
主な機能
- 01CI 失敗のグループ化と分類
- 02不安定テストの履歴との照合
- 03変更ファイルと失敗テストの関連付け
- 04リスクに基づくリリース判定の生成
- 05時間依存の失敗パターンの検出
- 06マイグレーションのロールバック準備状況の評価
活用シーン
- 01リリース前の CI 失敗のトリアージ
- 02不安定テストと回帰の可能性の切り分け
- 03PR コメント用のリリース推奨事項の作成
- 04ロールバックを妨げるマイグレーションの確認
MCP 対応
失敗分析から判定生成までのリリーストリアージツールを MCP クライアントに公開します。不安定テスト、AST 影響分析、Playwright trace の各 MCP サーバーと連携したオーケストレーションにも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| runId | string | いいえ | CI 実行 ID |
| branch | string | いいえ | ブランチ名 |
| failures | array | はい | CI 実行で失敗したテストのリスト |
| commitSha | string | いいえ | コミット SHA |
| totalTests | integer | はい | 実行内のテスト総数 |
| passedTests | integer | はい | 合格したテスト数 |
| customInfraPatterns | array | いいえ | インフラストラクチャエラーとして分類する追加の正規表現パターン(文字列)。例:'No space left on device' や 'GCP quota exceeded' などのクラウドプロバイダー固有のメッセージ |
詳細
🚦 release-readiness-triage-mcp
CI ログを読むのはやめて、判定結果を得ましょう。
テストの失敗を集約し、不安定さの履歴と照合して、GO / CONDITIONAL_GO / NO_GO / INVESTIGATE のリリース判定を出力する MCP サーバーです。AI エージェントは、3000 行のログを読むよう頼む代わりに、数秒で失敗した CI のトリアージを行えます。
🤔 問題
実際のコードベースでは、CI では常に何かが失敗します。難しいのは「失敗があるか」ではなく、**「これらの失敗は本当のリグレッションなのか、それともいつものノイズなのか」**という問いです。
答えるには、次の 3 つのシグナルを同時に関連付ける必要があります。
- 🔍 エラーシグネチャ — 同じ失敗が 12 回繰り返されているのか、それとも 12 種類の異なる問題なのか?
- 📊 不安定さの履歴 — このテストは信頼性が低いことで知られているのか?
- 🔗 コードの変更 — 失敗したテストは、実際に変更内容と関係しているのか?
構造化されたツールがなければ、AI エージェントはこれを実行できません。生の CI ログは何千行にも及びます。不安定さのデータベースは外部にあります。コードとテストの対応付けには AST 解析が必要です。この MCP がなければ、エージェントは推測するしかありません。
🛠️ ツール
aggregate_suite_failures
失敗を正規化されたエラーシグネチャごとにグループ化し、繰り返されたエラーを重複排除して、assertion / timeout / network / crash に分類します。クラウド固有のエラーには customInfraPatterns を渡します。
cross_reference_flakiness
各失敗を不安定さの履歴と照合し、KNOWN FLAKY、MILDLY FLAKY、NO HISTORY のいずれかに評価します。
correlate_code_changes
変更されたファイルと失敗したテストを照合します。単独で使用することも、ast-impact-mapper-mcp から事前計算された影響対象テストのリストと組み合わせて使用することもできます。
generate_release_recommendation
最後のステップです。信頼度スコアと詳細な内訳を含む、リスクで重み付けされた判定を出力します。GitHub の PR コメントや Slack 向けに format: "markdown" をサポートしています。
判定レベル:
NO_GO— 重大な領域(payment、auth、billing、checkout、security)のリグレッションCONDITIONAL_GO— 低~中リスクの領域(analytics、docs、admin)のリグレッション。リリース前に確認してくださいGO— すべての失敗が既知の不安定さ、またはインフラストラクチャのノイズINVESTIGATE— 判定するには不明点が多すぎます
出力内容:
aggregate_risk_score— 0.0~1.0。すべてのリグレッションリスク要因を合算した発生確率failing_tests_analysis[]—domain、severity(HIGH/MEDIUM/LOW)、risk_contribution、blast_radiusを含む、リグレッションごとの詳細
detect_temporal_failure_patterns
タイムスタンプ付きの過去の失敗を分析し、時間に起因するアーティファクトを特定します。これは、同じ UTC 時刻、曜日、月の日付、または夏時間への移行時にのみ発生する失敗です。パターンが見つかった場合、その失敗はコードのリグレッションではなく、時間に起因するアーティファクトです。
出力内容:
temporal_pattern_detected— ブール値clusters[]— テストごとに、pattern_type(hourly | daily | monthly | timezone_shift)、cluster_times、confidence_score
analyze_rollback_readiness
リポジトリをスキャンしてバージョン管理されたマイグレーションファイル(Flyway の V*.sql、Prisma の migration.sql、Liquibase の XML/YAML)を検出し、各操作を追加型(ロールバック可能)または破壊的(前方修正のみ)に分類します。
検出される破壊的操作: DROP TABLE、DROP COLUMN、ALTER COLUMN TYPE、MODIFY COLUMN、TRUNCATE
出力内容:
rollback_eligible— ブール値blocking_migrations[]— 各項目にfile、line、operation、reasonを含みますdeployment_strategy—standard | forward_fix_only
🧪 実際の使用例
CI で 5 件の失敗。本物の問題はどれで、ノイズはどれでしょうか?
failures:
- Auth Suite > login with expired token → "Expected status 200, got 401"
- API Suite > health check → "connect ECONNREFUSED 127.0.0.1:3000"
- Button Suite > renders button correctly → "Expected null, got <button>Submit</button>"
- Search Suite > debounce timing → "Expected 42, received 43"
- Storage Suite > upload avatar → "GCP quota exceeded for this project"
changedFiles: ["src/components/Button.tsx"]
affectedTests: ["renders button correctly"]
customInfraPatterns: ["GCP quota exceeded"]
format: "markdown"
出力:
## 🔴 Release Recommendation: NO_GO (75% confidence)
> 1 confirmed regression(s) in critical domain(s) [payment]. Do not release.
**Aggregate risk score:** 1.0
| Category | Count |
| ------------------- | ----- |
| Total failures | 5 |
| 🔴 Real regressions | 1 |
| 🟡 Known flaky | 2 |
| ⚪ Infra blips | 2 |
| ❓ Unknown | 0 |
### Risk Breakdown
| Test | Domain | Severity | Risk | Blast Radius |
| -------------------------------------- | ------ | -------- | ---- | ------------ |
| Button Suite::renders button correctly | core | MEDIUM | 0.5 | 1 |
### Blockers (must fix before release)
**Button Suite > renders button correctly**
- Test is directly affected by code changes in this commit
- `Expected null, got <button>Submit</button>`
### Safe to ignore
- ~~Auth Suite > login with expired token~~ — Historically flaky: 73% failure rate in history
- ~~API Suite > health check~~ — Error pattern matches infrastructure issues (network)
- ~~Search Suite > debounce timing~~ — Mildly flaky: 22% historical failure rate
- ~~Storage Suite > upload avatar~~ — Error pattern matches infrastructure issues (network)
ツール呼び出しは 1 回。判定も 1 つ。Button.tsx を修正しましょう。
⚡ セットアップ
{
"mcpServers": {
"release-readiness-triage": {
"command": "npx",
"args": ["-y", "release-readiness-triage-mcp"]
}
}
}
🚀 使い方
「CI の実行結果、フレーキーテストのデータベース、この PR で変更されたファイルです。リリースしても安全ですか?」
エージェントが generate_release_recommendation を呼び出し、詳細な分析を含む判定を返します。PR コメントや Slack にそのまま貼り付けられます。
単独で使うことも、次のツールを連携させるメタオーケストレーターとして使うこともできます。
- flakiness-knowledge-graph-mcp — フレーキーテストの履歴を確認
- ast-impact-mapper-mcp — コードとテストの相関を確認
- playwright-trace-decoder-mcp — トレースレベルで失敗を分析
📦 リンク
- npm: npmjs.com/package/release-readiness-triage-mcp
- GitHub: github.com/vola-trebla/release-readiness-triage-mcp
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。