mcpField
B
backportcheck

backportcheck

ローカル
github.com/CloudCorpRecordsバージョン管理01 週間前に更新

backportcheck について

backportcheckは、バージョンと重要度をもとに固定ルールを適用し、修正を適用するサポート対象の旧リリースブランチを判定します。リポジトリやネットワークにアクセスせず、入力データから監査可能な計画を作成します。

主な機能

  1. 01サポート状況とバージョンでブランチを選別
  2. 02重要度に応じたバックポート方針
  3. 03対象外ブランチの理由を表示
  4. 04バージョンとブランチ名で計画を並べ替え
  5. 05バージョンとブランチ入力を検証

活用シーン

  1. 01修正が必要な旧リリースを判定
  2. 02リリースブランチが対象外となった理由を確認
  3. 03リリースチーム向けのバックポート計画を作成

MCP 対応

MCP サーバーは `check_backport` を公開し、修正バージョン、重要度、ブランチ、任意のバグ導入バージョンを受け取り、バックポート計画と対象外ブランチを返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-backportcheck": {
"command": "npx",
"args": [
"-y",
"@reneturcios/backportcheck"
]
}
}
}
起動コマンドnpx -y @reneturcios/backportcheck

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@reneturcios/backportcheck0.1.0
ocighcr.io/cloudcorprecords/backportcheck:0.1.0

ツール

1

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
branchesarrayはいリリースブランチ:{name, version, supported}
severityenumはい修正の重大度critical | major | minor
fix_versionstringはい修正が取り込まれるバージョン(x.y.z 形式)
introduced_instringいいえバグが導入されたバージョン(x.y.z 形式、省略可)

詳細

backportcheck

最新のリリースラインに修正が取り込まれると、次に難しい問題が浮上します。現在も現場で使われている古いリリースブランチのうち、どれにも修正が必要でしょうか?直感で判断すると、ひそかに影響を受けているブランチを見落としたり、すべてのブランチにバックポートしてリリースチームに負担をかけたりします。backportcheckは、この判断を固定された監査可能な手順に変えます。修正を渡すと、計画を返します。

まず、ブランチを実際の候補に絞り込みます。ブランチが候補となるのは、次の3つをすべて満たす場合に限られます。サポートが継続されていること、修正が取り込まれるバージョンより厳密に古いこと、そしてバグが導入されたバージョンを指定した場合は、そのバージョン以降であることです。バグより古いブランチには、バグが存在しないためです。バージョンは単純なx.y.z形式の数値で、各要素を数値として比較するため、1.10.0は正しく1.9.0より新しいと判定されます。

フィルターに通らなかったブランチもすべて報告され、それぞれに理由が1つだけ付与されます。誤った理由が報告されないよう、理由は決まった順序で確認されます。サポート対象外のブランチは、バージョンが新しすぎる場合でもunsupportedです。次にnot older than fix version、最後にpredates bug introductionとなります。

各候補には、重要度に応じたアクションが割り当てられます。

  • critical — すべての候補がbackportになります。重大な修正は、可能なすべてのブランチに適用します。
  • major — 修正と同じメジャーラインの候補はbackport、古いメジャーラインの候補はconsiderになります。
  • minor — 同じメジャーラインの候補はconsider、古いメジャーラインの候補はskipになります。

少なくとも1つの候補のアクションがbackportの場合に限り、needs_backportはtrueになります。計画とスキップリストはそれぞれバージョンの降順で並べられ、同じバージョンの場合はブランチ名の昇順になります。そのため、通常は最も緊急度の高い最新のブランチが先頭に表示されます。不正な入力は、問題のあるパスを示す検証エラーになります。たとえば、x.y.z形式ではないバージョン、列挙値に含まれない重要度、名前・バージョン・サポートフラグのいずれかを欠くブランチ項目が該当します。処理は純粋かつローカルで行われます。ネットワークも設定も使用せず、リポジトリを読み込んだり変更したりすることもありません。backportcheckは計画を判断するだけです。

CLI

npx @reneturcios/backportcheck check --input args.json
npx @reneturcios/backportcheck --version

args.jsonには引数オブジェクト全体が含まれます。

{
  "fix_version": "3.2.0",
  "severity": "major",
  "introduced_in": "2.4.0",
  "branches": [
    { "name": "release-3.1", "version": "3.1.4", "supported": true },
    { "name": "release-3.0", "version": "3.0.9", "supported": true },
    { "name": "release-2.5", "version": "2.5.1", "supported": true },
    { "name": "release-2.3", "version": "2.3.8", "supported": true },
    { "name": "release-1.9", "version": "1.9.0", "supported": false }
  ]
}

結果はJSONとして出力されます。

{
  "needs_backport": true,
  "fix_version": "3.2.0",
  "severity": "major",
  "plan": [
    { "branch": "release-3.1", "version": "3.1.4", "action": "backport" },
    { "branch": "release-3.0", "version": "3.0.9", "action": "backport" },
    { "branch": "release-2.5", "version": "2.5.1", "action": "consider" }
  ],
  "skipped_branches": [
    { "branch": "release-2.3", "version": "2.3.8", "reason": "predates bug introduction" },
    { "branch": "release-1.9", "version": "1.9.0", "reason": "unsupported" }
  ]
}

終了コード:成功時は0、実行時エラー(読み取り不能または無効な入力ファイル、無効な入力を含む)では1、使用方法のエラーでは2です。

MCP サーバー

npx -y @reneturcios/backportcheck mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "backportcheck": {
      "command": "npx",
      "args": ["-y", "@reneturcios/backportcheck", "mcp"]
    }
  }
}
ツール
  • check_backport — 修正にバックポートが必要かどうか、また、どのリリースブランチに適用するかを判断します。

    • fix_version(文字列、必須)— 修正が取り込まれるバージョン。x.y.z形式で指定します。
    • severity(文字列、必須)— critical、major、minorのいずれかです。
    • branches(配列、必須、空でないこと)— リリースブランチの一覧です。各項目は、空でない文字列のname、x.y.z形式のversion、ブール値のsupportedを持つ{name, version, supported}です。
    • introduced_in(文字列、任意)— バグが導入されたバージョン。x.y.z形式で指定します。

    {needs_backport, fix_version, severity, plan, skipped_branches}を返します。

Docker

docker run -i ghcr.io/cloudcorprecords/backportcheck
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/backportcheck check --input /w/args.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 つのサーバーを複数のクライアントで再利用できます。