Skip to main content
Glama

Git MCP サーバー

タイプスクリプト モデルコンテキストプロトコル バージョン ライセンス 状態 GitHub

Gitリポジトリと連携するためのツールを提供するMCP(Model Context Protocol)サーバー。LLMとAIエージェントがMCP標準を介して、クローン、コミット、プッシュ、プル、ブランチ、差分、ログ、ステータスなどのGit操作を実行できるようにします。

cyanheads/mcp-ts-template上に構築されたこのサーバーは、モジュラー アーキテクチャに従います。

開発者向けメモ: このリポジトリには、コードベース パターン、ファイルの場所、およびコード スニペットのクイック リファレンスを含む、LLM コーディング エージェントの開発者向けチート シートとして機能する.clinerulesファイルが含まれています。

目次

|概要|機能|インストール|

|構成|プロジェクト構造|

|ツール|リソース|開発|ライセンス|

Related MCP server: GitHub MCP Server

概要

シームレスな Git 統合により、AI エージェントと開発ツールを強化します。

Git MCP サーバーはブリッジとして機能し、モデル コンテキスト プロトコル (MCP) を理解するアプリケーション (MCP クライアント) (高度な AI アシスタント (LLM)、IDE 拡張機能、カスタム スクリプトなど) がローカル Git リポジトリと直接安全にやり取りできるようにします。

複雑なスクリプトや手動の CLI の代わりに、ツールはこのサーバーを活用して次のことを行うことができます。

  • Git ワークフローを自動化: リポジトリのクローン作成、ブランチの作成、変更のステージング、作業のコミット、更新のプッシュ、タグの管理をプログラムで実行します。

  • リポジトリの洞察を得る: ホスト アプリケーションを離れずに、ステータスを確認し、ログを表示し、変更を比較し、Git オブジェクトを検査します。

  • Git を AI 駆動型開発に統合: LLM がコーディングまたはリファクタリング タスクの一環としてバージョン管理を管理できるようにします。

堅牢なmcp-ts-templateをベースに構築されたこのサーバーは、MCP標準を介してGit機能を公開するための、標準化された安全かつ効率的な方法を提供します。Node.jsのchild_processモジュールを使用して、システムにインストールされている標準のgitコマンドラインツールを安全に実行することでこれを実現し、互換性を確保しながらGitのパワーを最大限に活用します。

特徴

コアユーティリティ(テンプレートから)

mcp-ts-templateによって提供される堅牢なユーティリティを活用します。

  • ログ記録: 機密データの編集を伴う構造化された構成可能なログ記録 (ファイルのローテーション、コンソール、MCP 通知)。

  • エラー処理: 集中化されたエラー処理、標準化されたエラー タイプ ( McpError )、および自動ログ記録。

  • 設定: 環境変数の読み込み ( dotenv )。

  • 入力検証/サニタイズ: スキーマ検証とカスタム サニタイズ ロジック (パスに重要) にzod使用します。

  • リクエスト コンテキスト: 一意のリクエスト ID による操作の追跡と相関。

  • 型の安全性: TypeScript と Zod スキーマによって強制される強力な型付け。

  • HTTP トランスポート オプション: SSE、セッション管理、CORS サポートを備えた組み込み Express サーバー。

Git操作

  • 直接 Git CLI 実行: Node.js child_processを介して標準のgitコマンドライン ツールを安全に実行することで Git と対話し、完全な互換性と Git の機能へのアクセスを確保します。

  • 包括的なコマンド カバレッジ: 幅広い Git コマンドを MCP ツールとして公開します (ツールセクションを参照)。

  • リポジトリインタラクション: ステータスのチェック、ブランチ、ステージング、コミット、フェッチ、プル、プッシュ、比較、ログ記録、リセット、タグ付けなどをサポートします。

  • 作業ディレクトリ管理: 複数の Git 操作にわたってコンテキストを永続化するために、セッション固有の作業ディレクトリを設定およびクリアできます。

  • 安全機能: git cleangit reset --hardなどの潜在的に破壊的な操作に対するチェックが含まれ、明示的な確認が必要です。

  • コミット署名:検証済みコミットのGPGまたはSSH署名をサポートします。GIT_SIGN_COMMITS環境変数とサーバー側のGit設定によって制御されます。署名失敗時に未署名コミットにフォールバックするためのオプションツールパラメータもGIT_SIGN_COMMITSれています。

