Token导航 LogoToken导航

MCP Server · 开发工具

Git Proxy MCP

git-proxy-mcp是一个安全的MCP服务器,允许云端AI助手使用您的本地Git凭证访问私有仓库,同时确保凭证永不离开您的设备。

未说明官方级别未说明来源级核验工具 10
安全认证RustClaudeClaude Desktop

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
MatejGomboc
提供方
MatejGomboc

工具数量

10

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

2

仓库热度

收录来源

1 个

MCP World

选型结论

Git Proxy MCP 属于开发工具类 MCP Server,公开资料标注 10 个工具,通过传输方式未标注接入,适配 Claude Desktop、Claude,没有现成的安装命令;接入前先确认权限范围。

分类

开发工具

传输方式

未说明

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 10 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

git代理mcp

您的Git凭据将保留在您的计算机上。你的仓库位于人工智能的工作空间中。

一个安全的MCP服务器,允许基于云的AI助手(Claude.AI、ChatGPT、Gemini等) 使用现有的Git凭据使用私有Git存储库,而无需这些凭据 证书永远不会离开你的机器。

______________________________________________________________________

问题

基于云的AI编码助手面临着一个根本的困境:

方法问题
GitHub MCP服务器逐文件API调用。50个文件=50个电话。无法运行测试。缓慢得令人痛苦。
向AI提供您的凭据安全噩梦。您的PAT/SSH密钥位于其他人的云中。
仅使用公共仓库大多数实际工作都是在私有存储库上进行的。

结果: AI助手可以编写代码,但实际上不能像真正的开发人员那样在你的项目上工作。

解决方案

git代理mcp充当 经过身份验证的流媒体代理 Git提供者和AI工作区之间:

┌─────────────────┐      ┌─────────────────┐      ┌─────────────────┐
│  Git Providers  │      │    YOUR PC      │      │    AI's VM      │
│                 │      │                 │      │                 │
│  GitHub         │◄────►│  git-proxy-mcp  │◄────►│  Claude.ai      │
│  GitLab         │      │                 │      │                 │
│  Bitbucket      │      │  (credentials   │      │  /home/claude/  │
│  Azure DevOps   │      │   stay here)    │      │    repo/        │
│  Self-hosted    │      │                 │      │  (files live    │
│                 │      │                 │      │   here)         │
└─────────────────┘      └─────────────────┘      └─────────────────┘

关键见解: AI有自己的VM,具有完整的Linux功能。它只是无法对您的私人存储库进行身份验证。我们解决 *仅* 这个问题。

运作原理

  1. 克隆: AI请求回购→ MCP服务器进行身份验证→ 将文件直接流式传输到AI的VM
  2. 工作: AI有一个完整的本地git仓库。分支、编辑、测试、提交——都是原生的。
  3. 推: AI发送提交→ MCP服务器进行身份验证→ 推到远程

凭证永远不会离开你的机器。文件永远不会碰你的机器。

______________________________________________________________________

这是给谁的?

环境本地Git?需要这个吗?为什么
Claude.ai❌ 云虚拟机✅ 是有计算能力,缺乏凭据
ChatGPT+代码解释器❌ 沙盒✅ 是同样的情况
Gemini+代码执行❌ 沙盒✅ 是同样的情况
任何带有VM的云AI❌✅ 是通用解决方案
克劳德代码✅ 本地❌ 否已经可以直接访问
光标✅ 本地❌ 否在您的机器上运行
GitHub副本✅ 本地❌ 无IDE扩展

______________________________________________________________________

比较:GitHub MCP与git代理MCP

操作GitHub MCP服务器git代理MCP
克隆100个文件100个API调用,分钟1个流式调用,秒
快跑 cargo test❌ 不可能✅ 原生于AI的虚拟机中
交互式重基❌ 不可能✅ git rebase -i
分支+编辑+提交+推送4+neneneba API调用本地工作,1推送
查看git log/diffAPI调用即时本地命令
大型存储库超时地狱浅克隆,稀疏结账
速率限制持续命中仅授权,API使用最少

______________________________________________________________________

建筑

安全模型

