代码仓库管理服务器

YARMCP是一个自托管的Git仓库管理服务器,为AI助手提供快速访问最新源代码的能力,避免GitHub API限制和多仓库克隆问题。

  • by sunnamed434
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sunnamed434/yarmcp

使用说明

YARMCP

Y和 **A.**不同的 R欧洲专利局 主控程序 -自托管MCP服务器,将git repo克隆到您的服务器,让AI助手快速访问最新的源代码,而无需达到GitHub API限制或每个项目需要多个repo克隆。

用例

您正在使用AI(Claude Code、Cursor、Claude.AI web、ChatGPT、Copilot等),并想问: “最新的React Router v7如何处理数据加载?”

  • ❌ 人工智能训练数据已有6-7个月的历史——表明API过时或进行网络搜索(速度慢,吃代币,并不总是准确)
  • ❌ GitHub MCP工作正常,但很快达到5000个请求/小时的限制
  • ✅ YARMCP:直接服务器访问,无速率限制,始终保持最新,无需网络搜索

你使用10多个repos(React、TypeScript、TailwindCSS等)和命中率限制:

  • ❌ GitHub MCP:5000个请求/小时共享-很快用完
  • ❌ git-mcp:仍然达到GitHub API的限制
  • ✅ YARMCP:零速率限制,从服务器存储读取

你希望AI在各个项目中引用官方源代码:

选项1:创建 /repos PC上包含所有克隆的文件夹

  • ❌ 10个存储库×500MB=5GB磁盘空间
  • ❌ 必须手动 git pull 保持更新
  • ❌ 切换PC?重新启动或设置服务器同步

选项2:将存储库克隆到项目目录中

  • ❌ 你的 .git 文件夹变大(如果太大,GitHub可能会拒绝推送)
  • ❌ 增添 .gitignore?每个团队成员必须在本地手动克隆这些存储库
  • ❌ 团队成员版本不同——不一致

选项3:使用YARMCP

  • ✅ 一台服务器,所有项目访问相同的存储库(无重复)
  • ✅ 每6小时自动更新一次(可配置)
  • ✅ 浅层克隆(--depth=1)根据回购历史记录节省30-95%的空间
  • ✅ 适用于任何PC、浏览器或IDE,只需连接到服务器即可
  • ✅ 支持私有仓库(GitHub PAT或SSH密钥)

是什么让YARMCP与众不同?

智能错误处理:

  • 找不到文件建议 -当路径不存在时显示类似文件
  • 目录预览 -显示前3项以减少勘探步骤
  • 树视图工具 -带Unicode的格式化目录树,深度控制(1-5级)

性能和安全:

  • 无费率限制 -服务器存储克隆的repos,不需要GitHub API调用
  • 私有repos支持 -私有存储库的GitHub PAT或SSH密钥
  • OAuth 2.1+PKCE -动态客户端注册的完整OAuth流程
  • 路径验证 -防止目录遍历,阻止敏感文件
  • 浅层克隆 - --depth=1 节省磁盘空间和克隆时间

AI助手功能:

  • 使用指南工具 -内置 get_yarmcp_usage_guide() 使用工作流
  • Ripgrep搜索 -使用上下文行、性能指标进行快速代码搜索
  • 按回购控制 -禁用特定存储库的自动更新(冻结版本)

替代方案

解决方案 设置 工具 私有仓库 文件建议 速率限制 最适合
YARMCP Docker 8个工具 ✓ PAT/SSH ✓ 是 无 任何AI客户端、私有仓库、团队
背景7 零设置 2个工具 仅付费 ✗ 否 每月1000次免费 库文档查找
GitHub MCP Docker/Cloud 51个工具 ✓ PAT/Outh ✗ 否 5000/小时 GitHub平台功能
git mcp 零设置 4个工具 ✗ 仅限公众 ✗ 否 GitHub API 快速公共回购文档
git mcp服务器 npm/bun 27个工具 ✓ JWT/OAuth ✗ 否 无 完整Git操作
本地克隆 手动 不适用 ✓ 手动 不适用 无 单个项目

快速开始

用于自托管:参见 example/README.md 获取完整的Docker Compose安装指南。

