ORANGE BOOK · MCP

第十章:开发者效率——Git、GitHub、数据库


一、开发者用 MCP 的三层境界

层级 你做什么 AI 做什么
1 级 让 AI 看代码 解释、找 Bug、写文档
2 级 让 AI 改代码 写补丁、跑测试、提 PR
3 级 让 AI 跑工作流 监控线上 → 定位代码 → 改 → 测 → 发 → 通知

MCP 出现之前,绝大多数人卡在 1 级。 MCP 之后,3 级触手可及。


二、GitHub MCP:让 AI 当你的 GitHub 助理

1. 装

GitHub 官方 MCP 服务器(远程版,2025 年下半年发布):

"github": {
  "type": "http",
  "url": "https://api.githubcopilot.com/mcp/"
}

或者本地 stdio 版本:

"github": {
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-github"],
  "env": {
    "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
  }
}

申请 token:GitHub → Settings → Developer settings → Personal access tokens → Generate new token (classic 或 fine-grained 都行)。 最小权限建议:reporead:userworkflow(如果要操作 Actions)。

2. 能做什么

  • 看 / 创建 / 关闭 Issue;
  • 看 / 创建 / 评论 Pull Request;
  • 搜索代码 / 搜索 Issue / 搜索仓库;
  • 创建分支、提交文件、合并 PR;
  • 看 / 触发 GitHub Actions;
  • 看用户、组织、贡献统计。

3. 神级提示词

写 PR

在 cassius/myrepo 仓库,基于 main 创建分支 feature/login-fix, 把 src/login.ts 第 42 行的 null check 改成 optional chaining, commit message 写"fix(login): handle undefined user", 然后开一个 PR,标题"修复登录页面 null 异常",body 用我们的 PR 模板。

Issue 巡检

列出我所有还 open 的 Issue,按"上次更新时间"排序, 把超过 30 天没动的标 stale,并礼貌地回复一句"这个还需要继续跟进吗?"。

Release Note

用 GitHub MCP 拉出 cassius/myrepo 从 v1.2.0 到 v1.3.0 的所有 PR, 按 feature / fix / chore 分类,写一份 markdown 格式的 release note, 最后保存到本地 CHANGELOG.md 顶部。


三、Git MCP:本地仓库的"自动化助手"

1. 装

"git": {
  "command": "uvx",
  "args": ["mcp-server-git", "--repository", "/Users/you/projects/myrepo"]
}

如果你有多个仓库,可以同时配多个:

"git-myproj": { "command": "uvx", "args": ["mcp-server-git", "--repository", "/path/A"] },
"git-other":  { "command": "uvx", "args": ["mcp-server-git", "--repository", "/path/B"] }

2. 能做什么

  • git status / git diff
  • git log 历史查询;
  • git add + git commit
  • git branch 创建 / 切换;
  • git show 看具体 commit。

Git MCP 默认不能 push —— 这是个安全设计。 要 push 仍然要你手动来,避免 AI 误推。

3. 高频提示词

  • 「看一下我有哪些未提交的改动?」
  • 「按功能分组帮我 commit,每组一个清晰的中文 commit message。」
  • 「看看上一次 commit 都改了什么。」
  • 「这个仓库最近 1 个月谁的提交最多?」

四、数据库 MCP:自然语言操作数据

1. PostgreSQL MCP

"postgres": {
  "command": "npx",
  "args": [
    "-y",
    "@modelcontextprotocol/server-postgres",
    "postgresql://user:password@localhost:5432/mydb"
  ]
}

2. SQLite MCP

"sqlite": {
  "command": "uvx",
  "args": ["mcp-server-sqlite", "--db-path", "/Users/you/data/app.db"]
}

3. MySQL / 其他

社区有大量第三方版本,比如:

"mysql": {
  "command": "npx",
  "args": ["-y", "mcp-server-mysql"],
  "env": { "DATABASE_URL": "mysql://user:pwd@localhost/db" }
}

生产数据库慎接! 强烈建议先在只读副本 / 本地 dump 上玩。 给 MCP 用的账号最好只有 SELECT 权限。

4. 神级提示词

探索表结构

这个数据库里有哪些表?分别是干什么的?挑两个最重要的给我画一个简单的 ER 图。

复杂查询

帮我查最近 30 天每天的下单数、付款转化率, 按周聚合后画成一张折线图(用 mermaid xy chart), 找出转化率最低的那一天,分析可能原因。

数据清洗

customers 表里 email 字段为空、或不符合 RFC5322 格式的行 筛出来导出到 ~/mcp-sandbox/dirty-customers.csv

