mcpField
G
Git MCP Server

Git MCP Server

ローカル
npmjs.comバージョン管理2439 週間前に更新

Git MCP Server について

Git MCP Server は、AI エージェント向けに 28 個の Git 操作を提供する MCP サーバーです。STDIO と Streamable HTTP の両方に対応し、mcp-ts-template をベースに構築されています。監査や認証、ディレクトリ制限が必要な環境に向いています。

主な機能

  1. 01リポジトリ、コミット、ブランチ、リモートを扱う 28 個のツール
  2. 02STDIO と Streamable HTTP のトランスポート対応
  3. 03セッションごとの作業ディレクトリリソース
  4. 04破壊的操作に対する明示的な確認フラグ
  5. 05GPG/SSH によるコミット署名と GIT_BASE_DIR によるパス制限

活用シーン

  1. 01AI エージェントによる日常的なコミット、ブランチ操作、マージ
  2. 02log、show、blame による変更履歴の分析
  3. 031 つのセッションでの複数リポジトリの切り替え

MCP 対応

MCP サーバーとして、28 個の Git ツール、作業ディレクトリのリソース、Git Wrap-up プロンプトを MCP クライアントに提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"git": {
"command": "npx",
"args": [
"-y",
"@cyanheads/git-mcp-server"
],
"env": {
"MCP_LOG_LEVEL": "<MCP_LOG_LEVEL>",
"GIT_BASE_DIR": "<GIT_BASE_DIR>",
"MCP_HTTP_HOST": "<MCP_HTTP_HOST>",
"MCP_HTTP_PORT": "<MCP_HTTP_PORT>",
"MCP_HTTP_ENDPOINT_PATH": "<MCP_HTTP_ENDPOINT_PATH>",
"MCP_AUTH_MODE": "<MCP_AUTH_MODE>"
}
}
}
}
起動コマンドnpx -y @cyanheads/git-mcp-server
設定が必要な環境変数
MCP_LOG_LEVELSets the minimum log level for output (e.g., 'debug', 'info', 'warn').
GIT_BASE_DIROptional absolute path to restrict all git operations to a specific directory tree. Provides security sandboxing for multi-tenant or shared environments.
MCP_HTTP_HOSTThe hostname for the HTTP server.
MCP_HTTP_PORTThe port to run the HTTP server on.
MCP_HTTP_ENDPOINT_PATHThe endpoint path for the MCP server.
MCP_AUTH_MODEシークレットAuthentication mode to use: 'none', 'jwt', or 'oauth'.

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

パッケージ
npm@cyanheads/git-mcp-server2.15.3

ツール

28

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

パラメーター型必須説明
pathstringいいえGit リポジトリのパス。デフォルトは git_set_working_dir で設定されたセッション作業ディレクトリです。
pathsarrayいいえステージングするファイルまたはディレクトリのパスの配列(リポジトリのルートからの相対パス)。["."] を指定するとすべての変更をステージングします。all または update が true の場合は省略できます。
updatebooleanいいえ変更済みおよび削除済みのファイルのみをステージングします(未追跡ファイルは除外)。
allbooleanいいえすべての項目を含めます(操作によって異なります)。
forcebooleanいいえ通常は無視されるファイルの追加を許可します。

詳細

@cyanheads/git-mcp-server

AI エージェント向けの Git MCP サーバーです。STDIO と Streamable HTTP に対応しています。

28 個のツール · 1 個のリソース · 1 個のプロンプト

Version MCP Spec MCP SDK License Status TypeScript Bun


ツール

7 つのカテゴリに分類された 28 個の Git 操作です。

カテゴリツール説明
リポジトリ管理git_init, git_clone, git_status, git_cleanリポジトリの初期化、リモートからのクローン、状態の確認、未追跡ファイルのクリーンアップ
ステージングとコミットgit_add, git_commit, git_diff変更のステージング、コミットの作成、変更の比較
履歴と調査git_log, git_show, git_blame, git_reflogコミット履歴の表示、オブジェクトの調査、作成者の追跡、参照ログの表示
分析git_changelog_analyzeLLM による変更履歴分析に必要な Git の情報と指示を収集
ブランチとマージgit_branch, git_checkout, git_merge, git_rebase, git_cherry_pickブランチの管理、コンテキストの切り替え、変更の統合、特定のコミットの適用
リモート操作git_remote, git_fetch, git_pull, git_pushリモートの設定、更新の取得、リポジトリの同期、変更の公開
高度なワークフローgit_tag, git_stash, git_reset, git_worktree, git_set_working_dir, git_clear_working_dir, git_wrapup_instructionsリリースへのタグ付け(一覧表示/作成/削除/検証)、変更の一時退避、状態のリセット、ワークツリーの管理、セッションディレクトリの設定/解除