┌─────────────────────────────────────────────────────────────────┐
│  YOUR PC (credentials stay here, files don't)                   │
│                                                                 │
│  ┌──────────────────┐      ┌─────────────────────────────────┐  │
│  │ git-proxy-mcp    │      │ Your Git Configuration          │  │
│  │                  │◄────►│                                 │  │
│  │ • Auth callbacks │      │ • ~/.gitconfig                  │
│  │ • Object stream  │      │ • SSH keys (ssh-agent)          │  │
│  │ • No file storage│      │ • Credential helpers            │  │
│  └────────┬─────────┘      └─────────────────────────────────┘  │
│           │                                                     │
└───────────┼─────────────────────────────────────────────────────┘
            │
            │ Streaming: files/patches (NOT credentials)
            ▼
┌─────────────────────────────────────────────────────────────────┐
│  AI's VM (files live here, credentials don't)                   │
│                                                                 │
│  ┌──────────────────┐                                           │
│  │ /home/claude/    │  AI workflow (all local, no network):     │
│  │   repo/          │  • git checkout -b feature                │
│  │     .git/        │  • vim src/main.rs                        │
│  │     src/         │  • cargo test                             │
│  │     Cargo.toml   │  • git commit -m "fix bug"                │
│  └──────────────────┘                                           │
└─────────────────────────────────────────────────────────────────┘

什么流向哪里

数据你的电脑网络人工智能的虚拟机
凭据(PAT、SSH密钥)✅ 停留❌ 从不❌ 从来没有
存储库文件❌ 从未存储流式传输✅ 住在这里
Git对象/历史记录❌ 从未存储流式传输✅ 住在这里
提交/补丁❌ 仅限临时已流式传输✅ 在这里创建

______________________________________________________________________

MCP工具

第1层:单一响应工具

repo_clone

将存储库流式传输到AI的工作区(中小型存储库)。

{
    "name": "repo_clone",
    "arguments": {
        "url": "https://github.com/user/private-repo",
        "branch": "main",
        "depth": 1,
        "sparse": ["src/", "Cargo.toml"]
    }
}

上面未显示的可选参数:

  • exclude_binary (bool)--跳过二进制文件
  • max_file_size (数量,字节)--跳过超过大小限制的文件
  • resolve_lfs (bool)-获取LFS指针文件并用其实际内容替换
  • include_submodules (bool)--递归获取子模块
  • submodule_depth (number)——子模块递归深度。省略为无限(镜像

git clone --recurse-submodules). 1 =仅顶层子模块; 0 =跳过子模块 完全(覆盖 include_submodules: true).

  • submodule_include (glob模式数组)--仅获取与至少一个模式匹配的子模块
  • submodule_exclude (glob模式数组)--跳过匹配任何模式的子模块(优先于include)

答复: Base64编码tar.gz archive, commit 沙, branch, file_count, archive_size (字节,base64之前),以及a hint 字符串指向 helper_script 用于提取。 可选计数器仅在非零时显示: skipped_by_filter, skipped_binary, skipped_too_large, lfs_resolved, lfs_failed, submodules_included, submodules_failed.

repo_push

将git包从AI的工作区推送到远程。

{
    "name": "repo_push",
    "arguments": {
        "url": "https://github.com/user/private-repo",
        "branch": "feature/fix-bug",
        "bundle": "",
        "force": false
    }
}

答复: branch,推 commit 沙, force 消毒过的旗帜(回声) remote_url, 和一个 hint 解释如何为后续推送创建包的字符串。

第2层:分块流媒体工具(大型仓库)

对于太大而无法在单个响应中传输的存储库。

repo_clone_start

启动分块克隆会话。

{
    "name": "repo_clone_start",
    "arguments": {
        "url": "https://gitlab.com/org/large-repo",
        "branch": "main",
        "depth": 1,
        "chunk_size": 1048576
    }
}

上面未显示的可选参数 --与对应的语义相同 repo_clone 上面记录的论点:

  • sparse (路径/球体阵列)
  • exclude_binary (布尔)
  • max_file_size (数字,字节)
  • resolve_lfs (布尔)
  • include_submodules (布尔)
  • submodule_depth (编号)
  • submodule_include (球状图案阵列)
  • submodule_exclude (球状图案阵列)

答复: session_id, total_chunks, total_size (字节,base64之前的总存档大小), chunk_size (字节,夹紧后协商的每个块大小), commit, branch, file_count, 和一个 hint 弦。与跳过/LFS/子模块计数器相同的可选计数器 repo_clone 当非零时出现。

repo_clone_chunk

从流媒体会话中获取数据块。

{
    "name": "repo_clone_chunk",
    "arguments": {
        "session_id": "stream_abc123",
        "chunk_index": 0
    }
}

