Skip to main content
Glama

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)

  • git in PATH

  • gh CLI (install) + gh auth login for 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

  1. blame_context runs git blame -p on your lines to find the commit hash(es)

  2. For each commit it calls git show for the full message and diff stat

  3. It hits the GitHub API (gh api /repos/:owner/:repo/commits/:hash/pulls) to find the PR

  4. It parses #NNN and /issues/NNN refs from the PR body and fetches each issue

  5. 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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/muhannad-hash/git-context-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server