Git Prompts MCP Server について
Git Prompts MCP Serverは、Gitリポジトリから差分やコミット履歴を取得し、PR説明やコミットメッセージを作るプロンプトとツールを提供します。MCPクライアントやGemini CLIで変更を扱う開発者向けです。
主な機能
- 01コミットやブランチの比較
- 02ステージ済み・未ステージ差分の取得
- 03コミットメッセージの取得
- 04PR説明とコミット文の生成
- 05差分対象パスの除外
活用シーン
- 01変更内容からPR説明を作成
- 02ステージ済みファイルからコミット文を作成
- 03ブランチとの変更点を確認
- 04最近のリポジトリ履歴を調査
MCP 対応
MCPサーバーとしてGit差分とコミット履歴のツール、およびPR説明やコミット文を生成するプロンプトを提供します。MCPクライアントから利用でき、Gemini CLI拡張としても導入できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Git Prompts MCP Server
このリポジトリは、Git リポジトリの内容に基づいてプロンプトを生成する複数のコマンドを提供する Model Context Protocol(MCP)サーバーです。
謝辞
- このリポジトリは、MarkItDown MCP serverとサンプルのGit MCP serverから多大な着想を得ています。
- AGENTS.mdは、こちらのブログ記事の例をもとに作成しました:Claude Code で良い結果を得る。
使い方
前提条件:Python 3.12 以降およびuv
Zed Editor の MCP サーバーとして使用する
settings.jsonに以下を追加します。
"context_servers": {
"git_prompt_mcp": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/ceshine/git-prompts-mcp-server.git",
"git-prompts-mcp-server",
"/path/to/repo/", // parent folder of the .git directory
"--excludes", // Exclude files and directories from diff results (the server uses pathlib.PurePath behind the scenes)
"**/uv.lock",
"--format", // format for diff results
"json" // options: json, text
],
"env": {}
}
}
Gemini CLI 拡張機能として使用する
このサーバーが提供するコマンドとツールを Gemini CLI で有効にするには、次の手順を実行します。
- 拡張機能をインストールする:
このコマンドはgemini extension install https://github.com/ceshine/git-prompts-mcp-server.git --auto-updategit-prompts-mcp-serverを Gemini CLI 拡張機能としてインストールし、そのプロンプトとツールを使用できるようにします。 - 使い方:
インストールすると、Git リポジトリ内で実行した場合に、プロンプト(例:
/git-diff、/generate-pr-desc)とツール(例:git_diff、git_cached_diff)が Gemini CLI のセッションで自動的に使用可能になります。
重要な注意事項: この拡張機能は、現在の作業ディレクトリが Git リポジトリの一部であること(つまり、.gitサブフォルダーを含むこと)を前提としています。Gemini CLI を Git プロジェクトのルートから実行しない場合、拡張機能のコマンドやツールが想定どおりに動作しないことがあります。
コマンド
サーバーは次のコマンドに応答します。
/git-diff <ancestor_branch_or_commit>:HEAD と指定された祖先ブランチまたはコミットの差分結果を取得します。/generate-pr-desc <ancestor_branch_or_commit>:HEAD と指定された祖先ブランチまたはコミットの差分結果およびコミット履歴に基づいて、プルリクエストの説明を生成します。/git-cached-diff:ステージされた変更と HEAD の差分結果を取得します。/git-commit-messages <ancestor_branch_or_commit>:祖先と HEAD の間のコミットメッセージを取得します。/generate-commit-message [num_commits]:ステージング領域(インデックス)のファイルと HEAD の差分に基づいて、コミットメッセージを生成します。さらに、出力の最後に変更に潜在する問題を指摘します。num_commitsの既定値は 5 です。コミット履歴を含めない場合は 0 に設定します。
例:
/generate-pr-desc main/git-diff dev/git-cached-diff/git-commit-messages main/generate-commit-messageまたは/generate-commit-message 3
ツール
このサーバーは、MCP 対応クライアント向けに次のツールも提供します。
git-diff:HEAD と祖先ブランチまたはコミットの差分を取得します。git-cached-diff:ステージング領域(インデックス)のファイルと HEAD の差分を取得します。git-unstaged-diff:作業ツリーとステージング領域の差分を取得します(git diffと同等です)。git-commit-messages:祖先と HEAD の間のコミットメッセージを取得します。
環境変数
サーバーは以下の環境変数で設定できます。これらは Zed の settings.json の env セクションで設定できます。
GIT_REPOSITORY:Git リポジトリへのパスです。Zed によって自動的に渡されます。GIT_EXCLUDES:差分の結果から除外するファイルパターンをカンマ区切りで指定します(例:"*/uv.lock,*.log")。GIT_OUTPUT_FORMAT:差分の結果の出力形式です。json(デフォルト)またはtextを指定できます。
開発
- このリポジトリをクローンします
- 依存関係をインストールします:
uv sync --frozen
リリースノート
0.3.4 (2026-03-24)
- 作業ツリーの変更(
git diffと同等)を公開するgit-unstaged-diffMCP ツールと、それに対応するtool-git-unstaged-diffCLI コマンドを追加しました。 pyproject.tomlにgit-prompts-mcp-cliのインストール済みスクリプトエントリーポイントを追加し、uv run python -mを経由せずにインストール後、CLI を直接実行できるようにしました。
0.3.3 (2026-01-18)
- 除外ロジックを
fnmatchからpathlib.PurePathに移行し、より堅牢で慣用的なパス照合を実現しました。古い Python バージョンでルートレベルのファイルを照合する際の回避策も含まれます。 - テンプレートベースのワークフロー(例:OpenCode)に対応するため、プロンプトで
$1プレースホルダーを使用できるようにしました。これらのケースにはデフォルト値が用意されています。 - プロンプトとツールのラッパー全体でログ記録と可観測性を強化し、より詳細なデバッグレベルおよび情報レベルのメッセージを追加しました。
- パス除外パターンを検証するための新しいテストスイートを追加しました。
0.3.2 (2026-01-02)
- FastMCP のプロンプト引数の型ヒントを
Annotated[..., Field(...)]に更新し、クライアントがオプション引数の値を指定しない場合に、FastMCP がデフォルト値を正しく適用できるようにしました。 /generate-commit-messageプロンプトを使ってコミットメッセージを生成する新しい CLI コマンドprompt-generate-commit-messageを追加しました。--num-commitsは任意で指定できます。GIT_METHOD_COLLETIONの誤字をGIT_METHOD_COLLECTIONに修正し、ログ記録を追加するとともに、負のnum_commitsを拒否する検証を追加しました。
0.3.1 (2025-12-10)
- ステージ済みの変更と最近のコミット履歴に基づいてコミットメッセージを生成する新しいプロンプト
/generate-commit-messageを追加しました。変更内容に潜在的な問題がある場合は、それも示します。 - Gemini CLI 拡張機能として直接インストールできるよう、
gemini-extension.jsonを追加しました。 - 開発用に
.pre-commit-config.yamlのサポートを追加しました。
0.3.0 (2025-09-05)
- 3 つの MCP プロンプト
git-diff、generate-pr-desc、git-cached-diffの MCP ツール版を実装しました。これにより、MCP 対応クライアントとの統合がさらに進みました。 - 指定した祖先コミットから HEAD までのコミットメッセージを取得する新しいコマンド
/git-commit-messagesを追加しました。
ライセンス
MIT ライセンスです。詳細は LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。