リソース

リソースURI説明
Git 作業ディレクトリgit://working-directorygit_set_working_dir で設定された、現在のセッションの作業ディレクトリです。

プロンプト

プロンプト説明パラメーター
Git の仕上げGit セッションを完了するためのワークフロープロトコルです。変更の確認、記録、コミット、タグ付けを行います。changelogPath, createTag。

はじめに

ランタイム

Bun と Node.js の両方で動作します。ランタイムは自動検出されます。

ランタイムコマンド最小バージョン
Node.jsnpx @cyanheads/git-mcp-server@latest>= 20.0.0
Bunbunx @cyanheads/git-mcp-server@latest>= 1.2.0
MCP クライアントの設定

以下を MCP クライアントの設定(例:cline_mcp_settings.json)に追加してください。環境変数を、ご利用の環境に合わせて更新してください。特に Git のユーザー情報の項目を確認してください。

{
  "mcpServers": {
    "git-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["@cyanheads/git-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info",
        "GIT_BASE_DIR": "~/Developer/",
        "LOGS_DIR": "~/Developer/logs/git-mcp-server/",
        "GIT_USERNAME": "cyanheads",
        "GIT_EMAIL": "[email protected]",
        "GIT_SIGN_COMMITS": "true"
      }
    }
  }
}

Bun ユーザーの場合は、"command": "npx" を "command": "bunx" に置き換えてください。

Streamable HTTP の場合は、MCP_TRANSPORT_TYPE=http と MCP_HTTP_PORT=3015 を設定してください。

特長

mcp-ts-template を基盤に構築されています。

特長詳細
宣言的なツール機能を単一の自己完結型ファイルで定義できます。フレームワークが登録、検証、実行を処理します。
エラー処理一貫性のある構造化エラーレスポンスを実現する、統合された McpError システムです。
認証none、jwt、oauth モードをサポートしています。
プラグ可能なストレージビジネスロジックを変更せずに、バックエンド(in-memory、filesystem、Supabase、Cloudflare KV/R2)を切り替えられます。
可観測性構造化ログ(Pino)と、トレースおよびメトリクス用のオプションの自動計装 OpenTelemetry を備えています。
依存性注入疎結合でテスト可能なアーキテクチャを実現するため、tsyringe を使用しています。
ランタイム間の互換性Bun または Node.js を自動検出し、適切なプロセス起動方法を使用します。
プロバイダーアーキテクチャプラグ可能な Git プロバイダーシステムです。現在は CLI に対応しています。今後、エッジデプロイメント向けに isomorphic-git を予定しています。
作業ディレクトリ管理マルチリポジトリのワークフロー向けに、セッション固有のディレクトリコンテキストを提供します。
設定可能な Git ID環境変数で作成者/コミッター情報を上書きでき、設定がない場合はグローバルな Git 設定にフォールバックします。
コミット署名コミット、マージ、リベース、チェリーピック、タグに対する GPG/SSH 署名(デフォルトで有効)に対応しています。失敗時は警告なしで未署名にフォールバックし、レスポンスに signed/signingWarning フィールドを含めます。
安全性破壊的な操作(git clean、git reset --hard)には明示的な確認フラグが必要です。

セキュリティ

  • ディレクトリトラバーサルを防ぐため、すべてのファイルパスを検証してサニタイズします。
  • オプションの GIT_BASE_DIR を使用すると、マルチテナントのサンドボックス化のために、操作対象を特定のディレクトリツリーに制限できます。
  • Git コマンドでは、プロセス起動を通じて検証済みの引数を使用し、シェルによる文字列展開を行いません。
  • 認証を必要とするデプロイメント向けに、JWT と OAuth をサポートしています。
  • DI 管理の RateLimiter サービスによるレート制限をオプションで利用できます。
  • 監査のため、すべての操作をリクエストコンテキストとともにログに記録します。

設定

すべての設定は起動時に src/config/index.ts で検証されます。主な環境変数は次のとおりです。