インストール

前提条件

  • Node.js (>=18.0.0)

  • npm (Node.js に付属)

  • Gitがインストールされ、システム PATH にアクセスできます。

npm経由でインストール

  1. パッケージをグローバルにインストールします。

    npm install @cyanheads/git-mcp-server

ソースからインストール

  1. リポジトリをクローンします。

    git clone https://github.com/cyanheads/git-mcp-server.git cd git-mcp-server
  2. 依存関係をインストールします:

    npm install
  3. プロジェクトをビルドします。

    npm run build (or `npm run rebuild`)

    これにより、TypeScript コードがdist/ディレクトリ内の JavaScript にコンパイルされ、エントリ ポイントが実行可能になります。

構成

環境変数

環境変数を使用してサーバーを設定します。プロジェクトルートに.envファイルを作成するか( .env.exampleからコピー)、環境変数を環境に設定します。

変数

説明

デフォルト

MCP_TRANSPORT_TYPE

トランスポート メカニズム:

stdio

または

http

stdio

MCP_HTTP_PORT

HTTPサーバーのポート(

MCP_TRANSPORT_TYPE=http

の場合)。ビジー状態の場合は次のポートを再試行します。

3010

MCP_HTTP_HOST

HTTP サーバーのホスト アドレス (

MCP_TRANSPORT_TYPE=http

の場合)。

127.0.0.1

MCP_ALLOWED_ORIGINS

CORS に許可されるオリジンのコンマ区切りリスト (

MCP_TRANSPORT_TYPE=http

の場合)。

(なし)

MCP_LOG_LEVEL

ログレベル(

debug

info

notice

warning

error

crit

alert

emerg

)。テンプレートから継承されます。

info

GIT_SIGN_COMMITS

git_commit

ツールによるコミットの署名を有効にするには、

"true"

に設定します。サーバー側の Git/キー設定が必要です(下記参照)。

false

MCP_AUTH_SECRET_KEY

認証トークンの署名/検証用の秘密キー (将来認証が有効になった場合に必要)。

''

MCPクライアント設定

MCP クライアント設定に追加します (例: cline_mcp_settings.json ):

