mcpField
B
branchname

branchname

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

branchname について

branchnameは、課題タイトルと任意の情報からリポジトリの規則に沿ったブランチ名を生成するローカルのMCPサーバー兼コマンドラインツールです。一貫したslug化と4種類の命名規則に対応し、ネットワークやリポジトリにはアクセスしません。

主な機能

  1. 01課題タイトルの一貫したslug化
  2. 024種類の命名規則への対応
  3. 03課題番号と変更種別の付加
  4. 04slugの最大長の設定
  5. 05ローカルでの入力検証

活用シーン

  1. 01課題タイトルからのブランチ名作成
  2. 02リポジトリ指定の命名規則の適用
  3. 03長いタイトルのslugの制限
  4. 04不完全または無効な引数の拒否

MCP 対応

ブランチ名、最終slug、適用した命名規則を返すmake_branch_nameツールをMCPクライアントに提供します。

設定

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

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

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

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

ツール

1

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

パラメーター型必須説明
typeenumいいえ変更タイプのプレフィックス(任意)feat | fix | chore | docs | refactor | test
titlestringはいスラッグ化する issue タイトル
conventionenumいいえ組み合わせに使用する命名規則(任意、デフォルトは "type-issue-slug")type-issue-slug | type-slug | issue-slug | slug
issue_numberintegerいいえissue 番号(任意)
max_slug_lengthintegerいいえ切り詰める前の最大スラッグ長(任意、デフォルトは 40)

詳細

branchname

ブランチ名を付けるのは簡単に思えますが、すべてのコントリビューターが それぞれ違う付け方をすると話は別です。fix-login、123-login-bug、 johns-branch、同じ問題を表す十数種類もの名前が生まれ、どれも 同じ方法では検索できません。branchname は逆の方法を取ります。 課題を渡せば、リポジトリのルールに従った名前を毎回ひとつ返します。

タイトルは固定されたレシピに従ってスラッグ化されます。小文字にし、 [a-z0-9] 以外の文字が連続する部分をそれぞれ単一の - に置き換え、 先頭と末尾の - を取り除きます。句読点が連続していても - が増える ことはなく、数字はそのまま残ります。ASCII 以外の文字(アクセント記号、 ダッシュ、絵文字など)は、ほかの句読点と同じく区切り文字として扱われます。 スラッグ化できる文字がまったく含まれないタイトルは、- という名前の ブランチになるのではなく、エラー("title produces an empty slug")になります。

スラッグが長すぎる場合は切り詰められます。max_slug_length 文字ちょうど (デフォルトは 40、最小値は 8)に切り詰めたあと、切断位置に残った末尾の - を取り除くため、ブランチ名がぶら下がったハイフンで終わることはありません。

その後、次の4種類の規則のいずれかでスラッグを組み立てます。

  • type-issue-slug(デフォルト) — <type>/<issue_number>-<slug>。例:fix/123-login-redirect-loop。 type と issue_number の両方が必要です。
  • type-slug — <type>/<slug>。例:docs/update-install-guide。 type が必要です。
  • issue-slug — <issue_number>-<slug>。例:42-login-redirect-loop。 issue_number が必要です。
  • slug — <slug> のみ。例:login-redirect-loop。 どちらも必要ありません。

type は feat、fix、chore、docs、refactor、 test のいずれかです。指定されていない要素を必要とする規則を選ぶと、 その要素名を示すエラーになります。また、入力が不正な場合(title の 欠落、空文字列、または文字列以外の値、1以上の整数ではない issue_number、列挙値に含まれない type または convention、 8以上の整数ではない max_slug_length)は、不正なパスを示す バリデーションエラーとなり、部分的な結果は返されません。この処理は 純粋かつローカルです。ネットワークや設定は使用せず、リポジトリの読み取りや 変更も行いません。branchname が行うのは名前の生成だけです。

CLI

npx @reneturcios/branchname make --input args.json
npx @reneturcios/branchname --version

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

{
  "title": "Fix login redirect loop",
  "issue_number": 123,
  "type": "fix"
}

convention のデフォルトは "type-issue-slug"、max_slug_length の デフォルトは 40 です。結果は JSON として出力されます。

{
  "branch": "fix/123-fix-login-redirect-loop",
  "slug": "fix-login-redirect-loop",
  "convention": "type-issue-slug"
}

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

MCP サーバー

npx -y @reneturcios/branchname mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "branchname": {
      "command": "npx",
      "args": ["-y", "@reneturcios/branchname", "mcp"]
    }
  }
}
ツール
  • make_branch_name — 課題のタイトルからブランチ名を生成します。

    • title(文字列、必須、空でない値)— スラッグ化する課題のタイトル
    • issue_number(整数、任意、1以上)— 課題番号
    • type(文字列、任意)— 変更の種類を示すプレフィックス。feat、fix、 chore、docs、refactor、test のいずれか
    • convention(文字列、任意、デフォルトは "type-issue-slug")— type-issue-slug、type-slug、 issue-slug、slug のいずれか
    • max_slug_length(整数、任意、デフォルトは 40、最小値は 8)— 切り詰める前のスラッグの最大長

    {branch, slug, convention} を返します。slug は最終的な (切り詰められている場合もある)スラッグで、convention は 確定した規則を示します。

Docker

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