Git History

io.github.tonyweckstrom1987由 GitHub 账号 tonyweckstrom1987 发布v1.1.1更新于 Oct 24, 2026

Give AI agents Git history tools: commit search, file history, blame, contributors, ref diffs.

已验证STDIO仅桌面知识与记忆开发者工具

概览

AI 生成的概览

本地 MCP 服务器,让 AI 助手读取并检索 Git 仓库历史:提交、文件历史、blame、贡献者和差异。

可以做什么
  • 按提交信息关键词或时间检索并列出提交
  • 查看单个提交的完整差异
  • 追踪文件的变更历史与逐行 blame
  • 汇总贡献者及其提交数量
  • 比较两个提交、分支或标签,可限定到单个文件
适用场景
适合让助手解释某个文件为何变更、某行代码最后由谁修改,或两个分支、标签之间有何差异,而不只是看到代码的当前状态。
运行要求
通过 npx 在本地运行,需要 Node.js 18/20/22/24。需要 Git 仓库路径,以命令行参数或 GIT_REPO_PATH 环境变量提供;若省略则使用服务器启动目录。无需 API 密钥或账号。
安装前请注意
只读:仅使用只读 Git 命令,从不修改仓库。它会读取你指定的仓库路径,避免指向不希望助手看到其历史的仓库。无需 API 密钥,无费用。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Git History,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

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):

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

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

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

json
{ "name": "search_commits", "arguments": { "query": "login-bugi", "limit": 10 } }
json
{ "name": "get_recent_commits", "arguments": { "limit": 5 } }
json
{ "name": "get_commit_diff", "arguments": { "commitHash": "a1b2c3d" } }
json
{ "name": "get_file_history", "arguments": { "filePath": "src/index.js", "limit": 10 } }
json
{ "name": "blame_file", "arguments": { "filePath": "src/index.js", "startLine": 10, "endLine": 25 } }
json
{ "name": "get_contributors", "arguments": { "limit": 10 } }
json
{ "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ä):

json
[  {    "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:

json
{  "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):

json
{  "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

bash
git clone <repo>cd mcp-server-git-historynpm installnpm test                                        # testaa tätä samaa repoanode 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ä

来源:README.md,提交 0a4d78a

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.1.1最新Sep 26, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分