mcp-git-tools
Git repository analysis tools for AI agents, served over MCP (Model Context Protocol). Analyzes local repositories using native git commands — no GitHub API required.
Tools
| Tool | Description |
|---|---|
git_log |
Get commit history with filtering by author, date range, and file path |
git_diff |
Show diff between commits, branches, or tags with change summaries |
git_blame |
Show who last modified each line of a file with commit info |
git_stats |
Repository statistics: commits, contributors, activity over time, most changed files |
git_branch |
List branches with last commit info, ahead/behind counts, merged/unmerged status |
Prerequisites
- Node.js >= 18
- Git installed and available in PATH
Setup
npm install
npm run build
Configuration
Add to your MCP client configuration:
{
"mcpServers": {
"git-tools": {
"command": "node",
"args": ["D:/products/mcp-servers/mcp-git-tools/dist/index.js"]
}
}
}
Tool Details
git_log
Retrieve recent commit history with optional filters.
Parameters:
repoPath(required) — Absolute path to the Git repositorycount— Number of commits to return (default: 20)author— Filter by author name or emailsince/until— Date range filterspath— Filter to commits touching a specific file or directory
git_diff
Compare two refs and get a structured summary of changes.
Parameters:
repoPath(required) — Absolute path to the Git repositoryfrom— Start ref (default: HEAD~1)to— End ref (default: HEAD)path— Limit diff to a specific file or directorysummaryOnly— Return only stats without full diff text
git_blame
See line-by-line authorship of a file.
Parameters:
repoPath(required) — Absolute path to the Git repositoryfilePath(required) — File path relative to repo rootstartLine/endLine— Blame a specific line rangeref— Blame at a specific commit
git_stats
Get a high-level overview of repository activity.
Parameters:
repoPath(required) — Absolute path to the Git repositorytopAuthors— Number of top contributors to list (default: 10)topFiles— Number of most-changed files to list (default: 10)
git_branch
List and analyze branches.
Parameters:
repoPath(required) — Absolute path to the Git repositorybaseBranch— Branch to compare against (default: main or master)includeRemote— Include remote-tracking branchesmergedOnly/unmergedOnly— Filter by merge status
License
MIT