Git仓库管理工具

RepoRadar是一个基于FastMCP的AI辅助Git仓库管理工具,支持克隆、读取、编辑、提交、推送等Git操作,适用于自动化仓库管理和Git操作实验。

  • by AvatanshuGupta
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 AvatanshuGupta/RepoRadar

使用说明

RepoRadar - 集FastMCP于一体的Git仓库管理器

RepoRadar(可译为“回购雷达”,但具体翻译可能需根据上下文调整,若“Repo”在此处有特定含义,则应相应调整翻译) 是一个使用(某种技术或框架)构建的AI辅助Git仓库管理器 FastMCP它允许您通过MCP工具以编程方式克隆Git仓库、读取和编辑文件、将更改添加到暂存区/从暂存区移除、提交、推送以及可视化仓库树结构。此项目非常适合自动化仓库管理和进行Git操作的实验。


https://RepoRadar.fastmcp.app/mcp RepoRadar 的 MCP 服务器已通过此链接上线

目录

  1. 项目概述
  2. 特点/功能
  3. 要求
  4. 安装
  5. 使用方法
  6. MCP工具概述
  7. 在FastMCP云上部署
  8. 目录结构
  9. 贡献

项目概述

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)上会失败。


安装

  1. 在本地克隆此存储库:
git clone https://github.com/AvatanshuGupta/RepoRadar.git
cd RepoRadar
  1. 创建一个虚拟环境:
python -m venv venv
source venv/bin/activate  # Linux/macOS
venv\Scripts\activate     # Windows
  1. 使用以下命令安装依赖项 uv:
uv pip install -r requirements.txt
  1. 确保已安装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云:

  1. 确保你的仓库在GitHub上。
  2. 更新 requirements.txt 带有与Linux兼容的依赖项(移除 pywin32)。
  3. 前往FastMCP云并创建一个新的MCP服务器。
  4. 将其连接到你的GitHub仓库。
  5. 设置 入口点 到 main.py。
  6. 如有需要,可选择设置环境变量。
  7. 部署。服务器将在云端自动启动。

提示: 如果部署因以下原因失败: pywin32,将其从……移除 requirements.txtMCP云使用Linux容器。


目录结构

RepoRadar/
├── cloned_repos/          # Local clone directory
├── main.py                # MCP server entrypoint
├── requirements.txt       # Python dependencies
├── README.md
└── .gitignore
  • cloned_repos/ 如果不存在,则会自动创建。
  • 所有克隆的仓库都存储在这里。

贡献

  1. 克隆该仓库
  2. 为你的功能创建一个分支
  3. 实现你的功能或修复问题
  4. 提交拉取请求

注意事项与最佳实践

  • 在Git操作中始终使用相对文件路径。
  • 使用 destage_all 在进行新更改之前,安全地撤销所有已更改的内容。
  • 在云部署时避免使用特定于Windows的软件包。
  • 使用 generate_tree_initiation() 在协作之前可视化仓库结构