mcpField
G
Git MCP

Git MCP

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

Git MCP について

Git MCPは、コーディングエージェントやほかのMCPクライアントにGit操作を提供します。日常的なワークフローから高度な履歴操作、リポジトリ分析、プルリクエストまで扱い、破壊的な操作には確認を求めます。

主な機能

  1. 0118ツールによるGitワークフロー
  2. 02破壊的操作の確認
  3. 03GPGおよびSSHによるコミット署名
  4. 04Git LFSとGit Flowのサポート
  5. 05リポジトリ分析とプルリクエスト
  6. 06状態、ログ、ブランチ、差分の読み取り専用リソース

活用シーン

  1. 01リポジトリの変更確認と管理
  2. 02コミット履歴の復旧や書き換え
  3. 03worktreeの作成と管理
  4. 04リポジトリ活動の分析とプルリクエスト対応

MCP 対応

Git操作用のMCPツールと、リポジトリの状態、ログ、ブランチ、差分を示す読み取り専用リソースを提供します。GitHub Copilot、Claude Code、Cursor、OpenAI CodexなどのMCPクライアントに設定できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"git-mcp-selfagency": {
"command": "npx",
"args": [
"-y",
"@selfagency/git-mcp"
],
"env": {
"GIT_REPO_PATH": "<GIT_REPO_PATH>",
"GIT_ALLOW_NO_VERIFY": "<GIT_ALLOW_NO_VERIFY>",
"GIT_ALLOW_FORCE_PUSH": "<GIT_ALLOW_FORCE_PUSH>",
"GIT_ALLOW_FLOW_HOOKS": "<GIT_ALLOW_FLOW_HOOKS>",
"GIT_SIGNING_KEY": "<GIT_SIGNING_KEY>",
"GIT_SIGNING_FORMAT": "<GIT_SIGNING_FORMAT>",
"GIT_AUTO_SIGN_COMMITS": "<GIT_AUTO_SIGN_COMMITS>",
"GIT_AUTO_SIGN_TAGS": "<GIT_AUTO_SIGN_TAGS>"
}
}
}
}
起動コマンドnpx -y @selfagency/git-mcp
設定が必要な環境変数
GIT_REPO_PATHDefault repository path for all tool requests. Can also be set via the --repo / --repo-path CLI argument. If omitted, each tool call must supply repo_path explicitly.
GIT_ALLOW_NO_VERIFYSet to 'true' to expose a no_verify parameter on commit and push tools, passing --no-verify to Git and bypassing pre-commit / pre-push hooks.
GIT_ALLOW_FORCE_PUSHSet to 'true' to expose a force parameter on push tools. Remote branch protection rules (GitHub/GitLab) are still enforced server-side regardless.
GIT_ALLOW_FLOW_HOOKSSet to 'true' to allow git_flow to execute git-flow-next-compatible hook and filter programs discovered from git config or repository hook locations.
GIT_SIGNING_KEYシークレットDefault signing key: a GPG key ID, an SSH public key path, or empty to use git's configured user.signingkey. Used when GIT_AUTO_SIGN_COMMITS or GIT_AUTO_SIGN_TAGS is enabled.
GIT_SIGNING_FORMATSigning format for commits and tags. Accepted values: openpgp, ssh, x509.
GIT_AUTO_SIGN_COMMITSSet to 'true' to automatically sign all commits produced by this server.
GIT_AUTO_SIGN_TAGSSet to 'true' to automatically sign all tags produced by this server.

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

パッケージ
npm@selfagency/git-mcp0.4.2

ツール

12

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

パラメーター型必須説明
repo_pathstringいいえローカル Git リポジトリの絶対パスです。省略した場合は、GIT_REPO_PATH 環境変数または --repo-path CLI 引数で設定されたサーバーのデフォルト値が使用されます。
actionenumいいえstatus | diff | diff_main
modeenumいいえunstaged | staged | refs
from_refstringいいえ
to_refstringいいえ
filteredbooleanいいえ
base_branchstringいいえ
response_formatenumいいえレスポンスの出力形式。markdown | json

詳細

git-mcp

CI codecov NPM Version

使い勝手のよい Git MCP サーバー

