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 分