tagguard について
tagguardは、Gitタグ、パッケージバージョン、変更履歴の整合性を確認するローカルのリリース前ゲートです。最初の失敗で止まらず、5項目すべてをJSONで報告します。
主な機能
- 015項目のリリースチェック
- 02Semverとタグの検証
- 03変更履歴の見出しと内容の確認
- 04JSONレポートと終了コード
- 05CLIとDockerに対応
活用シーン
- 01タグ付け前のリリース情報の検証
- 02リリース情報の不整合を一度に特定
MCP 対応
MCPサーバーは `check_release_tag` を公開し、予定タグ、パッケージバージョン、変更履歴テキスト、プレリリース設定を検査して5項目の結果を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| tag | string | はい | 提案する git タグ。例:"v0.2.0" |
| changelog | string | はい | CHANGELOG.md のテキスト |
| package_version | string | はい | package.json 内のバージョン |
| allow_prerelease | boolean | いいえ | プレリリースバージョンの要素を許可します(デフォルトは false) |
詳細
tagguard
リリースにタグを付けようとしています。整合している必要がある3つの項目、つまり Git タグ、パッケージのバージョン、変更履歴のエントリーは、本当に一致していますか? tagguard は、5つの明示的なチェックでこの問いに答えるリリース前ゲートです。いずれかのチェックに失敗すると、リリースをブロックします。
SEMVER_VALID— パッケージのバージョンが SemVer の文法に一致すること(数値コンポーネントの先頭のゼロは拒否され、プレリリースおよびビルドメタデータのサフィックスは SemVer の規則に従います)TAG_MATCHES_VERSION— 先頭に数字が続く場合に限り、先頭のvまたはVを1つ取り除いて正規化したタグが、パッケージのバージョンと完全に一致することPRERELEASE_ALLOWED— プレリリース部分(+より前にある-)を含むバージョンは、プレリリースが許可されていない限り失敗しますCHANGELOG_ENTRY— 変更履歴にこのバージョンの##見出しがあること:## 0.2.0、## [0.2.0]、## v0.2.0 (2026-01-01)、## [0.2.0] - 2026-01-01はすべて該当しますCHANGELOG_ENTRY_NONEMPTY— その見出しの下に内容があること:次の##見出しまでに、見出し以外の空でない行が少なくとも1行あること
各チェックは、合否にかかわらず、この順序ですべて報告されます。ゲートは途中で処理を打ち切らないため、リリースがブロックされた場合、問題がすべて一度に表示されます。ローカルでの純粋な計算のみです。Git コマンドも、ネットワークも、設定も使用しません。
CLI
npx @reneturcios/tagguard check --tag v0.2.0 --version 0.2.0 --changelog CHANGELOG.md
npx @reneturcios/tagguard --version
--allow-prerelease を追加すると、1.0.0-beta.1 のようなプレリリースバージョンを許可できます。
コマンドはゲートのレポートを JSON として出力します。
{
"ok": true,
"normalized_tag": "0.2.0",
"checks": [
{ "code": "SEMVER_VALID", "ok": true, "message": "..." }
]
}
終了コード:ゲートを通過した場合は 0、ゲートがリリースをブロックした場合(JSON レポートは引き続き出力されます)または実行時エラーが発生した場合は 1(変更履歴ファイルを読み取れない場合は、エラー行が出力され、JSON は出力されません)、使用方法に誤りがある場合は 2 です。
MCP サーバー
npx -y @reneturcios/tagguard mcp
MCP クライアントの設定:
{
"mcpServers": {
"tagguard": {
"command": "npx",
"args": ["-y", "@reneturcios/tagguard", "mcp"]
}
}
}
ツール
check_release_tag— 提案されたリリース1件に対してリリース前ゲートを実行し、5つすべてのチェックを報告します。tag(文字列、必須)— 提案する Git タグ。例:"v0.2.0"package_version(文字列、必須)— package.json 内のバージョンchangelog(文字列、必須)— CHANGELOG.md のテキストallow_prerelease(ブール値、任意、デフォルトは false)— プレリリースのバージョン部分を許可します
tag、package_version、changelog が指定されていないか空の場合は、引数名を示すエラーになります。package_version が SemVer に準拠していないことはエラーではありません。チェック1が失敗するだけであり、それがゲートの役割です。
Docker
docker run -i ghcr.io/cloudcorprecords/tagguard
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/tagguard check --tag v0.2.0 --version 0.2.0 --changelog /w/CHANGELOG.md
開発
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 つのサーバーを複数のクライアントで再利用できます。