mcpField
G
git-history

git-history

Local
github.com/tonyweckstrom1987Version Control0Updated 1w ago

About git-history

git-history is an MCP server that gives AI agents read-only access to a repository's Git history. It helps developers investigate when and why code changed, who authored lines, and how refs differ.

Key features

  1. 01Search commits by message
  2. 02Inspect recent commits and diffs
  3. 03Trace file history and line authorship
  4. 04List repository contributors
  5. 05Compare refs, optionally by file

Use cases

  1. 01Find the commit behind a behavior change
  2. 02Identify who last changed a file or line
  3. 03Review differences between branches or tags

MCP support

The server exposes Git history tools to MCP clients over stdio. All operations use read-only Git commands and do not modify the repository.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"tonyweckstrom1987-git-history": {
"command": "npx",
"args": [
"-y",
"mcp-server-git-history"
]
}
}
}
Run commandnpx -y mcp-server-git-history

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmmcp-server-git-history1.1.1

Tools

7

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
limitintegerNoMaximum number of results (default 20)
querystringYesSearch term or phrase in commit messages

Details

From the project README

mcp-server-git-history

npm version CI License: MIT

Uusin julkaistu versio: 1.1.2 — https://www.npmjs.com/package/mcp-server-git-history

MCP-palvelin (Model Context Protocol) joka antaa tekoälyagenteille (Claude Desktop, Cursor, Windsurf) työkalut Git-repositorion historian lukemiseen ja hakemiseen.

Ratkaisee ongelman jossa tekoäly näkee koodin nykytilan, mutta ei tiedä miksi jokin muuttui tai kuka teki muutoksen viimeksi.

Teknologiat: Node.js 18/20/22/24, Model Context Protocol (stdio), simple-git, zod. Lisenssi: LICENSE.

Sisältö: Quick start · Työkalut · Esimerkkivastaus · Asennus Claude Desktopiin · Asennus Cursoriin · Kehitys ja testaus · Rakenne

Quick start

An MCP server that gives AI agents (Claude Desktop, Cursor, Windsurf) tools to read and search Git history — commit search, file history, blame, contributors, and diffs between refs.

Run it directly with npx (no install needed):

npx -y mcp-server-git-history /path/to/your/repo

Add it to Claude Desktop's config (claude_desktop_config.json):

{
  "mcpServers": {
    "git-history": {
      "command": "npx",
      "args": ["-y", "mcp-server-git-history", "/path/to/your/repo"]
    }
  }
}

Restart Claude Desktop, then ask something like "When was src/index.js last changed, and why?"

Työkalut

  • search_commits(query, limit?) — etsii commiteja hakusanalla commit-viestistä
  • get_recent_commits(limit?) — hakee uusimmat commitit (yleiskuva viimeaikaisista muutoksista)
  • get_commit_diff(commitHash) — hakee yhden commitin koko diffin
  • get_file_history(filePath, limit?) — hakee tiedoston muutoshistorian (kuka, milloin, miksi)
  • blame_file(filePath, startLine?, endLine?) — rivikohtainen git blame: kuka ja missä commitissa kirjoitti kunkin rivin
  • get_contributors(limit?) — yhteenveto committaajista ja heidän commit-määristään (git shortlog -sn)
  • get_diff_between_refs(fromRef, toRef, filePath?) — diffi kahden commitin/branchin/tagin välillä, valinnaisesti yhteen tiedostoon rajattuna
Esimerkkikutsut
{ "name": "search_commits", "arguments": { "query": "login-bugi", "limit": 10 } }
{ "name": "get_recent_commits", "arguments": { "limit": 5 } }
{ "name": "get_commit_diff", "arguments": { "commitHash": "a1b2c3d" } }
{ "name": "get_file_history", "arguments": { "filePath": "src/index.js", "limit": 10 } }
{ "name": "blame_file", "arguments": { "filePath": "src/index.js", "startLine": 10, "endLine": 25 } }
{ "name": "get_contributors", "arguments": { "limit": 10 } }
{ "name": "get_diff_between_refs", "arguments": { "fromRef": "main", "toRef": "HEAD", "filePath": "src/index.js" } }

Vain luku: kaikki työkalut käyttävät ainoastaan lukevia Git-komentoja (log, show, blame, shortlog, diff). Palvelin ei koskaan muuta repositoriota.

Esimerkkivastaus

get_recent_commits palauttaa JSON-listan (todellinen tulos npm test:stä):

[
  {
    "hash": "bc3338e",
    "date": "2026-10-05T14:29:43+03:00",
    "author": "tonyweckstrom1987",
    "message": "Upgrade GitHub Actions to latest versions"
  }
]

Asennus Claude Desktopiin

Lisää claude_desktop_config.json-tiedostoon:

{
  "mcpServers": {
    "git-history": {
      "command": "npx",
      "args": ["-y", "mcp-server-git-history", "/polku/repositorioosi"]
    }
  }
}

Repositorion polku voidaan antaa myös GIT_REPO_PATH-ympäristömuuttujalla, tai jättää pois jolloin käytetään palvelimen käynnistyshakemistoa.

Käynnistä Claude Desktop uudelleen, ja kysy esimerkiksi: "Milloin tiedostoa src/index.js on viimeksi muokattu ja miksi?"

Asennus Cursoriin

Lisää projektin .cursor/mcp.json-tiedostoon (tai globaaliin ~/.cursor/mcp.json-tiedostoon):

{
  "mcpServers": {
    "git-history": {
      "command": "npx",
      "args": ["-y", "mcp-server-git-history", "/polku/repositorioosi"]
    }
  }
}

Avaa Cursorin asetuksista MCP-välilehti ja varmista, että git-history-palvelin on käynnissä (vihreä piste). Sama GIT_REPO_PATH-ympäristömuuttuja ja komentoriviargumentti toimivat kuin Claude Desktopissa.

Kehitys ja testaus paikallisesti

git clone <repo>
cd mcp-server-git-history
npm install
npm test                                        # testaa tätä samaa repoa
node test/manual-test.js /polku/johonkin/git-repoon   # tai jotain muuta repoa

Testiskripti käynnistää palvelimen alaprosessina ja kutsuu kaikkia työkaluja oikeaa MCP-protokollaa käyttäen (@modelcontextprotocol/sdk:n Client + StdioClientTransport), ei vain suoraan funktioita — samalla tavalla kuin Claude Desktop oikeasti kutsuisi palvelinta.

Miksi tämä on ilmainen ylläpitää

Palvelin itse ei tee tekoälykutsuja — se vain lukee Git-dataa ja palauttaa sen. Tekoäly (esim. Claude Desktop) kutsuu palvelinta, ei toisinpäin. Ei API-avaimia, ei kustannuksia.

Rakenne

  • bin/server.js — MCP-palvelin, työkalujen rekisteröinti (McpServer + StdioServerTransport)
  • lib/git-tools.js — Git-logiikka (simple-git)
  • test/manual-test.js — päästä-päähän-testi oikealla MCP-clientillä

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.