安裝
uvx --from git+https://github.com/adhikasp/mcp-git-ingest mcp-git-ingest適合誰
如果你想讓 MCP 用戶端先看清某個 GitHub 倉庫的目錄樹,再讀取其中若干重要檔案,而不想自己手工克隆後翻目錄,這個服務對得上。它暴露兩個工具:github_directory_structure 回傳樹狀目錄,github_read_important_files 讀取你指定的檔案內容。實作上會用 GitPython 按倉庫 URL 的雜湊建立確定性臨時目錄,已克隆則複用,否則執行 clone。它適合公開倉庫的結構摸底和關鍵檔核對,不適合在未授權時去拉私有庫,也不適合把它當成完整的 git 工作區。克隆和讀檔都發生在本機;這不是「沒有網路、沒有本機讀取、沒有隱私邊界」。
3 分鐘完成第一次嘗試
官方主路徑是 uvx 直接從 Git 倉庫執行,執行時要求 Python 3.8+,並依賴 fastmcp 與 gitpython。在用戶端把命令寫成:
uvx --from git+https://github.com/adhikasp/mcp-git-ingest mcp-git-ingest
接入後做一次低風險呼叫:對官方倉庫本身使用 github_directory_structure,倉庫地址用 https://github.com/adhikasp/mcp-git-ingest
證據寫明該工具回傳樹狀目錄,但沒有給出參數名;用戶端若要求 repo_url,就填上面這個已出現的地址,不要發明分支或 token 參數。成功訊號是看到目錄樹,而不是檔案被改寫。這次會存取 GitHub 並在雜湊命名的臨時目錄留下克隆;摘要稱處理完會清理,但證據沒有寫出清理時機和失敗殘留,先把臨時目錄當成可能存在的副作用。唯讀工具不等於零風險。
使用案例
案例一:先看目錄樹。面對不熟悉的公開倉庫,先調 github_directory_structure。證據只保證回傳樹狀表示;它沒有寫深度限制、忽略規則或子模組行為。缺了就接受完整樹或用戶端截斷,不要補造 .gitignore 參數。
案例二:再讀重要檔案。已經知道路徑後,用 github_read_important_files 讀取指定檔案。這會再次使用同一套克隆邏輯。證據沒有列出「重要」的預設清單,路徑必須由你給出。先選 README 或短文本,避免一上來指定大量未知檔案。它沒有寫體積上限或編碼處理;超大檔能否完整回傳,現有說明覆蓋不到。
使用邊界
這是本機 stdio 服務,不是託管唯讀閘道。沒有 Git 操作能力(GitPython)就無法克隆。私有倉庫如何鑑權,證據沒有寫,不要把未說明的 token 環境變數當成已經支援。clone_repo 出現在實作說明裡,會按 URL 雜湊落臨時目錄;不要假設磁碟上不會留下副本。兩個工具以外的 git 寫操作都不在範圍內。專案頁: https://github.com/adhikasp/mcp-git-ingest
第一次嘗試只走官方 uvx --from git+... 命令,成功訊號定為看到官方倉庫的目錄樹。