git-history について
git-historyは、AIエージェントにGit履歴への読み取り専用アクセスを提供するMCPサーバーです。コードがいつ、なぜ変わったか、行の作成者、参照間の差分を調べる開発者向けです。
主な機能
- 01コミットメッセージで検索
- 02最近のコミットと差分を確認
- 03ファイル履歴と行の作成者を追跡
- 04リポジトリの貢献者を一覧
- 05参照間を比較、ファイル指定も可能
活用シーン
- 01動作変更の原因となったコミットを探す
- 02ファイルや行の最終変更者を確認
- 03ブランチやタグ間の差分をレビュー
MCP 対応
stdioを介してMCPクライアントにGit履歴ツールを提供します。すべて読み取り専用のGitコマンドを使い、リポジトリを変更しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
7掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | 結果の最大数(デフォルトは 20) |
| query | string | はい | コミットメッセージ内の検索語またはフレーズ |
詳細
mcp-server-git-history
最新リリース:1.1.2 — https://www.npmjs.com/package/mcp-server-git-history
AI エージェント(Claude Desktop、Cursor、Windsurf)にGitリポジトリの履歴を読み取り、検索するツールを提供するMCP サーバー(Model Context Protocol)です。
AIはコードの現在の状態を確認できても、何が変わったのか、あるいは最後に誰が変更したのかを把握できないという問題を解決します。
技術: Node.js 18/20/22/24、Model Context Protocol(stdio)、simple-git、zod。ライセンス:LICENSE。
目次: クイックスタート · ツール · 応答例 · Claude Desktopへのインストール · Cursorへのインストール · ローカルでの開発とテスト · 構成
クイックスタート
AI エージェント(Claude Desktop、Cursor、Windsurf)に、コミット検索、ファイル履歴、blame、コントリビューター、参照間のdiffなど、Git履歴の読み取りと検索を行うツールを提供するMCP サーバーです。
npxで直接実行できます(インストール不要):
npx -y mcp-server-git-history /path/to/your/repo
Claude Desktopの設定(claude_desktop_config.json)に追加します:
{
"mcpServers": {
"git-history": {
"command": "npx",
"args": ["-y", "mcp-server-git-history", "/path/to/your/repo"]
}
}
}
Claude Desktopを再起動し、*「src/index.jsが最後に変更されたのはいつで、なぜですか?」*のように質問します。
ツール
search_commits(query, limit?)— コミットメッセージ内をキーワードで検索しますget_recent_commits(limit?)— 最新のコミットを取得します(最近の変更の概要)get_commit_diff(commitHash)— 1つのコミットのdiff全体を取得しますget_file_history(filePath, limit?)— ファイルの変更履歴を取得します(誰が、いつ、なぜ)blame_file(filePath, startLine?, endLine?)— 行ごとのgit blameを実行し、各行を誰がどのコミットで記述したかを示しますget_contributors(limit?)— コミッターとコミット数の概要を表示します(git shortlog -sn)get_diff_between_refs(fromRef, toRef, filePath?)— 2つのコミット/ブランチ/タグ間のdiffを取得します。必要に応じて1つのファイルに絞り込めます
呼び出し例
{ "name": "search_commits", "arguments": { "query": "login-bugi", "limit": 10 } }
{ "name": "get_recent_commits", "arguments": { "limit": 5 } }
{ "name": "get_commit_diff", "arguments": { "commitHash": "a1b2c3d" } }
{ "name": "get_file_history", "arguments": { "filePath": "src/index.js", "limit": 10 } }
{ "name": "blame_file", "arguments": { "filePath": "src/index.js", "startLine": 10, "endLine": 25 } }
{ "name": "get_contributors", "arguments": { "limit": 10 } }
{ "name": "get_diff_between_refs", "arguments": { "fromRef": "main", "toRef": "HEAD", "filePath": "src/index.js" } }
**読み取り専用:**すべてのツールは読み取り専用のGitコマンド(log、show、blame、shortlog、diff)のみを使用します。サーバーがリポジトリを変更することはありません。
応答例
get_recent_commitsはJSONリストを返します(npm testの実際の結果):
[
{
"hash": "bc3338e",
"date": "2026-10-05T14:29:43+03:00",
"author": "tonyweckstrom1987",
"message": "Upgrade GitHub Actions to latest versions"
}
]
Claude Desktopへのインストール
claude_desktop_config.jsonファイルに追加します:
{
"mcpServers": {
"git-history": {
"command": "npx",
"args": ["-y", "mcp-server-git-history", "/polku/repositorioosi"]
}
}
}
リポジトリのパスはGIT_REPO_PATH環境変数でも指定できます。省略した場合は、サーバーの起動ディレクトリが使用されます。
Claude Desktopを再起動し、たとえば次のように質問します:「ファイルsrc/index.jsが最後に変更されたのはいつで、なぜですか?」
Cursorへのインストール
プロジェクトの.cursor/mcp.jsonファイル(またはグローバルな~/.cursor/mcp.jsonファイル)に追加します:
{
"mcpServers": {
"git-history": {
"command": "npx",
"args": ["-y", "mcp-server-git-history", "/polku/repositorioosi"]
}
}
}
Cursorの設定でMCPタブを開き、git-historyサーバーが実行中であること(緑色の点)を確認します。GIT_REPO_PATH環境変数とコマンドライン引数は、Claude Desktopと同じように使用できます。
ローカルでの開発とテスト
git clone <repo>
cd mcp-server-git-history
npm install
npm test # testaa tätä samaa repoa
node test/manual-test.js /polku/johonkin/git-repoon # tai jotain muuta repoa
テストスクリプトはサーバーを子プロセスとして起動し、関数を直接呼び出すのではなく、実際のMCPプロトコル(@modelcontextprotocol/sdkのClientとStdioClientTransport)を使用してすべてのツールを呼び出します。これはClaude Desktopが実際にサーバーを呼び出す方法と同じです。
これを無料で運用できる理由
サーバー自体は AI の呼び出しを行いません。Git データを読み取って返すだけです。AI(例:Claude Desktop)がサーバーを呼び出すのであり、その逆ではありません。API キーも費用も必要ありません。
構成
bin/server.js— MCP サーバー、ツールの登録(McpServer+StdioServerTransport)lib/git-tools.js— Git ロジック(simple-git)test/manual-test.js— 実際の MCP クライアントを使ったエンドツーエンドテスト
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。