sftgroup

Git MCP — 代码管理服务

Community sftgroup
Updated

Git MCP Server

Git MCP — 代码管理服务

Skill(工作流规范)+ MCP(增量存储 + GitHub 同步)双层架构

这是什么

所有 OpenClaw agent 和测试服务器的代码统一管理入口:

  • Skill — 教 agent 什么时候该 push、pull、sync,怎么写 commit message
  • git-mcp — 增量存储所有代码变更,需要时再推 GitHub,绝不覆盖

核心设计

agent push 代码 → git-mcp 本地增量存储(永不覆盖) ──→ git_sync → GitHub
测试服务器代码  → repo_sync(rsync) → git-mcp 本地    → 算 SHA → code-review

三个关键点:

  1. 增量不覆盖 — 每次 push 是一个独立的 commit,MCP 本地有完整历史
  2. GitHub 推送是单独操作 — git_sync 你决定什么时候推,不会意外覆盖
  3. SHA 溯源 — 代码审查报告标 snapshot_sha,机械审计、人工审核、安全检查看同一版代码

文件结构

skills/git-operations/
└── SKILL.md                        # Skill 主文档

mcp/git-mcp/
├── src/
│   ├── server.ts                   # Express HTTP 服务器
│   ├── config.ts                   # 配置管理
│   ├── db.ts                       # SQLite 数据库(仓库/版本/审计/同步状态)
│   └── tools/
│       └── gitOps.ts               # 全部 18 个工具实现(单文件)
├── package.json
├── tsconfig.json
└── git-mcp.service                 # systemd 配置

工具清单(18 个)

仓库管理

工具 说明
repo_register 注册代码库(名称、GitHub URL、描述)
repo_list 搜索/列出所有仓库
repo_info 仓库详情 + 最新版本 + 未同步 commits 数
git_create_repo 在 GitHub 上创建新仓库 + 自动注册

日常开发

场景 流程
改代码并推送 git_pull → git_status → repo_check → git_push → git_sync
查看状态 git_status(分支、改动文件、未同步数量)
切换分支 git_checkout(有未提交改动时拒绝)
提交历史 git_log

版本发布

工具 说明
git_create_tag 创建版本标签(如 v1.2.0)
git_tags 列出所有版本标签
git_sync 推送本地 commits 到 GitHub(可选同步打 tag)

审计追踪

工具 说明
git_audit 谁什么时候 push/pull/clone/checkout 了什么
git_sync_status 哪些仓库有未推送到 GitHub 的 commits

测试服务器代码同步

工具 说明
repo_sync rsync 从测试服务器拉代码到 MCP(排除 node_modules/.git/venv),返回 SHA
repo_snapshot 获取当前代码 SHA,不重新同步(供 code-review 溯源用)

代码质量门禁

工具 说明
repo_check build + lint + guardFiles + 合约 program_id 验证,push 前强制执行

部署

cd mcp/git-mcp
pnpm install && pnpm build

# 数据库自动创建在 ~/.git-mcp/data.db
# 仓库代码存储在 ~/repos/ (或配置的 repoBasePath)

# GitHub token(推送需要)
export GIT_TOKEN=ghp_xxxxxxxxxxxx

mkdir -p ~/.git-mcp
cat > ~/.git-mcp/config.json << 'EOF'
{
  "port": 3082, "host": "127.0.0.1",
  "repoBasePath": "/home/ubuntu/repos",
  "dbPath": "/home/ubuntu/.git-mcp/data.db",
  "githubOrg": "sftgroup"
}
EOF

sudo cp git-mcp.service /etc/systemd/system/
sudo systemctl enable --now git-mcp
curl http://127.0.0.1:3080/health

前置要求: Node.js 22+、pnpm、Git、SSH 密钥(repo_sync 需要免密登录测试服务器)

Skill 安装

openclaw skills install git:sftgroup/agent@master#skills/git-operations --as git-operations

数据库

SQLite 单文件,3 张表:

表 字段
repositories name, github_url, local_path, default_branch, guard_config
versions repo_id, tag, commit_sha, created_at
audit_log repo_id, action, branch, commit_sha, message, status
sync_log repo_id, commit_sha, status(pending/synced), synced_at

与 code-review-mcp 协作

1. repo_sync("team3", "43.156.50.6", "/path") → sha: abc123
2. code-review-mcp review_all("/opt/mcp/repos/team3", "all")
3. 报告标注 snapshot_sha: abc123

MCP Server · Populars

MCP Server · New

    xerj-org

    XERJ

    AI search engine and MCP server for bots and agents. One Rust binary indexes code, docs, logs, JSONL/CSV and PDFs for BM25 full-text, vector and hybrid search, code search without grep, agent memory and RAG. Elasticsearch-compatible API; Corpus Hub serves hundreds of reference memory corpora.

    Community xerj-org
    storytold

    FilmCraft

    FilmCraft: An open-source, nonlinear video editor written by scratch in pure Rust

    Community storytold
    feder-cr

    AIHawk

    Open-source, self-hosted alternative to OpenAI Dots, Grok Bot. Built to be undetectable by anti-bot systems.

    Community feder-cr
    danielgallen

    Burp Suite MCP Server Extension

    MCP Server for Burp

    Community danielgallen
    SchmidtDSE

    MCP Data Server

    Duckdb-based MCP server for datasets

    Community SchmidtDSE