git-insight-mcp

HasanJahidul/git-insight-mcp
1 starsMITCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

git-insight-mcp MCP server](https://glama.ai/mcp/servers/HasanJahidul/git-insight-mcp/badges/score.svg)](https://glama.ai/mcp/servers/HasanJahidul/git-insight-mcp) 📇 🏠 🍎 🪟 🐧 - Semantic git queries beyond git log: who-touched (blame grouped by author...

README.md

<p align="center"> <img src="assets/logo.png" alt="git-insight-mcp" width="200" /> </p>

git-insight-mcp

![git-insight-mcp MCP server](https://glama.ai/mcp/servers/HasanJahidul/git-insight-mcp) ![CI](https://github.com/HasanJahidul/git-insight-mcp/actions/workflows/ci.yml) ![npm version](https://www.npmjs.com/package/git-insight-mcp) ![License: MIT](LICENSE)

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

!demo

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 blame only 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.

Install

npm install -g git-insight-mcp

Wire into Claude Code:

claude mcp add --scope user git-insight -- git-insight-mcp

Or 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 | |------|---------| | who_touched | Group blame by author. Lines, commits, last-touched, primary owner. Optional line-range narrowing. | | introducing_pr | Find the PR that introduced a line (or commit). Parses merge messages first; falls back to GitHub API. | | co_change | Files most often changed together with the input file. | | branch_hygiene | List branches with ahead/behind, last commit, merged status, stale flag. | | recent_work | Standup helper: author's commits + files + ins/del in a window. | | commit_context | 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 server

Build 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 branches

Limits (v0.1)

  • GitHub only (no GitLab/Bitbucket yet).
  • co_change is 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

Related MCP servers

Browse all →