{ "mcpServers": { "git-mcp-server": { // Use a descriptive name "command": "node", // Use node to run the script "args": ["/path/to/your/git-mcp-server/dist/index.js"], // Absolute path to the built entry point "env": { // "MCP_TRANSPORT_TYPE": "http", // Optional: if using http // "MCP_HTTP_PORT": "3010", // Optional: if using http and non-default port // "GIT_SIGN_COMMITS": "true" // Optional: Enable commit signing attempts if server is configured }, "disabled": false, "autoApprove": [] // Configure auto-approval rules if desired } } }

プロジェクト構造

コードベースは、 src/ディレクトリ内でモジュール構造に従います。

src/ ├── index.ts # Entry point: Initializes and starts the server ├── config/ # Configuration loading (env vars, package info) │ └── index.ts ├── mcp-server/ # Core MCP server logic and capability registration │ ├── server.ts # Server setup, capability registration │ ├── transports/ # Transport handling (stdio, http) │ ├── resources/ # MCP Resource implementations (currently none) │ └── tools/ # MCP Tool implementations (subdirs per tool) ├── types-global/ # Shared TypeScript type definitions └── utils/ # Common utility functions (logger, error handler, etc.)

詳細なファイル ツリーについては、 npm run treeを実行するか、 docs/tree.mdを参照してください。

ツール

Git MCP サーバーは、モデル コンテキスト プロトコルを介して呼び出すことができる、Git リポジトリと対話するためのツール スイートを提供します。

ツール名

説明

主な議論

git_add

指定されたファイルまたはパターンをステージングします。

path?

files?

git_branch

ブランチを管理します (一覧表示、作成、削除、名前変更、現在の表示)。

path?

mode

branchName?

newBranchName?

startPoint?

force?

all?

remote?

git_checkout

ブランチを切り替えたり、作業ツリー ファイルを復元したりします。

path?

branchOrPath

newBranch?

force?

git_cherry_pick

既存のコミットによって導入された変更を適用します。

path?

commitRef

mainline?

strategy?

noCommit?

signoff?

git_clean

追跡されていないファイルを削除します。force

force: true

path?

force

dryRun?

directories?

ignored?

git_clear_working_dir

セッション固有の作業ディレクトリをクリアします。

(なし)

git_clone

指定された絶対パスにリポジトリのクローンを作成します。

repositoryUrl

targetPath

branch?

depth?

quiet?

git_commit

ステージングされた変更をコミットします。作成者によるオーバーライド、署名制御をサポートします。

path?

message

author?

allowEmpty?

amend?

forceUnsignedOnFailure?

git_diff

コミット、作業ツリーなどの間の変更を表示します。

path?

commit1?

commit2?

staged?

file?

git_fetch

他のリポジトリからオブジェクトと参照をダウンロードします。

path?

remote?

prune?

tags?

all?

git_init

指定された絶対パスに新しい Git リポジトリを初期化します。初期ブランチのデフォルトは「main」です。

path

initialBranch?

bare?

quiet?

git_log

コミット ログを表示します。

path?

maxCount?

author?

since?

until?

branchOrFile?

git_merge

指定されたブランチを現在のブランチにマージします。

path?

branch

commitMessage?

noFf?

squash?

abort?

git_pull

別のリポジトリまたはローカル ブランチから取得して統合します。

path?

remote?

branch?

rebase?

ffOnly?

git_push

ローカル参照を使用してリモート参照を更新します。

path?

remote?

branch?

remoteBranch?

force?

forceWithLease?

setUpstream?

tags?

delete?

git_rebase

別のベースチップの上にコミットを再適用します。

path?

mode?

upstream?

branch?

interactive?

strategy?

strategyOption?

onto?

git_remote

リモート リポジトリを管理します (一覧表示、追加、削除、表示)。

path?

mode

name?

url?

git_reset

現在のHEADを指定された状態にリセットします。ソフト、ミックス、ハードモードをサポートします。

「hard」は注意して使用してください

path?

mode?

commit?

git_set_working_dir

デフォルトの作業ディレクトリを設定します。リポジトリが存在しない場合は、必要に応じて初期化できます。絶対パスが必要です。

path

validateGitRepo?

initializeIfNotPresent?

git_show

Git オブジェクト (コミット、タグなど) に関する情報を表示します。

path?

ref

filePath?

git_stash

保存された変更を管理します (リスト、適用、ポップ、ドロップ、保存)。

path?

mode

stashRef?

message?

git_status

リポジトリのステータス (ブランチ、ステージング済み、変更済み、追跡されていないファイル) を取得します。

path?

git_tag

タグを管理します (リスト、注釈付き/軽量の作成、削除)。

path?

mode

tagName?

message?

commitRef?

annotate?

git_worktree

Git ワークツリーを管理します (リスト、追加、削除、移動、プルーニング)。

path?

mode

worktreePath?

commitish?

newBranch?

force?

detach?

newPath?

verbose?

dryRun?

expire?

注:

リソース

MCP リソースはこのバージョン (v2.0.12) では実装されていません。

このバージョンでは、最新のmcp-ts-templateとMCP SDK v1.12.0に基づいてリファクタリングされたGitツール実装に重点を置いています。これまで利用可能だったリソース機能は、今回のメジャーアップデート中に一時的に削除されました。

MCP リソース アクセスが必要な場合 (たとえば、サーバー経由でファイル コンテンツを直接読み取る場合) は、安定版の**v1.2.4 リリース**を使用してください。

将来の開発により、後続のリリースでリソース機能が再導入される可能性があります。

**注:**このバージョン (v2.0.0) は、最新の MCP SDK に基づいてコア Git ツールのリファクタリングとアップデートに重点を置いています。MCP リソース機能はこのバージョンでは実装されていません。リソースへのアクセスには、 v1.2.4 をご利用ください。

発達

ビルドとテスト

# Build the project (compile TS to JS in dist/ and make executable) npm run build # Test the server locally using the MCP inspector tool (stdio transport) npm run inspector # Test the server locally using the MCP inspector tool (http transport) npm run inspector:http # Clean build artifacts (runs scripts/clean.ts) npm run clean # Generate a file tree representation for documentation (runs scripts/tree.ts) npm run tree # Clean build artifacts and then rebuild the project npm run rebuild # Start the server using stdio (default) npm start # Or explicitly: npm run start:stdio # Start the server using HTTP transport npm run start:http

ライセンス

このプロジェクトは、Apache License 2.0 に基づいてライセンスされています。詳細については、 LICENSEファイルを参照してください。


One-click Deploy
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyanheads/git-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server