mcpField
G
GIT MCP Server

GIT MCP Server

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

GIT MCP Server について

GIT MCP Server は、MCP を通じて AI アシスタントや LLM エージェントに Git リポジトリの情報と操作を提供します。リポジトリ、ブランチ、作業ツリー、リモート、各種高度な操作に対応し、履歴やファイル変更をリソースとして参照できます。

主な機能

  1. 01リポジトリの初期化、クローン、状態確認
  2. 02ブランチの作成、切替、マージ、削除
  3. 03変更のステージング、コミット、差分確認
  4. 04リモートのフェッチ、プル、プッシュ
  5. 05タグ、スタッシュ、チェリーピック、リベースの管理
  6. 06リポジトリリソースとコミット履歴の参照

活用シーン

  1. 01AI エージェントによるリポジトリ状態と履歴の確認
  2. 02MCP ツールを使ったブランチやコミットの変更
  3. 03ファイル内容、差分、行単位の変更者の確認
  4. 04リモート更新と高度な Git 操作の管理

MCP 対応

Git 操作をツールとして、リポジトリ情報をリソースとして MCP クライアントに提供します。ファイルシステムやコマンドラインへ直接アクセスせずに操作できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"git-mcp-server-wty0512": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
起動コマンドnpx -y @modelcontextprotocol/inspector

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

パッケージ
npm@modelcontextprotocol/inspector

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

GIT MCP サーバー

TypeScript Model Context Protocol Version License Status GitHub

Git リポジトリを操作するためのツールを提供する Model Context Protocol(MCP)サーバーです。このサーバーを使うと、AI アシスタントや LLM エージェントは、ファイルシステムやコマンドラインへの直接アクセスを必要とせず、標準化されたインターフェースを通じてリポジトリ、ブランチ、コミット、ファイルを管理できます。適切なセキュリティ境界を維持しながら、Git 操作を MCP リソースおよびツールとして公開します。

目次

概要

主な機能:

  • リポジトリ管理:リポジトリの初期化、クローン、状態の確認
  • ブランチ操作:ブランチの作成、一覧表示、チェックアウト、削除、マージ
  • 作業ディレクトリ:ファイルのステージング、変更のコミット、差分の作成
  • リモート操作:リモートの追加、フェッチ、プル、プッシュ
  • 高度な Git コマンド:タグの管理、変更のスタッシュ、チェリーピック、リベース
アーキテクチャとコンポーネント

システムのコアアーキテクチャ:

クリックして Mermaid ダイアグラムを展開
flowchart TB
    subgraph API["API Layer"]
        direction LR
        MCP["MCP Protocol"]
        Val["Validation"]

        MCP --> Val
    end

    subgraph Core["Core Services"]
        direction LR
        GitService["Git Service"]
        ErrorService["Error Service"]

        GitService <--> ErrorService
    end

    subgraph Resources["Resource Layer"]
        direction LR
        Repo["Repository Resources"]
        Diff["Diff Resources"]
        File["File Resources"]
        History["History Resources"]

        Repo <--> Diff
        Repo <--> File
        Repo <--> History
    end

    subgraph Tools["Tool Layer"]
        direction LR
        RepoTools["Repository Tools"]
        BranchTools["Branch Tools"]
        WorkdirTools["Working Directory Tools"]
        RemoteTools["Remote Tools"]
        AdvancedTools["Advanced Tools"]

        RepoTools <--> BranchTools
        BranchTools <--> WorkdirTools
        WorkdirTools <--> RemoteTools
        RemoteTools <--> AdvancedTools
    end

    Val --> GitService
    GitService --> Resources
    GitService --> Tools

    classDef layer fill:#2d3748,stroke:#4299e1,stroke-width:3px,rx:5,color:#fff
    classDef component fill:#1a202c,stroke:#a0aec0,stroke-width:2px,rx:3,color:#fff
    classDef api fill:#3182ce,stroke:#90cdf4,stroke-width:2px,rx:3,color:#fff
    classDef core fill:#319795,stroke:#81e6d9,stroke-width:2px,rx:3,color:#fff
    classDef resource fill:#2f855a,stroke:#9ae6b4,stroke-width:2px,rx:3,color:#fff
    classDef tool fill:#805ad5,stroke:#d6bcfa,stroke-width:2px,rx:3,color:#fff

    class API,Core,Resources,Tools layer
    class MCP,Val api
    class GitService,ErrorService core
    class Repo,Diff,File,History resource
    class RepoTools,BranchTools,WorkdirTools,RemoteTools,AdvancedTools tool

