releasenotes について
releasenotesは、変更履歴からユーザー向けと開発者向けのリリースノートを生成するローカルCLIおよびstdio MCPサーバーです。対象読者や破壊的変更に応じた整理、セクション順の指定、入力検証、件数集計に対応します。
主な機能
- 01ユーザー向けと開発者向けのノート生成
- 02対象読者に応じた項目の分類
- 03破壊的変更の明示
- 04変更履歴グループの順序指定
- 05入力検証と件数集計
活用シーン
- 011つの変更履歴から2種類のノートを作成
- 02ユーザー向けに破壊的変更を明示
- 03指定したグループ順でノートを構成
- 04変更履歴の項目と集計結果を確認
MCP 対応
stdio MCPサーバーとして動作し、`generate_release_notes`ツールでリリースノート生成を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| entries | array | はい | 生成する変更履歴のエントリ(1 件以上) |
| version | string | はい | ノートの対象となるリリースバージョン |
| group_order | array | いいえ | グループの順序。指定されていないグループは初出順に続きます(任意) |
詳細
releasenotes
1 つの変更履歴で、2 つの対象者に対応します。製品を使う人は、自分にとって何が変わったのかをわかりやすく知りたいと考えています。ワークフローに支障をきたす変更があれば、最初に明記してほしいものです。製品を基盤に開発する人は、ユーザーには見えない内部向けの項目も含め、すべてを把握したいと考えています。同じ変更履歴から両方を手作業で作成すると内容に食い違いが生じやすいため、releasenotes は 1 つの項目リストから両方を生成します。出力は 2 つで、コピー&ペーストではありません。
リリースバージョンと変更履歴の項目を指定します。各項目にはグループ(Added、Fixed、Changed など)とテキストを含め、任意で 2 つのフラグを指定できます。breaking は破壊的変更かどうか、audience(user、developer、both)はその項目の対象者を表します。これをもとに、releasenotes は次のものを生成します。
- ユーザー向けノート(
## What's new in <version>) — 最初にBreaking changesセクションを設け、ユーザー向けの破壊的変更を入力順にすべて掲載します。その後、各グループのセクションを設け、該当グループのユーザー向けの非破壊的変更を掲載します。開発者のみを対象とする項目はここには表示されません。ユーザー向けの変更がない場合、ノートにはタイトルと「このリリースにユーザー向けの変更はありません。」という行だけが含まれます。 - 開発者向けノート(
## Release <version> — developer notes) — 各グループのセクションに、すべての項目を入力順に掲載します。破壊的変更は- BREAKING: <text>と表示されるため、独立したセクションに分けられることなく、全項目の中で目立ちます。
セクションは、確定したグループ順に並びます。任意の group_order に指定されたグループがその順序で先に並び(重複は無視されます)、指定されていないグループは項目に最初に登場した順に続きます。各セクション内の項目は入力順を維持します。どちらのノートも、セクション間の空行は 1 行のみで、末尾に改行は付きません。
結果には項目数も含まれます。合計数、破壊的変更の数、ユーザー向け(user または both)の数、開発者のみを対象とする数です。不正な入力(バージョンまたは項目リストがない、もしくは空、項目にグループまたはテキストがない、breaking がブール値ではない、audience が 3 つの値のいずれでもない、不正な group_order)は、問題のあるパスを示す検証エラーになります(例:entries[1].audience must be one of "user", "developer", "both")。部分的な結果は生成されません。処理は純粋かつローカルで行われ、ネットワークや設定を使用せず、渡された入力以外のファイルも読み取りません。
CLI
npx @reneturcios/releasenotes generate --input args.json
npx @reneturcios/releasenotes --version
args.json には引数オブジェクト全体を指定します。
{
"version": "2.0.0",
"group_order": ["Added", "Fixed"],
"entries": [
{ "group": "Changed", "text": "Config files now use TOML.", "breaking": true },
{ "group": "Added", "text": "Dark mode for the dashboard." },
{ "group": "Fixed", "text": "Crash on empty search.", "audience": "user" },
{ "group": "Changed", "text": "Internal cache rewritten.", "audience": "developer" }
]
}
各項目の breaking の既定値は false、audience の既定値は
"both" です。group_order は任意です。結果は JSON として出力されます。
{
"version": "2.0.0",
"user_notes": "## What's new in 2.0.0\n\n### Breaking changes\n- Config files now use TOML.\n\n### Added\n- Dark mode for the dashboard.\n\n### Fixed\n- Crash on empty search.",
"developer_notes": "## Release 2.0.0 — developer notes\n\n### Added\n- Dark mode for the dashboard.\n\n### Fixed\n- Crash on empty search.\n\n### Changed\n- BREAKING: Config files now use TOML.\n- Internal cache rewritten.",
"counts": { "entries": 4, "breaking": 1, "user_facing": 3, "developer_only": 1 }
}
終了コード:成功時は 0、実行時エラー時(入力ファイルを読み取れない場合や入力ファイルまたは入力が無効な場合を含む)は 1、使用方法エラー時は 2 です。
MCP サーバー
npx -y @reneturcios/releasenotes mcp
MCP クライアント設定:
{
"mcpServers": {
"releasenotes": {
"command": "npx",
"args": ["-y", "@reneturcios/releasenotes", "mcp"]
}
}
}
ツール
-
generate_release_notes— 変更履歴の項目から 2 種類のリリースノートを生成します。version(文字列、必須、空でない) — ノートの対象となるリリースバージョンentries(配列、必須、1 件以上) —{group, text, breaking?, audience?}オブジェクト形式の変更履歴項目。groupとtextは空でない文字列で、breakingの既定値はfalse、audienceはuser、developer、bothのいずれか(既定値はboth)ですgroup_order(配列、任意) — グループの順序。指定されていないグループは初出順に並び、重複項目は無視されます
{version, user_notes, developer_notes, counts}を返します。
Docker
docker run -i ghcr.io/cloudcorprecords/releasenotes
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/releasenotes 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 — 著作権 (c) 2026 Rene Turcios
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。