変数説明デフォルト
MCP_TRANSPORT_TYPEトランスポート:stdio または http。stdio
MCP_SESSION_MODEHTTP セッションモード:stateless、stateful、または auto。auto
MCP_RESPONSE_FORMATレスポンス形式:json(LLM に最適化)、markdown(人が読みやすい形式)、または auto。json
MCP_RESPONSE_VERBOSITY詳細度:minimal、standard、または full。standard
MCP_HTTP_PORTHTTP サーバーのポート。3015
MCP_HTTP_HOSTHTTP サーバーのホスト名。127.0.0.1
MCP_HTTP_ENDPOINT_PATHMCP リクエストのエンドポイントパス。/mcp
MCP_AUTH_MODE認証モード:none、jwt、または oauth。none
STORAGE_PROVIDER_TYPEストレージバックエンド:in-memory、filesystem、supabase、cloudflare-kv、r2。in-memory
OTEL_ENABLEDOpenTelemetry を有効にします。false
MCP_LOG_LEVEL最小ログレベル:debug、info、warn、error。info
GIT_SIGN_COMMITSコミット、マージ、リベース、チェリーピック、タグへの GPG/SSH 署名。失敗した場合は署名なしにフォールバックします(レスポンスの signed/signingWarning を参照)。true
GIT_AUTHOR_NAMEGit の作成者名。別名:GIT_USERNAME、GIT_USER。グローバルな git 設定が使用されます。(none)
GIT_AUTHOR_EMAILGit の作成者メールアドレス。別名:GIT_EMAIL、GIT_USER_EMAIL。グローバルな git 設定が使用されます。(none)
GIT_BASE_DIRすべての git 操作を特定のディレクトリツリー内に制限するための絶対パス。(none)
GIT_WRAPUP_INSTRUCTIONS_PATHワークフローの手順を記載したカスタム Markdown ファイルのパス。(none)
MCP_AUTH_SECRET_KEYjwt 認証で必須です。32 文字以上のシークレットキーを指定します。(none)
OAUTH_ISSUER_URLoauth 認証で必須です。OIDC プロバイダーの URL。(none)

サーバーの実行

パッケージマネージャー経由(インストール不要)
npx @cyanheads/git-mcp-server@latest

環境変数または MCP クライアントの設定から構成します。

ローカル開発
# Build and run
npm run rebuild
npm run start:stdio   # or start:http

# Dev mode with hot reload
npm run dev:stdio     # or dev:http

# Checks and tests
npm run devcheck      # lint, format, typecheck
npm test
Cloudflare Workers
npm run build:worker   # Build the worker bundle
npm run deploy:dev     # Run locally with Wrangler
npm run deploy:prod    # Deploy to Cloudflare

プロジェクト構成

ディレクトリ用途
src/mcp-server/toolsツールの定義(*.tool.ts)。Git の機能はここにあります。
src/mcp-server/resourcesリソースの定義(*.resource.ts)。Git コンテキストのデータソースです。
src/mcp-server/transports認証を含む HTTP および STDIO トランスポートの実装です。
src/storageStorageService の抽象化とプロバイダーの実装です。
src/servicesGit サービスプロバイダー(CLI ベースの Git 操作)です。
src/containerDI コンテナーの登録とトークンです。
src/utilsロギング、エラー処理、パフォーマンス、セキュリティのユーティリティです。
src/config環境変数の解析と検証(Zod)です。
tests/src/ の構成を反映した単体テストと統合テストです。

レスポンス形式

MCP_RESPONSE_FORMAT と MCP_RESPONSE_VERBOSITY で出力形式と詳細度を設定します。

JSON 形式(デフォルト、LLM 向けに最適化):

{
  "success": true,
  "branch": "main",
  "staged": ["src/index.ts", "README.md"],
  "unstaged": ["package.json"],
  "untracked": []
}

Markdown 形式(人間が読みやすい形式):

# Git Status: main

## Staged (2)
- src/index.ts
- README.md

## Unstaged (1)
- package.json

クライアントに表示される内容にかかわらず、LLM は responseFormatter を通じて、完全な構造化データ(すべてのファイル一覧、メタデータ、タイムスタンプ)を常に受け取ります。詳細度によって含まれる情報の量が決まります。minimal(主要なフィールドのみ)、standard(バランスの取れた詳細度)、または full(すべての情報)を指定できます。

開発ガイド

アーキテクチャ、ツール開発のパターン、コントリビューションのルールについては、AGENTS.md を参照してください。

テスト

テストには、Vitest と互換性のある Bun のテストランナーを使用します。

bun test              # Run all tests
bun test --coverage   # With coverage
bun run devcheck      # Lint, format, typecheck, audit

ロードマップ

このサーバーは、Git 操作にプロバイダーベースのアーキテクチャを採用しています。

  • CLI プロバイダー(現在)— ネイティブの Git CLI による 28 種類のツールを完全にカバーします。ローカルへの Git のインストールが必要です。
  • Isomorphic git プロバイダー(予定)— エッジ環境へのデプロイ(Cloudflare Workers、Vercel Edge、Deno Deploy)向けの純粋な JS 実装です。isomorphic-git を使用します。
  • GitHub API プロバイダー(可能性あり)— ローカルリポジトリを必要とせず、GitHub REST/GraphQL API を介してクラウドネイティブな操作を行います。

コントリビュート

イシューやプルリクエストを歓迎します。提出前にチェックを実行してください。

npm run devcheck
npm test

ライセンス

Apache 2.0 です。LICENSE を参照してください。


コメント

MCP は初めてですか?

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

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