mcpField
G
git-history

git-history

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

git-history について

git-historyは、AIエージェントにGit履歴への読み取り専用アクセスを提供するMCPサーバーです。コードがいつ、なぜ変わったか、行の作成者、参照間の差分を調べる開発者向けです。

主な機能

  1. 01コミットメッセージで検索
  2. 02最近のコミットと差分を確認
  3. 03ファイル履歴と行の作成者を追跡
  4. 04リポジトリの貢献者を一覧
  5. 05参照間を比較、ファイル指定も可能

活用シーン

  1. 01動作変更の原因となったコミットを探す
  2. 02ファイルや行の最終変更者を確認
  3. 03ブランチやタグ間の差分をレビュー

MCP 対応

stdioを介してMCPクライアントにGit履歴ツールを提供します。すべて読み取り専用のGitコマンドを使い、リポジトリを変更しません。

設定

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

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

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

パッケージ
npmmcp-server-git-history1.1.1

ツール

7

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

パラメーター型必須説明
limitintegerいいえ結果の最大数(デフォルトは 20)
querystringはいコミットメッセージ内の検索語またはフレーズ

詳細

mcp-server-git-history

npm version CI License: MIT

最新リリース: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 クライアントを使ったエンドツーエンドテスト

コメント

MCP は初めてですか?

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

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