Git Insights について
Git Insightsは、ローカルのGitリポジトリを調べる開発者向けの読み取り専用統計MCPサーバーです。履歴、blameの所有状況、変更頻度、作者、大容量ファイルを集計し、取得や変更は行いません。
主な機能
- 01リポジトリ状態の要約
- 02コミット履歴の絞り込みと確認
- 03ファイル所有状況と変更頻度の計測
- 04作者別コミット数の集計
- 05ツリーや履歴内の大容量ファイル検索
活用シーン
- 01最近のリポジトリ活動の確認
- 02頻繁に変更されるファイルの特定
- 03作者ごとの貢献傾向の確認
- 04履歴内の大容量blobの調査
MCP 対応
stdio経由で、`repo_summary`、`git_log`、`blame_summary`、`churn`、`authors`、`large_files`などの読み取り専用分析ツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/basitalisandhu/mcp-git-insights:0.3.0ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/basitalisandhu/mcp-git-insights:0.3.0stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
git-insights MCP サーバー
ローカルの git リポジトリの読み取り専用統計情報を提供します。ログ、blame による所有者情報、変更頻度、作成者、大きなファイルを確認できます。すべてのコマンドは、固定された引数リストを使用してシェルを介さずに起動されます。パスとリビジョンの検証、20 秒のタイムアウト、出力上限、GIT_OPTIONAL_LOCKS=0 が設定されています。書き込み、フェッチ、チェックアウトは行いません。
dev-mcp-servers の一部です。通信方式は Stdio のみで、サーバーがポートを開くことはありません。
ツール
| ツール | 入力 | 返される内容 |
|---|---|---|
repo_summary | repo | トップレベル、ブランチ、HEAD コミット、リモート(URL から認証情報を除去)、コミット数、タグ数、ブランチ数、変更済みファイル数、未追跡ファイル数。 |
git_log | repo、rev?、limit?(1~500)、path?、author?、since?、until?、grep?、no_merges?、with_files? | 新しい順のコミット。ハッシュ、作成者、ISO 形式の日付、件名、およびオプションで変更されたファイルが含まれます。 |
blame_summary | repo、path、rev?、ignore_whitespace? | 1 つのファイルについて、作成者ごとの行数、割合、最新のコミットを返します。 |
churn | repo、rev?、since?、until?、path?、limit?、max_commits? | ファイルを変更コミット数の多い順に並べ、追加・削除された行数も返します。ファイル名の変更は現在の名前まで追跡します。 |
authors | repo、rev?、since?、until?、path?、include_merges?、limit? | 作成者(メールアドレス別)ごとのコミット数と、最初および最後のコミットの日付を返します。 |
large_files | repo、rev?、limit?、include_history? | ツリー内、または全履歴にわたる最大の blob を返します(クローンが大きくなる原因を確認できます)。 |
インストール
Claude Code:
claude mcp add git-insights -- docker run --rm -i -v "$PWD:/repo:ro" ghcr.io/basitalisandhu/mcp-git-insights:0.2.2
すべてのプロジェクトで使えるようにするには、-s user を追加します。.mcp.json を読み込むクライアント(Claude Code、Claude Desktop、Cursor)で使用する場合:
{
"mcpServers": {
"git-insights": {
"command": "docker",
"args": ["run", "--rm", "-i", "-v", "/path/to/your/project:/repo:ro", "ghcr.io/basitalisandhu/mcp-git-insights:0.2.2"]
}
}
}
バージョンを上記のように固定し、更新によってエディターで実行される内容が気付かないうちに変わらないようにしてください。リポジトリを /repo にマウントします。イメージが信頼するのはそのパスのみです。パッケージはまだ npmjs.com に公開されていないため、npx は動作しません。GitHub Packages npm についてはリポジトリの READMEをご覧ください。チェックアウトしたリポジトリを使う場合は、リポジトリのルートで npm install && npm run build を実行した後、"command": "node", "args": ["<path>/packages/git-insights/dist/index.js"] を使用してください。
アクセス対象
- ネットワーク:なし。
gitはGIT_TERMINAL_PROMPT=0を設定して実行されます。リモートに接続するコマンドは許可リストに含まれていません。 - ローカルファイル:指定したリポジトリ内で
git rev-parse、log、blame、ls-tree、rev-list、cat-file、status、remote、tag、branchを実行します。リビジョンは[A-Za-z0-9._/^~-]に一致し、..を含まない必要があります。パスは..を含まない相対パスである必要があります。自由記述のフィルターは-で始めることができません。 - テレメトリー:なし。
注意事項
- サーバーは読み取り可能なリポジトリのパスを制限しません。読み取りを許可する範囲が適切なアカウントで実行してください。
PATH上にgitが必要です。
ビルドとテスト
npm install # at the repository root
npm run build -w @basitalisandhu/mcp-git-insights
npm test -w @basitalisandhu/mcp-git-insights
テストでは node:test と SDK のインメモリトランスポートを使用し、ネットワークには接続しません。
ライセンス
MIT。LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。