MCP 対応のあらゆる AI エージェントで、Git のワークフロー全体を利用できます。確認、書き込み、ブランチ操作、リモート操作、スタッシュ、リベース、LFS、git-flow、ドキュメント検索などに対応しています。デフォルトで安全に利用でき、組み合わせやすく、高速に動作するよう設計されています。simple-git を基盤としています。

GitHub Copilot、Claude Code、Cursor、OpenAI Codex などのツールを使うコーディングエージェント向けに開発されています。また、ツールやリソースを呼び出せるあらゆる MCP クライアントとの互換性も備えています。


特長

  • 18 個のツールと 80 以上のアクションで、日常的な Git ワークフロー、高度な復旧、履歴の書き換え、リポジトリ分析、フォージのプルリクエスト、外部 VCS の認識に対応
  • 安全性を最優先 — 破壊的な操作には明示的な確認が必要です。強制プッシュとフックのバイパスは、サーバー設定でオプトインできます
  • コミットとタグの GPG/SSH 署名に対応し、サーバーレベルの自動署名もサポート
  • Git LFS — パターンの追跡、オブジェクトの管理、フックのインストール、履歴の移行
  • Git Flow — git-flow-next CLI を利用するため、CLI の進化に合わせて、完了時のステートマシン、競合からの復旧、ワークツリーのライフサイクルを正しく維持します。プリセットによる初期化、概要表示、設定の CRUD、汎用的なトピック操作、従来の feature/release/hotfix/support エイリアスに対応
  • ドキュメント検索 — git-scm.com を検索し、LLM から man ページを直接取得
  • MCP リソース — ステータス、ログ、ブランチ、差分を URI で指定できる読み取り専用ビュー
  • エージェント用スキルを同梱 — skills/git-mcp-workflow/ には、MCP を優先する Git ワークフロー、復旧、ワークツリー、リリース、高度な操作について、AI エージェントとコーディングエージェント向けの説明があります。skills-npm と skill.sh からインストールできます
  • 外部 VCS の認識 — git_but_check/git_jj_check が GitButler と Jujutsu を検出し、適切な場合には git-mcp のツールよりも、それぞれのネイティブ CLI/MCP(but teardown の案内を含む)を優先するようエージェントを導きます
  • 履歴の書き換え — git_rewrite:コミット履歴を安全に書き換えるための、メッセージの修正、スカッシュ、メッセージの書き換え、バックアップ/復元
  • リポジトリ分析 — git_analytics:ローカルの Git 履歴から、コントリビューター、変更量、アクティビティ、概要、ファイル統計を算出
  • プルリクエスト — git_pr:プロバイダーの CLI または REST API 経由で、GitHub、GitLab、Forgejo、Gitea、Bitbucket の PR/MR を作成、一覧表示、マージ
  • Tangled と Entire の認識 — git_tangled_check/git_entire_check が、Tangled のホスティングと Entire のセッション/コンテキスト管理を検出
  • 複数リポジトリ — 呼び出しごとに repo_path を渡すか、サーバーレベルのデフォルトを設定
  • ワークツリー — git_worktree:パスを指定した通常の git worktree、またはパステンプレートと由来を考慮したクリーンアップに対応する、git flow worktree 経由のブランチ指定ワークツリー
  • クロスプラットフォーム — macOS、Linux、Windows(Git for Windows)に対応し、すべて CI で検証

クイックスタート

npx(インストール不要)
npx @selfagency/git-mcp --repo-path /path/to/your/repo
グローバルにインストール
npm install -g @selfagency/git-mcp
git-mcp --repo-path /path/to/your/repo
Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "git": {
      "command": "npx",
      "args": ["-y", "@selfagency/git-mcp", "--repo-path", "/path/to/your/repo"]
    }
  }
}
VS Code(Copilot)

プロジェクトの .vscode/mcp.json に追加します。

{
  "servers": {
    "git": {
      "command": "npx",
      "args": ["-y", "@selfagency/git-mcp", "--repo-path", "${workspaceFolder}"]
    }
  }
}

設定

すべての設定は環境変数で行います。MCP クライアントの設定に渡してください。

