MCP server that gives AI agents deep git intelligence: history, blame, hotspots, ownership, and diffs since any ref.
gitpulse-mcp demonstrates solid tool design with consistent naming (verb_noun pattern), comprehensive descriptions (avg 180 chars), and complete input schemas with Zod validation. All 8 tools are explicitly registered with descriptions, titles, and inputSchema. Tool annotations (readOnlyHint, openWorldHint) are present. However, output schemas are not documented in the source, LLMs cannot see what fields to expect from responses. Error handling is wrapped via safeHandler but recovery guidance is not visible. Parameter descriptions are good but lack explicit format constraints (e.g., date format for 'since' param). No pagination guidance for potentially large result sets (hotspots, ownership, blame_summary).
Per-file blame rolled up by author: who owns how many of the current lines, their share %, and last-touched date. Flags knowledge concentration. Far more useful than raw blame for reasoning about a file.
Everything that changed between a base ref (tag/branch/commit) and HEAD (or another ref): commit list, files changed, +/- stats, grouped by directory. Perfect for "what is in this release/PR".
Find the riskiest files: ranked by change frequency × file size (the "code as a crime scene" hotspot signal). Surfaces where bugs and rework concentrate so an agent knows where to focus tests and review.
Contributor/ownership map for a path or the whole repo: top authors by commits and lines, plus detection of "knowledge silos" (files dominated by a single author = bus-factor risk).
Summarize recent commits (author, date, subject, files changed, +/- lines) for a branch/ref, optionally filtered by path, author, or date. Use to see what is happening in a repo or area.
Output schemas not documented. LLMs cannot see what fields responses contain, forcing them to guess downstream field names and risk broken tool chains.
Date parameters ('since', 'start date') lack explicit format documentation. Description says 'e.g. 2 weeks ago, 2026-01-01' but does not specify if both formats are valid or which is preferred. LLMs may pass invalid formats.
No pagination or result-limit guidance. Tools like git_hotspots (top N), git_ownership (top N), git_blame_summary (top N) accept numeric limits but do not document max values or what happens if results exceed limits. Large repos could return thousands of items.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2025-06-18+ | v2 |
Quick vitals for a git repo: current branch/HEAD, total commits, contributor count, age, latest tags, and most-changed files. Ideal first call to orient in an unfamiliar repository.
Search commit history by message text, author, or by code change (git pickaxe -S/-G). Use code mode to find when a string/symbol was introduced or removed.
Line-level blame for a file + line range: the commits and authors responsible for those lines, with a suggested reviewer. Use to find who to ask or why a chunk of code exists.
Error recovery guidance not visible in source. safeHandler wraps errors but descriptions do not tell LLMs what to do if a tool fails (e.g., 'repo not found, pass a valid repoPath').
Parameter 'ref' in git_recent_changes and 'path' in multiple tools lack examples or constraints. LLMs may pass invalid branch names or glob patterns without guidance.