コアコンポーネント:

  • MCP サーバー:Model Context Protocol SDK を使用して、リソースとツールを公開するサーバーを作成します
  • Git サービス:simple-git の抽象化レイヤーとして、Git 操作用の使いやすいインターフェースを提供します
  • リソース:一貫した URI テンプレートを使用して、Git データを MCP リソースとして公開します
  • ツール:明確に定義されたスキーマを使用して、Git 操作を MCP ツールとして公開します
  • エラー処理:標準化されたエラー処理と報告

機能

リソースへのアクセス

MCP リソースを通じて Git リポジトリ情報を公開します。

  • リポジトリ情報:現在のブランチ、ステータス、参照の詳細など、Git リポジトリの基本情報にアクセスします
  • リポジトリのブランチ:現在のブランチを示す印を付けて、リポジトリ内のすべてのブランチを一覧表示します
  • リポジトリのリモート:設定済みのすべてのリモートリポジトリとその URL を一覧表示します
  • リポジトリのタグ:リポジトリ内のすべてのタグとその参照を一覧表示します
  • ファイルの内容:指定した Git 参照における特定のファイルの内容にアクセスします
  • ディレクトリ一覧:特定のパスと参照にあるファイルおよびディレクトリの一覧を表示します
  • 差分:参照間、ステージングされていない変更、またはステージング済みの変更の差分を取得します
  • コミット履歴:作成者、日付、メッセージ情報を含む詳細なコミットログを表示します
  • ファイルの Blame:各行を最後に変更したコミットを示す、行ごとの帰属情報を確認します
  • コミットの詳細:差分の変更内容など、特定のコミットの詳細情報にアクセスします
Git 操作

MCP ツールを通じて Git コマンドを実行します。

  • リポジトリ操作:リポジトリの初期化、リモートからのクローン、リポジトリのステータス確認
  • ブランチ操作:ブランチの作成、一覧表示、チェックアウト、削除、マージ
  • 作業ディレクトリ操作:ファイルのステージング、ステージング解除、変更のコミット、差分の作成
  • リモート操作:リモートの追加、一覧表示、フェッチ、プル、プッシュ
  • 高度な操作:タグの管理、変更のスタッシュ、コミットのチェリーピック、ブランチのリベース、リセット、クリーン

インストール

前提条件
  • Node.js 16 以降
  • Git がインストールされ、PATH から利用できること
NPM からインストール
npm install -g git-mcp-server
ソースからインストール
git clone https://github.com/cyanheads/git-mcp-server.git
cd git-mcp-server
npm install
npm run build

使用方法

サーバーの実行
git-mcp-server

サーバーは Model Context Protocol を使用して stdin/stdout 経由で通信するため、あらゆる MCP クライアントと互換性があります。

Claude との統合

Claude の設定ファイルに追加します。

{
  "mcpServers": {
    "git": {
      "command": "git-mcp-server",
      "args": [],
      "env": {},
      "disabled": false
    }
  }
}
その他の MCP クライアントとの統合

MCP インスペクターを使用してサーバーをテストします。

npx @modelcontextprotocol/inspector git-mcp-server

プロジェクト構成

コードベースはモジュール構成になっています。

git-mcp-server/
├── src/
│   ├── index.ts           # Entry point
│   ├── server.ts          # MCP server implementation
│   ├── resources/         # Resource implementations
│   │   ├── descriptors.ts # Resource URI templates
│   │   ├── diff.ts        # Diff-related resources
│   │   ├── file.ts        # File-related resources
│   │   ├── history.ts     # History-related resources
│   │   ├── index.ts       # Resource registration
│   │   └── repository.ts  # Repository resources
│   ├── services/          # Service implementations
│   │   ├── error-service.ts # Error handling
│   │   └── git-service.ts   # Git operations abstraction
│   ├── tools/             # Tool implementations
│   │   ├── advanced.ts    # Advanced Git operations
│   │   ├── branch.ts      # Branch operations
│   │   ├── index.ts       # Tool registration
│   │   ├── remote.ts      # Remote operations
│   │   ├── repository.ts  # Repository operations
│   │   └── workdir.ts     # Working directory operations
│   ├── types/             # Type definitions
│   │   └── git.ts         # Git-related types
│   └── utils/             # Utility functions
│       └── validation.ts  # Input validation
└── scripts/               # Development scripts

ツール

Git MCP Server は、Git 操作用の包括的なツール群を提供します。

