MCPサーバ - Git
概要
Git MCP Server (mcp-server-git) は、Anthropicが開発したModel Context Protocol (MCP) の公式リファレンス実装の1つであり、
AIアシスタントがGitリポジトリと対話するための標準化されたインターフェースを提供するサーバである。
Python (uv) で実装されており、uvx コマンドを使用してインストール不要で直接実行できる。
Claude Desktop、Claude Code、VS Code、Cursor、Zed等の主要なMCPクライアントに対応している。
Windows、MacOS、Linuxの主要なOSに対応する。
このサーバを使用することにより、AIアシスタントが自然言語による指示でGitリポジトリの状態確認、差分表示、コミット履歴の確認、
ファイルのステージング・コミット、ブランチの作成・切り替え等の操作を自動化できるようになる。
提供されるツールは以下の4カテゴリ、合計12個である。
| ツール名 | 説明 |
| リポジトリ状態確認ツール | ワーキングツリーの状態確認と差分表示 (git_status、git_diff_unstaged、git_diff_staged、git_diff) |
| コミット履歴・検査ツール | コミット履歴の表示と特定コミットの詳細確認 (git_log、git_show) |
| ファイル・コミット管理ツール | ファイルのステージング、コミット、リセット (git_add、git_commit、git_reset) |
| ブランチ操作ツール | ブランチの一覧表示、作成、切り替え (git_branch、git_create_branch、git_checkout) |
動作要件
前提条件
Git MCP Serverを使用するために必要な前提条件を以下に示す。
- Python 3.10以降
- MCPサーバの実行環境として必要
- uv (Astralが提供するPythonパッケージマネージャ)
uvxコマンドを使用してMCPサーバを実行するために必要
- Git
- Gitリポジトリへのアクセスに必要
- 事前にインストールされていること
インストール
uvのインストール
MCPサーバの実行に必要なuvをインストールする。
Windowsの場合
PowerShellを使用する場合は、以下に示すコマンドを実行する。
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
WinGetを使用する場合は、以下に示すコマンドを実行する。
winget install --id=astral-sh.uv -e
MacOSの場合
Homebrewを使用する場合は、以下に示すコマンドを実行する。
brew install uv
curlを使用する場合は、以下に示すコマンドを実行する。
curl -LsSf https://astral.sh/uv/install.sh | sh
Linuxの場合
curlを使用する場合は、以下に示すコマンドを実行する。
curl -LsSf https://astral.sh/uv/install.sh | sh
wgetを使用する場合は、以下に示すコマンドを実行する。
wget -qO- https://astral.sh/uv/install.sh | sh
pip経由 (全てのOSで対応)
pipを使用してインストールする場合は、以下に示すコマンドを実行する。
pip install uv
Pythonのインストール
uv コマンドを使用してPython 3.10以降をインストールする。
uv python install 3.10
mcp-server-gitのインストール
uvx コマンドを実行する場合は、インストール不要で直接実行できる。(推奨)
以下に示すコマンドを実行して、Git MCP Serverを起動する。
uvx mcp-server-git --repository /path/to/repo
pip コマンドを実行してインストールする場合は、以下に示すコマンドを実行する。
pip install mcp-server-git
インストール後は、以下のコマンドで起動する。
python -m mcp_server_git
コマンドラインオプション
下表に、Git MCP Serverが受け付けるコマンドラインオプションを示す。
| オプション | 説明 |
|---|---|
--repository |
対象Gitリポジトリのパスを指定する。(省略時はカレントディレクトリを使用する) |
MCPクライアントの設定
設定ファイルの場所
各MCPクライアントの設定ファイルの場所は以下の通りである。
Claude Desktopの設定ファイルを以下に示す。
- Linux
- ~/.config/Claude/claude_desktop_config.json
- MacOS
- ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows
- %APPDATA%\Claude\claude_desktop_config.json
Claude Codeの設定ファイルを以下に示す。
- ローカルスコープ
- .mcp.json (プロジェクトルート) :
claude mcp addコマンドで生成される。
- .mcp.json (プロジェクトルート) :
- ユーザスコープ
- ~/.claude.json (ホームディレクトリ)
VS Codeの設定ファイルを以下に示す。
- .vscode/mcp.json (プロジェクトルート)
Cursorの設定ファイルを以下に示す。
- グローバル設定
- ~/.cursor/mcp.json
- プロジェクト設定
- .cursor/mcp.json
Claude Desktopの設定
claude_desktop_config.json ファイルに以下に示す内容を設定する。
{
"mcpServers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "/path/to/repo"]
}
}
}
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。
Claude Codeの設定
Claude Codeでは、claude mcp add コマンドを使用してGit MCP Serverを追加できる。
以に示すコマンドでMCPサーバをClaude Codeに登録する。
claude mcp add git -- uvx mcp-server-git --repository /path/to/repo
プロジェクトスコープで設定する場合は、--scope project オプションを追加する。
設定は、.mcp.json ファイルに保存される。
claude mcp add --scope project git -- uvx mcp-server-git --repository /path/to/repo
上記コマンドにより生成される .mcp.json の内容を以下に示す。
{
"mcpServers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "/path/to/repo"]
}
}
}
VS Code / Cursorの設定
.vscode/mcp.json または .cursor/mcp.json ファイルに以下に示す内容を設定する。
{
"mcpServers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "/path/to/repo"]
}
}
}
提供ツールの一覧
Git MCP Serverは、Gitリポジトリを操作するための12個のツールを4カテゴリに分けて提供する。
リポジトリ状態確認ツール
下表に、ワーキングツリーの状態確認および差分表示に関するツールを示す。
| ツール | 説明 |
|---|---|
git_status |
ワーキングツリーの状態を表示する。(変更ファイル、未追跡ファイル等) |
git_diff_unstaged |
ステージング前の変更内容を差分表示する。 |
git_diff_staged |
ステージング済みの変更内容を差分表示する。 |
git_diff |
ブランチ間またはコミット間の差分を表示する。 |
コミット履歴・検査ツール
下表に、コミット履歴の表示と特定コミットの詳細確認に関するツールを示す。
| ツール | 説明 |
|---|---|
git_log |
コミット履歴を表示する。 日付範囲フィルタリング対応。ISO 8601形式または相対日付で指定可能 |
git_show |
特定のコミットの詳細内容を表示する。 コミットハッシュ、ブランチ名、タグ等で指定可能 |
ファイル・コミット管理ツール
下表に、ファイルのステージング、コミット、リセットに関するツールを示す。
| ツール | 説明 |
|---|---|
git_add |
ファイルをステージング領域に追加する。 |
git_commit |
ステージング済みの変更をコミットする。 |
git_reset |
ステージング済みの変更をリセットする。 |
ブランチ操作ツール
下表に、ブランチの一覧表示、作成、切り替えに関するツールを示す。
| ツール | 説明 |
|---|---|
git_branch |
ブランチを一覧表示する。 ローカル、リモート、全てを指定可能 |
git_create_branch |
新しいブランチを作成する。 ベースブランチの指定が可能 |
git_checkout |
指定したブランチに切り替える。 |
使用方法
Git MCP Serverを設定後、AIアシスタントに自然言語で指示するだけで、対応するツールが自動的に呼び出される。
リポジトリ状態の確認
リポジトリの状態や変更内容を確認する場合の操作例を以下に示す。
- ワーキングツリーの状態を確認する場合
# プロンプト例 : リポジトリの現在のステータスを確認してください。
- ステージング前の変更内容を確認する場合
# プロンプト例 : ステージング前の変更内容を見せてください。
- 2つのブランチ間の差分を確認する場合
# プロンプト例 : mainブランチとdevelopブランチの差分を表示してください。
コミット履歴の確認
コミット履歴を確認する場合の操作例を以下に示す。
- 過去1ヶ月のコミット履歴を確認する場合
# プロンプト例 : 過去1ヶ月のコミット履歴を表示してください。
- 特定のコミットの詳細を確認する場合
# プロンプト例 : コミットハッシュ abc1234 の詳細内容を表示してください。
ファイルのステージングとコミット
ファイルをステージングしてコミットする場合の操作例を以下に示す。
- 変更ファイルを全てステージングしてコミットする場合
# プロンプト例 : 変更ファイルをすべてステージングして、"Fix: typo in README" というメッセージでコミットしてください。
ブランチの操作
ブランチを作成して切り替える場合の操作例を以下に示す。
- 新しいブランチを作成して切り替える場合
# プロンプト例 : developブランチから feature/new-api ブランチを作成して切り替えてください。
- ブランチの一覧を確認する場合
# プロンプト例 : ローカルブランチの一覧を表示してください。
トラブルシューティング
共通の問題
下表に、OS問わず発生する可能性がある問題と対処法を示す。
| 問題 | 対処法 |
|---|---|
| uvxコマンドが見つからない | PATHの設定を確認する。 シェルの設定ファイル (~/.bashrc 等) を再読み込み または uvを再インストールする。 |
| Pythonバージョンが不足している | uv python install 3.10 コマンドを実行して、Python 3.10以降をインストールする。
|
| Gitがインストールされていない | パッケージ管理システムを使用して、Gitをインストールする。 |
--repository パスが不正 |
相対パスではなく絶対パスを指定することを推奨する。 パスにスペースが含まれる場合は、クォートで囲む。 |
| パーミッションエラーが発生する | chmod または chown コマンドを実行して、リポジトリのアクセス権限を調整する。
|
| JSON設定ファイルの構文エラーが発生する | JSONバリデータを使用して設定ファイルの構文を確認する。 修正後、MCPクライアントを再起動して設定を反映する。 |
| サーバが起動しない | MCPクライアントを再起動する。 ログファイルを確認してエラーの詳細を調べる。 |
Linuxでの問題
下表に、Linux環境で発生する可能性がある問題と対処法を示す。
| 問題 | 対処法 |
|---|---|
| uvコマンドが見つからない | ~/.profile ファイル等に環境変数 PATH が正しく設定されているか確認する。
|
| パーミッションエラーが発生する | 実行権限を付与する。 例: chmod +x ~/.local/bin/uv
|
MacOSでの問題
下表に、MacOS環境で発生する可能性がある問題と対処法を示す。
| 問題 | 対処法 |
|---|---|
| Apple Silicon環境で、uvコマンドが見つからない | Homebrewを使用して、uvを再インストールする。brew install uv コマンドを実行する。
|
Windowsでの問題
下表に、Windows環境で発生する可能性がある問題と対処法を示す。
| 問題 | 対処法 |
|---|---|
| ENOENTエラーが発生する | 設定ファイルに環境変数 (PATH 等) を明示的に指定する。
|
| パスの区切り文字に関するエラーが発生する | Windowsのパス区切り文字 (\) を使用する。または、スラッシュ ( /) に統一して指定する。
|