VariableDefaultDescription
GIT_REPO_PATH—デフォルトのリポジトリパス(--repo-path CLI 引数でも指定できます)
GIT_ALLOW_NO_VERIFYfalseコミット/プッシュ時に --no-verify を許可します(フックをバイパスします)
GIT_ALLOW_FORCE_PUSHfalseプッシュ時に --force を許可します
GIT_ALLOW_FLOW_HOOKSfalsegit_flow のフックとフィルターの実行を許可します
GIT_AUTO_SIGN_COMMITSfalseすべてのコミットに自動的に署名します
GIT_AUTO_SIGN_TAGSfalseすべてのタグに自動的に署名します
GIT_SIGNING_KEY—デフォルトの GPG キー ID または SSH キーのパス
GIT_SIGNING_FORMAT—署名形式:openpgp、ssh、または x509
GIT_ALLOW_BUTfalseGitButler の認識機能を有効にします(git_but_check)
GIT_ALLOW_JJfalseJujutsu の認識機能を有効にします(git_jj_check)
GIT_ALLOW_TANGLEDfalseTangled の認識機能を有効にします(git_tangled_check)
GIT_ALLOW_ENTIREfalseEntire の認識機能を有効にします(git_entire_check)
BUT_BINARYbutbut 実行ファイルのパスを上書きします
JJ_BINARYjjjj 実行ファイルのパスを上書きします
ENTIRE_BINARYentireentire 実行ファイルのパスを上書きします
GITHUB_TOKEN—git_pr の REST フォールバックに使用する GitHub トークン
GITLAB_TOKEN—git_pr の REST フォールバックに使用する GitLab トークン
FORGEJO_TOKEN—git_pr の REST フォールバックに使用する Forgejo/Gitea トークン
BITBUCKET_TOKEN—git_pr の REST フォールバックに使用する Bitbucket トークン
GIT_FORGE_PROVIDER—セルフホスト型インスタンス用の明示的なフォージプロバイダー

ツールリファレンス

ツールはドメイン別にグループ化されています。各ルートツールには、操作を選択する action パラメーターがあります。アクションにデフォルトの指定がある場合、action を省略するとそのアクションが使用されます。

コンテキスト(git_context)
ActionDescription
summary(デフォルト) リポジトリの全体的なスナップショット:ブランチ、上流、保留中の変更、進行中の操作
searchコミット履歴と作業ツリーの内容を検索します
get_configGit の設定値を読み取ります
set_configGit の設定値を書き込みます
aliases設定済みのすべての Git エイリアスを一覧表示します
ステータス(git_status)
ActionDescription
status(デフォルト) 作業ツリーとブランチのステータス
diffステージされていない変更、ステージ済みの変更、または参照間の差分
diff_mainブランチの分岐点から main(または設定可能なベースブランチ)までの変更
履歴(git_history)
アクション説明
log(default) フィルタリング、ページネーション、リビジョン範囲、パス指定に対応したコミットログ
show単一のコミットを調べる
blameファイルの行ごとの帰属を表示する
reflog完全な reflog — 復旧用の記録
lgコンパクトなグラフ形式のログ(--oneline --graph --decorate --all)
whoコントリビューターの簡易ログ(オプションの file_path に対応)
コミット(git_commits)
アクション説明
addファイルまたはハンクをステージする
restore作業ツリーの変更を破棄する
unstageステージングエリアからファイルを削除する
commitメッセージ、署名、作成者のフラグを指定してコミットを作成する
amendメッセージを編集せずに直前のコミットを修正する
wipすべての変更をステージし、メッセージ WIP でコミットする
revert指定した ref のリバートコミットを作成する
undo直前のコミットをソフトリセットする(reset --soft HEAD~1)
reset設定可能なモード(soft/mixed/hard)で HEAD をリセットする
nuke直前のコミットをハードリセットする — confirm=true が必要
ブランチ(git_branches)
アクション説明
list(default) ローカルブランチとリモートブランチの一覧
createブランチを作成する
deleteブランチを削除する
renameブランチ名を変更する
checkoutブランチまたは ref に切り替える
set_upstream追跡先の upstream を設定または更新する
recentコミッターの日付順に並べた最近のブランチ
リモート(git_remotes)
アクション説明
list(default) 設定済みリモートの一覧
manageリモートを追加、削除、または名前変更する
fetchリモートからフェッチする
pullプルする(フェッチ + マージ/リベース)
pushリモートにプッシュする。force_with_lease に対応
ワークスペース(git_workspace)
アクション説明
stashstash エントリを stash し、pop/apply/drop/list/show する
stash_all追跡対象と未追跡の変更を1回の操作で stash する
rebaseリベースを開始、続行、中止、またはスキップする
cherry_pick1つ以上のコミットを適用する。続行/中止/スキップに対応
mergeすべてのフラグを指定してブランチをマージする
bisect回帰を二分探索する(start、good、bad、reset、log)
tagタグを作成、一覧表示、削除、またはプッシュする。GPG/SSH 署名に対応
worktreeリンクされた worktree を追加、一覧表示、削除、ロック、ロック解除、整理、または修復する
submoduleサブモジュールを追加、更新、同期、初期化、初期化解除、一覧表示する
Git Flow(git_flow)

