Give AI agents Git history tools: commit search, file history, blame, contributors, ref diffs.
Runs on your machine from its package; the steps are below.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y mcp-server-git-history
MCP client config
{
"mcpServers": {
"git-history": {
"command": "npx",
"args": [
"-y",
"mcp-server-git-history"
]
}
}
}Uusin julkaistu versio: 1.1.1 — 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
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?"
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 diffinget_file_history(filePath, limit?) — hakee tiedoston muutoshistorian (kuka, milloin, miksi)blame_file(filePath, startLine?, endLine?) — rivikohtainen git blame: kuka ja missä commitissa kirjoitti kunkin rivinget_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{ "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.
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"
}
]
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?"
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.
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.
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.
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ä