私有存储库:支持GitHub PAT(环境变量)或SSH密钥(挂载卷)。详情请参阅 example/README.md.

Docker镜像标签和版本控制

YARMCP使用 语义化版本. 对于生产,请固定到特定版本 (例如。, :1.0.0)为了稳定。用于测试 :edge.

图片可在以下网址获得:

  • 🐳 Docker Hub: sunnamed434/yarmcp-mcp (推荐,更易于使用)
  • 🐙 GitHub容器注册表 (GHCR): ghcr.io/sunnamed434/yarmcp-mcp (也可用)

看 发布页面 对于可用版本。

📦 Available Docker Tags (click to expand)

稳定发布(建议用于生产)

# Docker Hub (recommended, simpler syntax)
sunnamed434/yarmcp-mcp:1.0.0         # ✅ Specific version (recommended, immutable)
sunnamed434/yarmcp-mcp:1.0           # Latest patch in 1.0.x (auto-updates patches)
sunnamed434/yarmcp-mcp:1             # Latest minor in 1.x.x (auto-updates)
sunnamed434/yarmcp-mcp:latest        # Latest stable (not recommended for production)
sunnamed434/yarmcp-mcp:stable        # Alias for latest stable

# GitHub Container Registry (also available)
ghcr.io/sunnamed434/yarmcp-mcp:1.0.0      # Same images via GHCR

何时使用:

  • 生产:使用特定版本(:1.0.0)可预测的行为
  • 测试:使用 :latest 或 :1.0 在固定之前测试更新
  • 发展:使用 :edge 了解最新更改

预发布版本(测试)

sunnamed434/yarmcp-mcp:0.1.0-alpha.1   # Alpha releases (experimental)
sunnamed434/yarmcp-mcp:0.1.0-beta.1    # Beta releases (feature complete)
sunnamed434/yarmcp-mcp:0.1.0-rc.1      # Release candidates

何时使用:

  • 在稳定发布之前测试新功能
  • 帮助处理错误报告
  • 早期采用者

开发建设(不稳定)

sunnamed434/yarmcp-mcp:edge            # Latest commit from main branch
sunnamed434/yarmcp-mcp:dev             # Same as edge
sunnamed434/yarmcp-mcp:20260203-abc1234  # Specific dev build (date-SHA)

何时使用:

  • 促进发展
  • 测试未发布的功能
  • 报告主分支上的错误

⚠️ 警告: 开发版本可能包含破坏性更改或错误。不建议用于生产。

版本格式

  • 稳定版本: MAJOR.MINOR.PATCH (例如。, 1.2.3)
  • 发布版本: MAJOR.MINOR.PATCH-TYPE.NUMBER (例如。, 0.1.0-alpha.1)
  • 开发版本: YYYYMMDD-SHORTHASH (例如。, 20260203-a1b2c3d)

发展

本地开发

对于贡献者和本地测试,请使用Docker Compose:

cd example
docker compose up

看 example/README.md 有关完整的设置说明。

MCP工具

工具 说明
list_repos() 列出所有已配置的存储库及其状态
get_repo_info(repo) 获取仓库元数据+上次提交信息
read_file(repo, path) 阅读文件时,对错误提出明智的“你是认真的”建议
search_code(repo, pattern, ...) 使用上下文行和度量进行ripgrep代码搜索
list_files(repo, path?, pattern?) 列出带预览的目录内容(前3项)
tree(repo, path?, depth?, pattern?) 格式化目录树视图(1-5级)
get_readme(repo) 快速访问README(检查多种变体)
get_yarmcp_usage_guide() 带有使用模式的内置文档

建筑

┌─────────────┐     ┌─────────────┐
│  MCP Server │◄────│   Updater   │
│  (FastMCP)  │     │  (cron git) │
│  Port 9742  │     │             │
└──────┬──────┘     └──────┬──────┘
       │                   │
       ▼                   ▼
   /opt/yarmcp/repos (shared volume)
  • MCP服务器:OAuth 2.1+承载认证,只读仓库访问,提供MCP工具
  • 更新器:克隆新存储库,按计划提取更新(默认值:每6小时一次)