リポジトリ操作
ToolDescription
git_initベアリポジトリのオプションを指定して、指定したパスに新しい Git リポジトリを初期化します。
git_cloneブランチと深度のオプションを指定して、リモート URL からローカルパスに Git リポジトリをクローンします。
git_status作業ディレクトリとステージング領域の変更を含む、Git リポジトリの現在のステータスを取得します。
ブランチ操作
ToolDescription
git_branch_listリモートブランチを含めるオプションを指定して、リポジトリ内のすべてのブランチを一覧表示します。
git_branch_create開始地点の指定や自動チェックアウトのオプションを指定して、新しいブランチを作成します。
git_checkoutチェックアウト時に新しいブランチを作成するオプションを指定して、ブランチ、タグ、またはコミットをチェックアウトします。
git_branch_deleteマージされていないブランチを強制削除するオプションを指定して、ブランチを削除します。
git_mergeコミットメッセージとマージ戦略をカスタマイズして、ブランチを現在のブランチにマージします。
作業ディレクトリの操作
ツール説明
git_add個別のファイルまたはディレクトリ全体を対象に、ファイルをコミット用にステージングします。
git_reset特定のファイルまたはステージング済みの変更すべてを対象に、ファイルをステージングエリアから取り消します。
git_commitカスタマイズ可能なコミットメッセージ、作成者情報、修正オプションを指定して、ステージング済みの変更をコミットします。
git_diff_unstaged特定のファイルを指定するオプションを使って、作業ディレクトリ内のステージングされていない変更をすべて差分表示します。
git_diff_staged特定のファイルを指定するオプションを使って、インデックス内のステージング済みの変更をすべて差分表示します。
git_reset_commitハード、ソフト、またはミックスモードのオプションを使って、リポジトリを特定の参照先にリセットします。
git_cleanディレクトリ指定や強制クリーンのオプションを使って、作業ツリーから追跡対象外のファイルを削除します。
リモート操作
ツール説明
git_remote_add名前と URL を指定して、新しいリモートリポジトリを追加します。
git_remote_list設定済みのリモートリポジトリとその URL をすべて一覧表示します。
git_fetch特定のブランチを指定するオプションを使って、リモートリポジトリから更新を取得します。
git_pullリベース戦略のオプションを使って、リモートリポジトリから変更を取り込みます。
git_push強制プッシュやアップストリーム追跡のオプションを使って、ローカルの変更をリモートリポジトリにプッシュします。
高度な操作
ツール説明
git_tag_createメッセージ付きの注釈付きタグを作成するオプションを使って、新しいタグを作成します。
git_tag_listリポジトリ内のすべてのタグとその参照先を一覧表示します。
git_stash_create追跡対象外のファイルや説明を指定するオプションを使って、作業ディレクトリの変更をスタッシュします。
git_stash_listリポジトリ内のすべてのスタッシュとその説明を一覧表示します。
git_stash_applyスタッシュ一覧から削除せずに、スタッシュした変更を適用します。
git_stash_popスタッシュした変更を適用し、スタッシュ一覧から削除します。
git_cherry_pick特定のコミットの変更を現在のブランチに適用します。
git_rebaseインタラクティブモードのオプションを使って、現在のブランチを別のブランチにリベースします。
git_log出力形式と深さをカスタマイズして、コミット履歴を取得します。
git_show差分を含む、特定のコミットに関する詳細情報を表示します。

リソース

Git MCP Server は、標準の MCP リソースを通じて Git データを公開します。

リポジトリリソース
リソース説明
git://repo/{repoPath}/info現在のブランチ、ステータス、参照情報など、Git リポジトリの基本情報
git://repo/{repoPath}/branches現在のブランチを示す情報付きの、リポジトリ内のすべてのブランチの一覧
git://repo/{repoPath}/remotesURL を含む、設定済みリモートリポジトリの一覧
git://repo/{repoPath}/tags参照情報を含む、リポジトリ内のすべてのタグの一覧
git://repo/{repoPath}/file/{filePath}?ref={ref}指定された Git 参照における特定のファイルの内容を返します
git://repo/{repoPath}/ls/{dirPath}?ref={ref}指定されたパスと参照にあるファイルおよびディレクトリの一覧を返します
git://repo/{repoPath}/diff/{fromRef}/{toRef}?path={path}2 つの Git 参照(コミット、ブランチ、タグ)間の差分を返します
git://repo/{repoPath}/diff-unstaged?path={path}作業ディレクトリ内のステージングされていないすべての変更の差分を返します
git://repo/{repoPath}/diff-staged?path={path}インデックス内のステージング済みのすべての変更の差分を返します
git://repo/{repoPath}/log?maxCount={maxCount}&file={file}作者、日付、メッセージの詳細を含むコミット履歴ログを返します
git://repo/{repoPath}/blame/{filePath}各行を最後に変更したコミットを示す、行ごとの帰属情報を返します
git://repo/{repoPath}/commit/{commitHash}差分を含む、特定のコミットの詳細情報を返します

開発

ビルドとテスト
# Build the project
npm run build

# Watch for changes
npm run watch

# Test with MCP inspector
npm run inspector

# Clean build artifacts
npm run clean

# Rebuild completely
npm run rebuild

ライセンス

Apache License 2.0 — 詳細は LICENSE を参照してください。


Model Context Protocol を使用して構築

コメント

MCP は初めてですか?

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

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