# 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 ```bash npm install npm run build ``` ## Configuration Add to your MCP client configuration: ```json { "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 repository - `count` — Number of commits to return (default: 20) - `author` — Filter by author name or email - `since` / `until` — Date range filters - `path` — 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 repository - `from` — Start ref (default: HEAD~1) - `to` — End ref (default: HEAD) - `path` — Limit diff to a specific file or directory - `summaryOnly` — 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 repository - `filePath` (required) — File path relative to repo root - `startLine` / `endLine` — Blame a specific line range - `ref` — Blame at a specific commit ### git_stats Get a high-level overview of repository activity. **Parameters:** - `repoPath` (required) — Absolute path to the Git repository - `topAuthors` — 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 repository - `baseBranch` — Branch to compare against (default: main or master) - `includeRemote` — Include remote-tracking branches - `mergedOnly` / `unmergedOnly` — Filter by merge status ## License MIT