Git Insight MCP
git-insight-mcp
Semantic git queries via MCP. Beyond git log — answer who/what/when/why about any line, file, or branch.

Pairs with terminal-history-mcp and localhost-mcp. Together: what you ran, what's running, what you changed.
Why
Devs ask these constantly; git answers poorly:
"Who last touched this function?" —
git blameonly gives lines, not authors-by-region"What PR introduced this line?" — manual: blame → commit SHA → search GH
"Which files always change together?" — no built-in
"Show unmerged branches older than 30 days" — bash one-liner gymnastics
"What did I work on last week?" — manual log scrub
LLM agents need this context to make safe edits. Currently they git log -n 5 and miss everything.
Related MCP server: semamerge
Install
npm install -g git-insight-mcpWire into Claude Code:
claude mcp add --scope user git-insight -- git-insight-mcpOr any MCP-compatible client. Runs as a stdio MCP server.
For PR / issue lookups, set a GitHub token:
export GH_TOKEN=ghp_...Without a token, the local-git tools still work. PR linkage is skipped.
Tools
Tool | Purpose |
| Group blame by author. Lines, commits, last-touched, primary owner. Optional line-range narrowing. |
| Find the PR that introduced a line (or commit). Parses merge messages first; falls back to GitHub API. |
| Files most often changed together with the input file. |
| List branches with ahead/behind, last commit, merged status, stale flag. |
| Standup helper: author's commits + files + ins/del in a window. |
| Full commit context: subject, body, files, PR, related issues. |
Sample output (who_touched)
{
"file": "src/auth.ts",
"total_lines": 124,
"authors": [
{ "name": "alice", "email": "alice@x.com", "lines": 87, "commits": 12, "last_commit_date": "2026-04-12T10:33:01.000Z" },
{ "name": "bob", "email": "bob@x.com", "lines": 37, "commits": 4, "last_commit_date": "2026-01-03T18:14:55.000Z" }
],
"primary_owner": "alice"
}CLI usage (sanity checks)
git-insight-mcp who-touched src/auth.ts
git-insight-mcp co-change src/auth.ts
git-insight-mcp branches
git-insight-mcp recent alice
git-insight-mcp commit a3e577e
git-insight-mcp intro-pr src/auth.ts:42
git-insight-mcp intro-pr a3e577e
git-insight-mcp # MCP stdio serverBuild from source
git clone https://github.com/HasanJahidul/git-insight-mcp.git
cd git-insight-mcp
npm install
npm run build
node dist/cli.js branchesLimits (v0.1)
GitHub only (no GitLab/Bitbucket yet).
co_changeis O(window × files-per-commit) — defaults capped at 1000 commits.Function-level blame is by line range, not AST. Renames not yet tracked.
GH API rate limit applies (5000/h authed). PR results uncached this version.
License
MIT
Available Tools
6 toolsbranch_hygieneARead-onlyIdempotent
Read-only. Inventory of branches with ahead/behind counts versus the default branch, last commit date and author, merged status, and a stale flag (no commits in stale_days days). Use it to find unmerged, abandoned branches. The default branch itself is excluded from the list. Pure local git; no network. Returns { count, branches, default_branch_excluded }.
Inputs: cwd, remote, stale_days. Returns: count, branches, default_branch_excluded
co_changeARead-onlyIdempotent
Read-only. Files that historically change together with the input file — answers "if I edit X, what else should I check?". Mines up to window recent commits that touch file, counts how often each other file appears alongside it, and returns those above threshold, with the co-occurrence count and ratio (count / commits-touching-file), capped at limit. Pure local log mining; no network. Cost is O(window × files-per-commit) — keep window ≤ a few thousand on large repos.
Inputs: file (required), cwd, limit, window, +1 more. Returns: file, co_changed, total_commits_touching
commit_contextARead-onlyIdempotent
Read-only. Everything about one commit in a single call: subject, body, changed files with per-file insertions/deletions, totals, the linked PR (parsed from the merge message, or via the GitHub API when GH_TOKEN/GITHUB_TOKEN is set), and issue numbers referenced in the message (Fixes #N, Closes #N). Errors if the SHA does not resolve in cwd. May make one outbound GitHub API call for PR enrichment.
Inputs: sha (required), cwd. Returns: pr, sha, body, date, +6 more
introducing_prARead-onlyIdempotent
Read-only. Find the pull request that introduced a line or a commit. First resolves the line to a commit via git blame, then reads the local merge-commit message; if that has no PR reference and GH_TOKEN/GITHUB_TOKEN is set, falls back to the GitHub REST API. Without a token the local path still works; pr is null when nothing can be resolved (e.g. rebase-merged with no PR ref). Provide either commit, or both file and line. May make one outbound GitHub API call (subject to the 5000/h authed rate limit).
Inputs: cwd, file, line, commit. Returns: pr, author, commit, source, +2 more
recent_workARead-onlyIdempotent
Read-only. Standup / changelog helper: one author's commits in a time window with files touched and insertion/deletion totals. Defaults to the repo's user.name and the last 7 days. Pure local git; no network. Returns { author, since, commit_count, commits[] } where each commit has subject, date, files, insertions, deletions.
Inputs: cwd, limit, since, author. Returns: since, author, commits, commit_count
who_touchedARead-onlyIdempotent
Read-only. Code ownership for a file via git blame, aggregated by author. Returns each author's line count, commit count, and most recent commit date, plus the primary_owner (most lines). Pass line_start/line_end to scope to one region (e.g. a single function). Errors if cwd is not a git repo or file is untracked. Cost scales with file size; instant for typical files.
Inputs: file (required), cwd, function, line_end, +1 more. Returns: file, authors, total_lines, primary_owner
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool targets a distinct git analysis task: branches, file co-change, commit details, PR introduction, recent work, and file ownership. No functional overlap is apparent.
All names use lowercase snake_case and are descriptive compound nouns (e.g., branch_hygiene, who_touched). While not strictly verb_noun, the pattern is consistent and readable.
Six tools is a well-scoped set for a git insight server, covering key analyses without being overwhelming or too sparse.
The set covers branch analysis, co-change, commit details, PR discovery, recent work, and blame. Missing common operations like branch diff or commit log filtering, but still functional for the intended domain.
Maintenance
Related MCP Connectors
Shared context for your codebase: a hosted code knowledge graph over MCP. Free plan, OAuth sign-up.
Deterministic context layer for your codebase: change impact, blast radius, answers with receipts.
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
Hosted code graph over MCP: exact callers, dependencies, and cross-repo blast radius for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAutomatically extracts architectural decisions, patterns, and insights from Git commits to build a local, structured project memory. It exposes this living context to AI tools via MCP, allowing them to understand the historical reasoning and evolution behind your codebase.53 npm6MIT
- AlicenseAqualityDmaintenanceMCP server that detects semantic (non-textual) merge conflicts between Git branches using AST-level analysis. Catches incompatible changes that Git merges cleanly — signature changes, removed exports, parameter changes, interface breaks, and cross-file dependency conflicts.448 npmMIT
- AlicenseAqualityCmaintenanceDevelopers: Search your zsh, bash, or fish shell history from Claude Code, Cline, Cursor, Zed, or any MCP client using tools like search_history (full-text with timestamp/CWD/exit code), recent_in_dir, failed_commands, and command_chains for multi-step sequences. Reindex after new activity. Local-only SQLite FTS5 with secrets redacted before storage.7149 npm5MIT
- AlicenseAqualityDmaintenanceInspect, manage, and kill local dev servers via MCP. Stop guessing what's on :3000. Five tools: list servers with framework detection, inspect ports, find zombies, diagnose conflicts, safe-kill with dry-run default. Local, no cloud, no telemetry.521 npm4MIT