答复: Base64编码 data,the chunk_index (回应), chunk_size (这一块 base64之前的字节大小), is_last 旗,以及 next_missing_chunk (当没有块时省略 resident——用于在传输中断后恢复)。

repo_clone_status

检查分块克隆会话的进度和恢复状态。

{
    "name": "repo_clone_status",
    "arguments": {
        "session_id": "stream_abc123"
    }
}

答复: session_id (回应), total_chunks, delivered_chunks, next_missing_chunk (当检索到所有块时为空), progress_percent (0.0–100.0),以及 is_complete 旗帜。

repo_clone_cancel

取消流媒体会话(可选,在配置的超时后自动过期)。

{
    "name": "repo_clone_cancel",
    "arguments": {
        "session_id": "stream_abc123"
    }
}

答复: { "cancelled": } — true 如果找到并删除了会话, false 如果不存在这样的会话(不是错误)。

其他工具

repo_pull

将远程的新更改同步到AI的工作区。

{
    "name": "repo_pull",
    "arguments": {
        "url": "https://github.com/user/private-repo",
        "branch": "main",
        "since_commit": "abc123"
    }
}

答复: 统一 diff,base64 tar.gz更改/添加的文件(files_archive), changed_files 列出每个文件的更改类型, deleted_files 列表, base_commit 和 new_commit SHA,更改 stats, up_to_date 旗,和a hint 字符串指向 helper_script 用于提取 files_archive.

repo_diff

获取两次提交之间的差异。

{
    "name": "repo_diff",
    "arguments": {
        "url": "https://github.com/user/private-repo",
        "base_commit": "abc123",
        "head_commit": "def456"
    }
}

答复: 统一 diff 文本, stats (添加/删除/文件更改计数),以及 完全解决 base_commit 和 head_commit SHA(这样AI就可以缓存比较结果,而无需 重新解析原始参考文献)。

repo_refs

列出远程分支和标签。

{
    "name": "repo_refs",
    "arguments": {
        "url": "https://github.com/user/private-repo"
    }
}

答复: branches 和 tags 列表(每个条目都有引用名称和提交SHA), default_branch (例如。 main 或 master,从远程HEAD获取),以及 total_refs 计数。

公用事业

helper_script

获取一个Python辅助脚本来处理结果(解码base64,提取tar.gz)。

{
    "name": "helper_script",
    "arguments": {}
}

答复: Python脚本源代码,加上建议 filename,简短 usage 指令和脚本 version.

______________________________________________________________________

安装

先决条件

Git命令行界面