git-flow-next CLI を実行します。インストールして PATH に追加しておく必要があります (brew install git-flow-next、またはリリースページを参照してください)。 パスを上書きするには GIT_FLOW_BINARY を設定します。バイナリが見つからない場合、このツールは不明瞭なエラーを返すのではなく、インストール方法を案内します。

操作説明
initgit-flow のブランチ規約に従ってリポジトリを初期化します
overview現在のフローの状態とアクティブなブランチを表示します
configgit-flow の設定値を読み取る、または書き込みます
topic汎用的なトピックブランチ操作(start、finish、publish、track)
control進行中の finish または update を再開、または中止します

フラグは対象の動詞に適用されます。worktree と worktree_path は start と checkout に適用され、keep_worktree と force_worktree は finish と delete に適用されます。対象が一致しない場合、フラグは黙って無視されず、エラーになります。すべてのパラメーターについてはツールリファレンスを参照してください。

Worktree(git_worktree)

バックエンドは2種類あります。パスを指定する操作は通常の git worktree を実行し、git 以外は必要ありません。ブランチを指定する flow_* 操作は git flow worktree を実行し、ブランチ名でワークツリーを指定します。gitflow.worktreePath テンプレートからパスを算出し、作成元を示すタグを付けることで、クリーンアップ時に git-flow が作成したワークツリー(削除)と手動作成したワークツリー(デタッチ状態にし、未コミットの作業を保持)を区別できます。

操作説明
add、list、remove、lock、unlock、prune、repair通常の git worktree。パスで識別します
flow_path、flow_add、flow_remove、flow_listgit flow worktree。ブランチで識別します

ツールリファレンスを参照してください。

LFS(git_lfs)
操作説明
track.gitattributes に追跡パターンを追加します
untrack追跡パターンを削除します
ls-files追跡対象の LFS ファイルを一覧表示します
statusLFS の状態を表示します
pullLFS オブジェクトをプルします
pushLFS オブジェクトをプッシュします
installリポジトリに LFS フックをインストールします
migrate-import既存の履歴を LFS に移行します
migrate-exportLFS の履歴を通常のオブジェクトに戻します
ドキュメント(git_docs)
操作説明
searchgit-scm.com でドキュメントを検索します
manGit の man ページを取得して返します
履歴の書き換え(git_rewrite)
操作説明
reword1つのコミットメッセージを変更します(HEAD はその場で修正し、任意のコミットは filter-branch を使用します)
squash直近の N 件のコミットを1つにまとめます(confirm=true が必要です)
rewrite-messagesSHA→メッセージのマップを使って範囲内のメッセージを書き換えます(confirm=true が必要です)
backup書き換え前に rewrite-backup/<name> ブランチを作成します
restoreバックアップブランチにハードリセットします(confirm=true が必要です)
アナリティクス(git_analytics)
アクション説明
contributors作成者ごとのコミット数、変更行数(追加/削除)、最初と最後のアクティビティ
churnファイルのホットスポット(コミット数最多/変更行数最多)
activity日ごとのコミット頻度
summaryブランチ/タグ数、コミット総数、主なコントリビューター、最古/最新のコミット
file-statsファイル種別の内訳、最大のファイル、最近変更されたファイル
プルリクエスト(git_pr)
アクション説明
create検出されたホスティングサービス(GitHub、GitLab、Forgejo、Gitea、Bitbucket)で PR/MR を作成します
listPR/MR を一覧表示します(状態で絞り込み)
mergePR/MR をマージします(方式:merge/squash/rebase)

