versionbump について
versionbump は、コミットと公開 API の変更からセマンティックバージョニングの更新幅を算出するコマンドラインツール兼 MCP サーバーです。定められたルールで判定し、根拠も返します。処理はローカルで完結し、入力も検証します。
主な機能
- 01メジャー、マイナー、パッチ、変更なしの判定
- 02コミットと API 変更の分析
- 03根拠を固定順で提示
- 04セマンティックバージョンと入力の厳密な検証
- 05ローカル CLI と MCP サーバー
活用シーン
- 01次のリリースバージョンの決定
- 02更新幅の判定根拠の確認
MCP 対応
MCP クライアントに recommend_version_bump ツールを提供します。現在のバージョン、コミット、任意の API 変更を受け取り、次のバージョン、更新幅、理由を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| commits | array | はい | 現在のバージョン以降のコミット(空でも可) |
| api_changes | array | いいえ | 現在のバージョン以降の公開 API サーフェスの変更(省略可、デフォルトは []) |
| current_version | string | はい | 現在のバージョン。厳密な MAJOR.MINOR.PATCH セマンティックバージョニング形式(例:"1.4.2") |
詳細
versionbump
次のバージョン番号を決めるのは、通常、記憶を頼りにした判断です。「これはマイナーな変更に思える」といった具合です。versionbump は、この判断を計算に置き換えます。現在のバージョン、そのバージョン以降のコミット、そのバージョン以降の公開 API の変更を渡すと、セマンティックバージョニングのルールを機械的に適用し、選んだレベルの根拠を一覧表示するため、誰でも結果を確認できます。
- メジャー — コミットに破壊的変更のマークが付いているか、API エントリーが削除された、または互換性のない形で変更されています。次のバージョンは
(X+1).0.0です。 - マイナー — 破壊的変更を示すものはありませんが、
featコミットが追加されたか、API エントリーが追加されています。次のバージョンはX.(Y+1).0です。 - パッチ — 破壊的変更や機能追加を示すものはありませんが、コミットがあります。次のバージョンは
X.Y.(Z+1)です。 - なし — コミットも API 変更もありません。次のバージョンは現在のバージョンのまま変わりません。
最初に一致したルールが適用されますが、根拠は勝者だけでなくすべて網羅されます。reasons には、すべての破壊的変更を含むコミット、すべての破壊的な API 変更、すべての機能追加コミット、すべての追加された API エントリーが、この固定順序で各グループ内の入力順に列挙されます。パッチのバージョンアップには、単一の理由 no breaking or feature signals; <n> commit(s) present が含まれます。バージョンアップなしの場合は、no commits and no API changes supplied が含まれます。
機能の検出は厳密です。コミットが機能追加とみなされるのは、タイプが正確に feat(大文字と小文字を区別)である場合のみです。破壊的変更のマークが付いていない限り、それ以外のすべてのコミットタイプはパッチレベルになります。現在のバージョンには、厳密な MAJOR.MINOR.PATCH 形式の semver を指定する必要があり、プレリリースやビルドのサフィックスは指定できません。不正な入力(不正なバージョン文字列、タイプのないコミット、不明な種類の API 変更など)は、問題のあるパスを示す検証エラーになります(例:commits[1].type must be a non-empty string)。部分的な推奨結果は生成されません。この計算は純粋かつローカルです。ネットワークや設定は使わず、渡された入力以外のファイルも読み取りません。
CLI
npx @reneturcios/versionbump recommend --input args.json
npx @reneturcios/versionbump --version
args.json には、引数オブジェクト全体が含まれます。
{
"current_version": "1.4.2",
"commits": [
{ "type": "feat" },
{ "type": "fix", "breaking": true }
],
"api_changes": [
{ "kind": "added", "name": "exportReport" }
]
}
breaking はコミットごとにデフォルトで false、api_changes はデフォルトで [] です。推奨結果は JSON として出力されます。
{
"current_version": "1.4.2",
"next_version": "2.0.0",
"bump": "major",
"reasons": [
"commit[1] of type \"fix\" is marked breaking",
"commit[0] is a feature (\"feat\")",
"API entry \"exportReport\" was added"
]
}
終了コード:成功時は 0、実行時エラー(読み取り不能または無効な入力ファイル、無効な入力を含む)時は 1、使用方法エラー時は 2 です。
MCP サーバー
npx -y @reneturcios/versionbump mcp
MCP クライアントの設定:
{
"mcpServers": {
"versionbump": {
"command": "npx",
"args": ["-y", "@reneturcios/versionbump", "mcp"]
}
}
}
ツール
-
recommend_version_bump— コミットタイプと API サーフェスの変更から、次のセマンティックバージョンを推奨し、選択したバージョンアップレベルの根拠を一覧表示します。current_version(文字列、必須) — 厳密なMAJOR.MINOR.PATCH形式の semver。例:"1.4.2"commits(配列、必須、空でも可) —{type, breaking?}オブジェクトとしてのコミット。typeは conventional commit のタイプで、breakingのデフォルトはfalseです。api_changes(配列、省略可、デフォルト[]) —{kind, name}オブジェクトとしての API 変更。kindは"removed"、"changed"、"added"のいずれかです。
{current_version, next_version, bump, reasons}を返します。
Docker
docker run -i ghcr.io/cloudcorprecords/versionbump
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/versionbump recommend --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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。