服务器调用 git 对于两个操作: git credential fill (读取您存储的 通过操作系统凭据助手获取凭据——请参阅 src/git2_ops/auth.rs)以及 git bundle unbundle (申请a repo_push 经过身份验证的推送之前的有效载荷——请参阅 src/git2_ops/push.rs). 任何合理的现代git(2.x) PATH 作品;git≥2.53(含 # v3 git bundle 标题)也被接受。

防锈工具链
  • 支持的最低Rust版本(MSRV): 1.75-申报 Cargo.toml 作为 rust-version.

任何使用git代理mcp作为库的人只需要1.75或更高版本。

  • 固定开发版本: 1.95.0--声明于 rust-toolchain.toml.CI构建、发布、,

和那个 target/release/ 您在本地生成的二进制文件都使用这个确切的版本。运行任何 cargo repo中的命令通过rustup自动安装它。

这种两层方法(松散的MSRV+严格的引脚)为我们的构建提供了可重复性,而无需强制 下游消费者发布特定点。

Git身份验证

将Git配置为在不提示的情况下进行身份验证:

# macOS
git config --global credential.helper osxkeychain

# Windows
git config --global credential.helper manager

# Linux
git config --global credential.helper libsecret

对于SSH,请确保您的密钥在SSH代理中:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

使用Claude Desktop

添加到您的Claude Desktop MCP配置中:

{
    "mcpServers": {
        "git-proxy": {
            "command": "git-proxy-mcp",
            "args": []
        }
    }
}

______________________________________________________________________

配置

配置文件位置:

  • Linux/macOS: ~/.git-proxy-mcp/config.json
  • 窗户: %USERPROFILE%\.git-proxy-mcp\config.json
{
    "git_identity": {
        "name": "Claude AI",
        "email": "ai-assistant@your-domain.com"
    },
    "security": {
        "allow_force_push": false,
        "protected_branches": ["main", "master"]
    },
    "logging": {
        "level": "warn",
        "audit_log_path": "~/.git-proxy-mcp/audit.log"
    },
    "timeouts": {
        "request_timeout_secs": 300
    },
    "limits": {
        "max_output_bytes": 10485760
    },
    "rate_limits": {
        "max_burst": 20,
        "refill_rate_per_sec": 5.0
    },
    "proxy": {
        "url": "http://proxy.example.com:8080",
        "no_proxy": "*.internal.com,localhost"
    },
    "sessions": {
        "timeout_secs": 3600,
        "max_streaming_sessions": 10,
        "max_repo_sessions": 100
    },
    "lfs": {
        "retry_max_attempts": 3,
        "max_object_size": 104857600
    },
    "submodules": {
        "exclude_patterns": ["vendor/*"]
    }
}

有关显示每个部分和选项的完整填充示例,请参阅 config/example-config.json.

配置选项

章节选项描述
git_identitynameAI辅助提交的名称,例如“Claude AI”(默认值:null——AI设置自己的身份)
git_identityemailAI辅助提交的电子邮件(默认值:null)
securityallow_force_push允许强制推动(默认值:false)
securityprotected_branches阻止强制推送和删除的分支。默认值:空列表,服务器将其视为“使用内置安全集”(main, master, develop);设置为任何非空列表以覆盖回退。
securityrepo_allowlist只允许这些仓库模式(默认值:null--禁用allowlist模式)
securityrepo_blocklist阻止这些回购模式(默认值:null--无阻止列表)
logginglevel日志级别:跟踪、调试、信息、警告、错误(默认值: warn)
loggingaudit_log_path审核日志文件的路径(默认值:null--禁用审核日志记录)
timeoutsrequest_timeout_secsGit操作超时(默认值:300)
limitsmax_output_bytes每个命令的最大组合stdout+stderr(默认值:10 MiB)
rate_limitsmax_burst最大突发操作数(默认值:20)
rate_limitsrefill_rate_per_sec持续速率限制(默认值:5.0)
proxyurl代理URL——HTTP、HTTPS或SOCKS5(默认值:null——无代理,回退到git http.proxy)
proxyno_proxy逗号分隔的主机绕过代理(默认值:null)
sessionstimeout_secs会话不活动超时(默认值:3600)
sessionsmax_streaming_sessions最大第2层流会话数(默认值:10)
sessionsmax_repo_sessions最大回购跟踪会话数(默认值:100)
lfsretry_max_attempts最大LFS下载重试次数(默认值:3)
lfsretry_initial_backoff_ms初始重试回退(毫秒)(默认值:500)
lfsretry_max_backoff_ms最大重试回退(毫秒)(默认值:30000)
lfsretry_backoff_multiplier指数退避倍数(默认值:2.0)
lfsmax_object_size最大单个LFS对象大小(以字节为单位)(默认值:null--无限制;超大对象保留为指针文件)
lfsrequest_timeout_secs批量API POST的HTTP请求超时(以秒为单位)(默认值:300)
lfsconnect_timeout_secsHTTP连接超时(秒)(默认值:30)
lfsdownload_timeout_secsHTTP每个对象下载超时(秒)——通常大于 request_timeout_secs 对于多GiB blob(默认值:600)
submodulesmax_concurrent并行子模块取数(默认值:4)
submodulesmax_failures停止前最大子模块故障数(默认值:3)
submodulesinclude_patterns要包含的全局模式(默认值:null——允许所有子模块)
submodulesexclude_patterns要排除的全局模式(默认值:null--不排除任何内容)

______________________________________________________________________

贡献

欢迎投稿!看 贡献.md 作为指导方针。

______________________________________________________________________

许可证

版权所有(C)2026 Matej Gomboc .

GNU通用公共许可证v3.0--请参阅 许可证.

______________________________________________________________________

链接

工具与能力

工具数量

10

资源数量

0

提示词数量

0

能力标签

Git代理Rust本地部署AI开发工具安全认证代码协作云开发

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 工具数量 10 个,一次接入能覆盖的操作比单点工具更全。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Git Proxy MCP

MCP World · 本页

10未说明未标注1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Git Proxy MCP 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Git Proxy MCP 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Git Proxy MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Git Proxy MCP 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Git Proxy MCP 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP