Git仓库API服务

一个轻量级的FastAPI服务器,将本地Git仓库操作暴露为MCP兼容的API,适用于需要从Git项目中编程访问文件的AI代理或自动化系统。

  • by moor-sun
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 moor-sun/git-mcp-server

使用说明

Git MCP服务器(FastAPI)

一个轻量级的FastAPI服务器,将本地Git存储库操作作为MCP兼容的API公开。
适用于需要从Git项目进行程序化文件访问的AI代理或自动化系统。


特性

端点 描述
POST /git-mcp/file 从存储库读取并返回文件内容
POST /git-mcp/list 递归列出给定路径下的文件(按扩展名筛选)
POST /git-mcp/pr-diff PR差异功能占位符(未来增强)

技术

  • Python 3.9+
  • 快速API
  • Uvicorn
  • 派丹蒂克
  • 默认情况下启用CORS中间件

配置

设置环境变量以定义存储库根:

Windows CMD

set GIT_LOCAL_REPO=D:\path\to\your\repo

PowerShell

$env:GIT_LOCAL_REPO="D:\path\to\your\repo"

Linux/macOS

export GIT_LOCAL_REPO="/home/user/project"

如果未设置,默认回退路径为:

D:/Sundar/MTech/Dissertation/svc-accounting

运行服务器

安装依赖项

pip install fastapi uvicorn pydantic

启动服务器

uvicorn main:app --reload --port 8003

打开API文档

使用Swagger UI:

http://localhost:8003/docs

API示例

获取文件

POST /git-mcp/file
{
  "repo": "local-repo",
  "path": "src/main/java/Example.java"
}

列出文件

POST /git-mcp/list
{
  "repo": "local-repo",
  "base_path": "src",
  "ext": ".java"
}

Pull Request Diff(待实现)

POST /git-mcp/pr-diff
{
  "repo": "local-repo",
  "pr_number": 10
}

未来改进

  • 使用GitPython或pygit2支持Git差异
  • 分行列表和结账界面
  • 在存储库内容中搜索
  • 二进制文件处理
  • 可选身份验证

贡献

对改进持开放态度——欢迎扩展路线并提交改进!