RepoRadar - 集FastMCP于一体的Git仓库管理器
RepoRadar(可译为“回购雷达”,但具体翻译可能需根据上下文调整,若“Repo”在此处有特定含义,则应相应调整翻译) 是一个使用(某种技术或框架)构建的AI辅助Git仓库管理器 FastMCP它允许您通过MCP工具以编程方式克隆Git仓库、读取和编辑文件、将更改添加到暂存区/从暂存区移除、提交、推送以及可视化仓库树结构。此项目非常适合自动化仓库管理和进行Git操作的实验。
______________________________________________________________________
https://RepoRadar.fastmcp.app/mcp RepoRadar 的 MCP 服务器已通过此链接上线
目录
______________________________________________________________________
项目概述
RepoRadar 是一个基于 Python 的 MCP(可能是指某种控制协议或服务器框架,但在此上下文中未具体说明)服务器,它提供了对 Git 仓库的程序化访问。使用 FastMCP,您可以执行克隆、读取、编辑、提交、推送以及管理暂存更改等 Git 操作,而无需直接使用终端。
它是为以下目的而构建的:
- 自动化Git工作流程
- 仓库监控
- 学习并实验MCP工具的创建
- 与基于MCP的其他系统或代理的集成
______________________________________________________________________
特点/特性
- 将GitHub仓库克隆到本地目录
- 读取文件内容(支持字符限制)
- 编辑或向仓库中添加新文件
- 单独或一次性地提交已跟踪和未跟踪的文件
- 提交更改并附上自定义消息
- 将提交推送到远程仓库
- 生成仓库的树状结构
- 与FastMCP云部署(基于Linux)完全兼容
______________________________________________________________________
要求
- Python 3.12+
- FastMCP >= 2.12.5
- GitPython
- 用于克隆和向仓库推送的互联网连接
Python 依赖项(来自 requirements.txt):
fastmcp==2.12.5
gitpython==3.1.45
mcp==1.16.0
uvicorn==0.38.0
requests==2.32.5
pydantic==2.12.3
python-multipart==0.0.20
rich==14.2.0
...⚠ 注: pywin32 已移除,因为它仅适用于Windows系统,并且在FastMCP云(Linux)上会失败。______________________________________________________________________
安装
- 在本地克隆此存储库:
git clone https://github.com/AvatanshuGupta/RepoRadar.git
cd RepoRadar- 创建一个虚拟环境:
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows- 使用以下命令安装依赖项
uv:
uv pip install -r requirements.txt- 确保已安装Git,并且可以从终端访问。
______________________________________________________________________
使用方法
在本地运行MCP服务器:
python main.py这启动了FastMCP服务器 开发模式现在,您可以按以下方式调用MCP工具:
- 通过MCP检查器
- 或者通过另一个MCP客户端
______________________________________________________________________
MCP工具概述
| 工具 | 描述 |
|---|---|
clone_repo(url: str) | 在本地克隆一个GitHub仓库 |
read_file(repo_name: str, relative_path: str, max_chars: int=5000) | 读取文件内容(已截断) |
edit_or_add_file(repo_name: str, relative_path: str, content: str) | 添加或编辑文件而不进行提交 |
commit_changes(repo_name: str, file_paths: list, commit_message: str) | 提交已暂存的文件 |
push_changes(repo_name: str, remote_name: str="origin", branch: str="main") | 将提交推送到远程仓库 |
destage_files(repo_name: str, file_paths: list) | 取消暂存特定文件 |
destage_all(repo_name: str) 取消所有已暂存的更改 | |
generate_tree_initiation() | 生成仓库的树状结构 |
重要提示: 文件路径中的commit_changes,destage_files,以及类似的工具应该 相对于仓库根目录。
______________________________________________________________________
在FastMCP云上部署
部署 RepoRadar 转移到FastMCP云:
- 确保你的仓库在GitHub上。
- 更新
requirements.txt带有与Linux兼容的依赖项(移除pywin32)。 - 前往FastMCP云并创建一个新的MCP服务器。
- 将其连接到你的GitHub仓库。
- 设置 入口点 到
main.py。 - 如有需要,可选择设置环境变量。
- 部署。服务器将在云端自动启动。
提示: 如果部署因以下原因失败:pywin32,将其从……移除requirements.txtMCP云使用Linux容器。
______________________________________________________________________
目录结构
RepoRadar/
├── cloned_repos/ # Local clone directory
├── main.py # MCP server entrypoint
├── requirements.txt # Python dependencies
├── README.md
└── .gitignorecloned_repos/如果不存在,则会自动创建。- 所有克隆的仓库都存储在这里。
______________________________________________________________________
贡献
- 克隆该仓库
- 为你的功能创建一个分支
- 实现你的功能或修复问题
- 提交拉取请求
______________________________________________________________________
注意事项与最佳实践
- 在Git操作中始终使用相对文件路径。
- 使用
destage_all在进行新更改之前,安全地撤销所有已更改的内容。 - 在云部署时避免使用特定于Windows的软件包。
- 使用
generate_tree_initiation()在协作之前可视化仓库结构
