mcpField
C
changesetgen

changesetgen

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

changesetgen について

changesetgenは、Pull Requestのコミットからchangesetと変更履歴を作成するMCPサーバー兼コマンドラインツールです。コミット種別で分類し、バージョン更新の提案を示し、変更ファイルも含められます。

主な機能

  1. 01changeset Markdownの生成
  2. 02コミット種別による分類
  3. 03グループ順と見出しの設定
  4. 04破壊的変更の表示
  5. 05major・minor・patchの更新提案
  6. 06変更ファイルの一覧表示

活用シーン

  1. 01Pull Requestのコミットからchangesetを作成
  2. 02破壊的変更と更新提案を確認
  3. 03リリース項目に変更ファイルを記載

MCP 対応

コミットと任意のファイル・規約設定を受け取り、Markdown、更新情報、件数、グループを返す`generate_changeset`ツールを提供します。

設定

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

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

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

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

ツール

1

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

パラメーター型必須説明
commitsarrayはいPR 内のコミット(1件以上)。
conventionobjectいいえリポジトリ規約の上書き設定(任意)。
convention.group_orderarrayいいえ表示順に並べたグループの種類(任意)。
convention.include_filesbooleanいいえFiles changed セクションを含めるかどうか(任意、デフォルトは true)。
convention.heading_prefixstringいいえ見出しの接頭辞(任意、デフォルトは "## Changes")。
package_namestringいいえ見出しの末尾に追加するパッケージ名(任意)。
files_changedarrayいいえPR で変更されたファイル(任意)。

詳細

changesetgen

すべてのプルリクエストには、いずれ変更セットが必要になります。これは、次回のリリースで何が変更され、バージョンをどの程度上げるべきかを伝える短い Markdown エントリーです。changesetgen は、リポジトリ独自の規約に従って、PR のコミットからそのエントリーを作成します。

  • 種類ごとにグループ化 — コミットは Conventional Commits の種類ごとに分類され、固定のセクションラベル(Features、Fixes、Performance、Refactoring、Documentation、Tests、Build、CI、Style、Chores、Reverts、Other changes)の下に出力されます。固定ラベルのない種類は、先頭の文字を大文字にして出力され、種類がないコミットは Other changes に分類されます。
  • 順序を指定可能 — デフォルトでは、グループは標準の順序に従います。convention.group_order を渡すと、優先したいグループを先頭にできます。残りのグループは引き続き標準の順序に従い、指定されていない種類は末尾にアルファベット順で並びます。グループ内のコミットは、渡された順序を維持します。
  • 詳細を記載したエントリー行 — スコープ付きのコミットは - **scope:** description として出力され、破壊的変更を含むコミットの行末には [breaking] が付き、リスクのある変更をひと目で確認できます。
  • 変更ファイル — PR のファイル一覧を渡すと、末尾の Files changed セクションに入力順で一覧表示されます。convention.include_files: false で無効にできます。
  • バージョンアップの提案 — 破壊的変更があれば major、なければ feat のコミットがあれば minor、それ以外は patch です。コミット数、破壊的変更の数、出力順のグループごとの概要も併せて表示されます。

見出しのデフォルトは ## Changes です。名前を渡すとパッケージ名を含めることができ、convention.heading_prefix で見出し全体を置き換えられます。コミットハッシュは参照用に受け付けますが、出力されません。処理は純粋かつローカルで行われます。ネットワークも設定も必要なく、渡された引数以外のファイルを読み込むこともありません。コミット一覧が空、コミットに説明がない、フィールドの入力ミスなど、無効な入力は問題のあるパスを示すエラーとともに拒否され、エントリーの一部だけが生成されることはありません。

CLI

npx @reneturcios/changesetgen generate --input args.json
npx @reneturcios/changesetgen --version

args.json には引数オブジェクト全体を記述します。

{
  "commits": [
    { "type": "feat", "scope": "ui", "description": "add export button" },
    { "type": "fix", "description": "stop crash on empty file", "hash": "abc123" },
    { "type": "feat", "scope": "api", "description": "drop the v1 endpoints", "breaking": true }
  ],
  "files_changed": ["src/export.ts", "src/api.ts"],
  "package_name": "my-pkg",
  "convention": { "group_order": ["feat", "fix"] }
}

必須なのは commits だけで、各コミットで必須なのは description だけです。生成された変更セットは JSON として出力されます:{markdown, bump, commit_count, breaking_count, groups}。

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

MCP サーバー

npx -y @reneturcios/changesetgen mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "changesetgen": {
      "command": "npx",
      "args": ["-y", "@reneturcios/changesetgen", "mcp"]
    }
  }
}
ツール
  • generate_changeset — PR のコミットから変更セットと変更履歴エントリーを生成します。

    • commits(配列、必須、1 件以上)— {description, hash?, type?, scope?, breaking?} オブジェクトとしてのコミットです。description は必須で、空でない値を指定してください。
    • files_changed(文字列の配列、任意)— PR で変更されたファイルです。Files changed セクションに一覧表示されます。
    • package_name(文字列、任意)— 見出しに追加されます。
    • convention(オブジェクト、任意)— 見出しのテキスト、グループの順序、ファイルのセクションを表示するかどうかを上書きする {heading_prefix?, group_order?, include_files?}。

    {markdown, bump, commit_count, breaking_count, groups} を返します。

Docker

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