数据库 Code Review

这是我新写的 SQL:SELECT * FROM orders WHERE ... 用真实表结构 review 一下:是否会全表扫描?索引够不够?有没有更好的写法?


五、IDE 全流程:5 个 MCP 让你提速 20 倍

让我们组合 5 个 MCP,演示一个真实开发场景:

场景:线上报错 → 定位代码 → 修复 → 测试 → 提 PR → 通知。

配置(在 Cursor 里)

filesystem  → 项目根目录
git         → 当前仓库
github      → 远端仓库
sentry      → 线上监控(社区有 sentry MCP)
slack       → 通知频道

输入

Sentry 上 id=ABC-1234 的错误今天爆了 200 次,看一下原因,修一下,跑测试,提 PR,并通知 #oncall 频道。

AI 自动执行

flowchart LR
    classDef step fill:transparent,stroke-width:2px;

    A[1 sentry MCP<br/>拉错误堆栈]:::step
    B[2 filesystem<br/>定位文件]:::step
    C[3 写补丁<br/>本地保存]:::step
    D[4 git MCP<br/>建分支+commit]:::step
    E[5 跑测试<br/>shell命令]:::step
    F[6 github MCP<br/>开PR]:::step
    G[7 slack MCP<br/>发通知]:::step

    A --> B --> C --> D --> E --> F --> G

实际耗时:3–5 分钟。 你只要 review 一下 PR 内容,点 Merge。

真实案例:某全栈团队在用户管理模块上, 这套流程把"从需求到提 PR"的时间从 2-3 天缩到 20 分钟(约 20 倍提速)。


六、写代码以外,开发者还能用 MCP 干啥

1. 文档与博客

  • Notion / Obsidian MCP:把 PR 的关键信息自动写入项目 Wiki;
  • Fetch + Brave Search:调研技术方案、写技术博客的"研究助理"。

2. CI/CD 与运维

  • GitHub Actions MCP:触发 workflow、看 run 日志、重跑失败 step;
  • Docker / Kubernetes MCP(社区版):拉镜像、看 Pod 状态、滚动更新。

3. 数据 & 分析

  • DuckDB MCP:本地大文件 SQL 查询;
  • CSV / Excel MCP:自然语言操作表格。

4. 测试

  • Playwright MCP:写、跑端到端测试;
  • Vitest / Jest 集成:通过 filesystem + shell MCP 跑单元测试,AI 看结果再迭代。

七、给 Cursor 用户的"开发者最爱配置"

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "${workspaceFolder}"]
    },
    "git": {
      "command": "uvx",
      "args": ["mcp-server-git", "--repository", "${workspaceFolder}"]
    },
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    },
    "playwright": {
      "command": "npx",
      "args": ["-y", "@playwright/mcp@latest"]
    },
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://localhost/myapp_dev"
      ]
    }
  }
}

Cursor 里 ${workspaceFolder} 会自动展开成当前打开的项目根目录, 这样每个项目都能用同一份配置,自动适配。


八、安全提醒

开发者用 MCP 比办公族要更小心,因为权限越大越容易出事:

  1. GitHub Token 不要给 admin 权限;只给 repo / workflow 即可;
  2. 数据库账号给只读副本;千万别给生产库 root;
  3. shell 类 MCP 慎装——它能跑任意命令,是双刃剑;
  4. PR 自动合并要谨慎——AI 提 PR 没问题,Merge 让人来按
  5. 公司项目走公司账号个人项目走个人账号——别混!

九、本章小结

  1. GitHub MCP / Git MCP 是开发者的"代码助手三件套"之首;
  2. 数据库 MCP 让你用中文查 SQL,从此告别"复制 csv 给 ChatGPT";
  3. 5 个 MCP 组合(filesystem + git + github + sentry + slack)能把"修线上 Bug"从几小时缩到几分钟;
  4. Cursor 里用 ${workspaceFolder} 让配置在项目间自动适配;
  5. 开发者权限大,Token 范围、数据库权限、PR 合并三处必须保守。

十、动手任务(90 分钟)

按顺序完成:

  1. 30 分钟:在 Cursor 里装 GitHub MCP + Git MCP,跑一次"看仓库最近 7 天提交";
  2. 30 分钟:装一个本地 SQLite MCP,让 AI 帮你做一份"数据探索报告";
  3. 30 分钟:模拟一次"提 PR"流程——让 AI 改一行代码 → commit → 提 PR,整个流程不要碰键盘超过 10 次。

下一章,我们去知识管理领域——Notion / Obsidian / 网页抓取。