npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

git-context-mcp

v1.0.0

Published

MCP server that answers 'why does this code exist?' — git blame + PR descriptions + linked issues, inside Claude

Readme

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