git-context-mcp
An MCP server that answers the one question every developer has: "why does this code exist?"
git blame tells you who wrote a line. This tells you why.
Given a file and line range, git-context-mcp traces back through the commit, finds the pull request that landed it, reads the PR description, and surfaces every linked GitHub issue β all in one shot, directly inside Claude.
---
Demo
You: Why does line 87 of src/auth/session.ts exist?
Claude (using blame_context):
Commit `a3f9c12` by Sarah Chen on 2024-08-14
Message: "fix: rotate session tokens on privilege escalation"
PR #441 β "Security: fix session fixation vulnerability"
Merged: 2024-08-15 | Labels: security, critical
PR Description:
> After the pen test in sprint 22, we found that session tokens
> weren't being rotated when a user's role changed. This allows
> a stolen low-priv token to be used after the account is promoted.
Linked Issue #389 β "Session token not rotated on role change" (closed)
> Reported by @contractor-red: "I was able to reuse a captured
> token after my account was upgraded to admin..."
No more digging through git log, searching GitHub, and cross-referencing issue trackers. Claude does it in one step.
---
Tools
| Tool | What it does | |------|-------------| | blame_context | File + line range β commit + PR description + linked issues | | commit_story | Commit hash β full narrative (message, diff stat, PR, issues) | | file_history | File β last N commits, each annotated with PR and issues | | search_commits | Keyword β matching commits with PR/issue context | | file_contributors | File β ranked author table (commits, lines owned, active dates) |
---
Installation
Option 1 β npx (no install)
claude mcp add git-context -- npx git-context-mcp
Option 2 β global install
npm install -g git-context-mcp
claude mcp add git-context -- git-context-mcp
Option 3 β manual config
Add to ~/.claude/claude_mcp_config.json:
{
"mcpServers": {
"git-context": {
"command": "npx",
"args": ["git-context-mcp"]
}
}
}
Then restart Claude Code.
---
Requirements
- Claude Code (or any MCP-compatible client)
gitin PATHghCLI (install) +gh auth loginfor GitHub PR/issue lookups- Works without
ghβ just skips PR/issue context
---
Usage examples
Once installed, talk to Claude naturally in any git repo:
"Why does line 42 of src/db/connection.ts exist?"
"What's the story behind commit d4a8f91?"
"Who owns the most of src/payments/stripe.ts?"
"When was the rate limiting added? Search commits for 'rate limit'"
"Show me the last 5 changes to src/api/auth.ts and why each was made"
---
How it works
blame_contextrunsgit blame -pon your lines to find the commit hash(es)- For each commit it calls
git showfor the full message and diff stat - It hits the GitHub API (
gh api /repos/:owner/:repo/commits/:hash/pulls) to find the PR - It parses
#NNNand/issues/NNNrefs from the PR body and fetches each issue - Everything is returned as structured markdown for Claude to reason over
No tokens stored. No data sent anywhere except GitHub's own API (same as gh CLI).
---
Contributing
PRs welcome. The entire server lives in src/index.ts.
git clone https://github.com/muhannad-hash/git-context-mcp
cd git-context-mcp
npm install
npm run dev # watch mode
---
License
MIT











