安装
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+... 命令,成功信号定为看到官方仓库的目录树。