ローカルにインストールされている場合はプロバイダーの CLI(gh/glab/tea)を使用し、そうでない場合は *_TOKEN 環境変数を使用して REST API を利用します。プロバイダーは origin リモートから自動検出されます。セルフホストインスタンスでは GIT_FORGE_PROVIDER を使用します。

外部 VCS の認識
ツール説明
git_but_checkGitButler の but CLI を検出します。but mcp/but を優先し、git-mcp ツールを実行する前に but teardown を実行します
git_jj_checkJujutsu の jj CLI と .jj/ による管理を検出します。jj で管理されたリポジトリでは jj CLI を優先します
git_tangled_checkTangled のホスティングを検出します。Git の転送は利用できますが、PR はウェブ UI 経由です
git_entire_checkEntire CLI と .entire/ による管理を検出します。セッション/コンテキストの問い合わせには entire を使用します
ヘルスチェック(git_ping)

サーバーの状態を返します。サーバーに接続できることの確認に役立ちます。


MCP リソース

URI で指定できる読み取り専用スナップショット(サブスクリプション対応):

リソース URI内容
git+repo://status/{repo_path}作業ツリーの状態(JSON)
git+repo://log/{repo_path}最近のコミットログ(JSON)
git+repo://branches/{repo_path}ブランチ一覧(JSON)
git+repo://diff/{repo_path}ステージング前とステージング済みの差分(JSON)

同梱のエージェントスキル

git-mcp には skills/git-mcp-workflow/ にエージェントスキルが同梱されています。このスキルにより、skills-npm 互換のエージェントは、生の git CLI コマンドを実行する代わりに MCP ツールを利用できます。スキルの内容は次のとおりです。

  • LLM が Git CLI を使用してはいけない理由(引用符の扱いに関する問題、失敗が通知されないこと)
  • 変更前に調査するワークフローのルール
  • 取り消しと復旧操作の安全な実行順序
  • 登録済みツール一式とアクションのリファレンス
  • ワークフローの手順書:機能ブランチ、リベース、復旧、ワークツリー、バックポート、リリースタグ付け、Git Flow、マージ
  • MCP ツールに基づく Git の概念説明
スキルのインストール

エージェントが skills-npm に対応している場合:

npm install @selfagency/git-mcp   # or pnpm/yarn
npx skills-npm

または、プロジェクトの package.json に追加すると、自動的に実行されます。

{
  "scripts": {
    "prepare": "skills-npm"
  }
}

次に、.gitignore に追加します。

skills/npm-*

安全性

  • 変更を伴うすべてのツールには、MCP アノテーションで destructiveHint: true が設定されています
  • git_commits action=reset mode=hard には confirm=true が必要です
  • git_commits action=nuke には confirm=true が必要です
  • GIT_ALLOW_FORCE_PUSH=true が設定されていない場合、強制プッシュ(--force)は無効です。force_with_lease は常に使用できます
  • GIT_ALLOW_NO_VERIFY=true が設定されていない場合、フックのバイパス(--no-verify)は無効です
  • GIT_ALLOW_FLOW_HOOKS=true が設定されていない場合、git_flow のフックとフィルターの実行は無効です
  • パスはリポジトリのルートに照らして検証され、ディレクトリトラバーサルの試みは拒否されます
  • 認証情報とトークンが応答に含まれることはありません

開発

# Clone and install
git clone https://github.com/selfagency/git-mcp.git
cd git-mcp
pnpm install

# Run in development mode (hot reload)
pnpm dev

# Build
pnpm build

# Run tests
pnpm test

# Type check
pnpm typecheck

# Lint
pnpm lint

# Docs (dev server)
pnpm docs:dev

# Docs (build)
pnpm docs:build

ライセンス

MIT © Daniel Sieradski

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。