
1. 从“动嘴”到“发 PR”Claude MCP 到底解决了什么Claude 搭配 MCP 打通本地开发环境与 GitHub 的自动化链路简单说就是你在对话框里描述需求Claude 生成代码、写入本地文件、创建分支、提交 commit、推送远端、开 PR甚至触发 CI。适合谁适合已经用 Claude 写代码、但每次还要手动复制粘贴到编辑器、再手动 git push 的开发者。核心检索词就是 Claude MCP GitHub 自动化发 PR。过去的流程有多割裂我在 Claude 里聊出一个函数复制到 VS Code保存切终端git add、git commit、git push再去 GitHub 网页点 New Pull Request。一套下来五分钟没了而且容易漏文件。MCP 的价值在于把这些动作变成 Claude 可以调用的工具模型不再只是“说”而是能“做”。MCP 全称 Model Context Protocol是一套客户端-服务器架构的通信协议。客户端是 Claude Desktop 或支持 MCP 的 IDE服务器是暴露具体能力的适配器。GitHub 官方维护了一个github-mcp-server把仓库、Issue、PR、分支等操作封装成工具。Claude 通过 JSON-RPC 2.0 调用这些工具就能在对话中完成真实操作。这里有个关键点MCP 服务器运行在你自己的机器上GitHub Token 也只存在本地配置里不需要把密钥交给模型提供商。安全边界清晰这也是它比“让模型直接拿 token 调 API”更靠谱的地方。整条链路可以拆成四段对话生成代码 → 本地文件写入 → Git 操作 → GitHub API 调用。每一段都由 MCP 工具承接Claude 负责编排。你要做的是把服务器配好、Token 权限给对、然后验证一次端到端动作。下面我会按“前置准备 → 可复制配置 → 验证请求 → 排错 → 长期使用”的顺序展开。配置部分给的是可直接粘贴的 JSONToken 权限给的是最小可用集合验证动作是一个完整的“改文件→开 PR”流程。跟着做你能复现 AI 自主发 PR。2. 前置准备TaoToken 接入与 GitHub Token 权限设置先说模型侧。Claude 的 MCP 能力需要模型端点支持工具调用。如果你用的是官方 Claude Desktop登录即可如果你在 Coding Agent 或自建客户端里跑需要一个稳定的 API 入口。我用 TaoToken 做统一接入Base URL 填https://taotoken.net/apiKey 在控制台生成模型 ID 选claude-3-5-sonnet-20241022这类支持 tool use 的版本。三件套齐了MCP 的工具调用才能被正确解析。TaoToken 在这里的角色是提供兼容 Anthropic 协议的模型端点让 Claude 的工具调用请求能正常发出和返回。控制台地址是https://taotoken.net/consoleAPI Key 在https://taotoken.net/api-keys生成。生成后先别关页面Key 只显示一次。然后是 GitHub Token。打开 GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token。权限按最小可用给权限项级别用途ContentsRead and write读写文件、创建分支、提交Pull requestsRead and write创建 PR、评论IssuesRead and write创建/更新 IssueMetadataRead-only必选基础信息WorkflowsRead and write触发/查看 CI可选Repository access 选“Only select repositories”只勾你要自动化的仓库。这样即使 Token 泄露影响面也可控。生成后复制github_pat_开头的字符串存到本地环境变量或直接写进 MCP 配置。本地还需要 Node.js v18 以上。验证命令node -v # 期望输出 v18.x 或更高如果版本不够用 nvm 装一个nvm install 18 nvm use 18Git 也要确认可用git --version # 期望输出 git version 2.x这两步过了环境就齐了。接下来进入配置环节。3. 可复制配置claude_desktop_config.json 与 github-mcp-serverClaude Desktop 的 MCP 配置入口是claude_desktop_config.json。macOS 路径~/Library/Application Support/Claude/claude_desktop_config.jsonWindows 路径%APPDATA%\Claude\claude_desktop_config.json如果文件不存在手动创建。下面是一份可直接粘贴的配置包含 GitHub MCP 服务器和文件系统服务器{ mcpServers: { github: { command: npx, args: [ -y, modelcontextprotocol/server-github ], env: { GITHUB_PERSONAL_ACCESS_TOKEN: github_pat_你的Token } }, filesystem: { command: npx, args: [ -y, modelcontextprotocol/server-filesystem, /Users/你的用户名/projects ] } } }把github_pat_你的Token换成上一步生成的 Token把/Users/你的用户名/projects换成你实际的项目目录。Windows 用户路径写成C:\\Users\\你的用户名\\projects注意双反斜杠转义。如果你用的是支持 MCP 的 Coding Agent 客户端配置结构类似但字段名可能是mcp.servers。以 Cline 为例配置写在cline_mcp_settings.json{ mcpServers: { github: { command: npx, args: [-y, modelcontextprotocol/server-github], env: { GITHUB_PERSONAL_ACCESS_TOKEN: github_pat_你的Token }, disabled: false, autoApprove: [create_or_update_file, create_pull_request] } } }autoApprove里列出的工具会跳过每次确认适合高频操作。但建议初期先留空观察 Claude 调用了哪些工具确认无误后再放开。保存文件后完全退出 Claude Desktop不是关窗口是退出进程再重新打开。重启后对话框右下角会出现一个工具图标点开能看到github和filesystem两个服务器以及它们暴露的工具列表。看到这个说明配置生效了。如果图标没出现先检查 JSON 是否合法。用这个命令验证python3 -m json.tool ~/Library/Application\ Support/Claude/claude_desktop_config.json输出格式化后的 JSON 就说明语法没问题。报错的话多半是多了逗号或少了引号。4. 端到端验证让 Claude 改文件、开分支、发 PR配置生效后来跑一次完整链路。目标让 Claude 在本地仓库改一个文件创建分支提交推送开 PR。先准备一个测试仓库。在本地建一个mkdir -p ~/projects/mcp-demo cd ~/projects/mcp-demo git init echo # MCP Demo README.md git add README.md git commit -m init git remote add origin https://github.com/你的用户名/mcp-demo.git git push -u origin main然后在 Claude 对话框里输入在 ~/projects/mcp-demo 仓库里把 README.md 的内容改成包含一行 Powered by Claude MCP 然后创建一个名为 feat/mcp-readme 的分支提交这个改动推送到 origin 最后向 main 分支开一个 PR标题是 docs: update readme via MCP。Claude 会依次调用工具。你会看到它先调read_file读 README再调write_file写入新内容然后调create_branch、push_files、create_pull_request。每一步在对话框里都有工具调用卡片点开能看到参数和返回。成功的话最后一条返回里会有 PR 的 URL形如https://github.com/你的用户名/mcp-demo/pull/1打开这个链接能看到 PR 已创建改动就是 README 里多了一行。CI 如果配了 GitHub Actions也会自动触发。这一步验证了四件事文件系统 MCP 能读写本地文件GitHub MCP 能操作远端仓库Token 权限够用Claude 能正确编排多个工具。四件都过链路就通了。如果中途卡住Claude 会告诉你哪个工具报错。常见的是权限不足或路径不对下一节展开。5. 常见报错排查401、local proxy failed、reading choices、OAuth401 UnauthorizedGitHub Token 无效或过期。检查claude_desktop_config.json里的 Token 是否完整复制有没有多余空格。Fine-grained token 还要确认勾了对应仓库的 Contents 和 Pull requests 权限。改完配置记得重启 Claude Desktop。local proxy failed / connection refusedMCP 服务器没起来。多半是npx拉包失败。手动跑一次看报错npx -y modelcontextprotocol/server-github如果卡在下载检查 npm 源。国内环境可以临时切npm config set registry https://registry.npmmirror.com拉包成功后再重启 Claude。reading choices / tool_use 解析失败模型端点不支持 tool use或者返回格式不对。确认你用的模型 ID 是claude-3-5-sonnet-20241022或更新的支持工具调用的版本。如果你通过 TaoToken 接入Base URL 必须是https://taotoken.net/api不要多加路径。模型 ID 写错会导致返回里没有tool_use块客户端就报 reading choices 错误。OAuth / authentication failedGitHub MCP 服务器默认走 Token 认证不走 OAuth。如果你看到 OAuth 相关报错说明配置里 Token 没被读到。检查env字段的 key 是否拼写正确必须是GITHUB_PERSONAL_ACCESS_TOKEN。另外Claude Desktop 的配置文件里不要写注释JSON 不支持注释会导致整个文件解析失败。PR 创建成功但 CI 没触发Token 缺少 Workflows 权限。Fine-grained token 里补上 Workflows 的 Read and write重新生成 Token 并更新配置。文件写入了但 git 没提交filesystem MCP 只负责读写文件不负责 git 操作。提交和推送是 GitHub MCP 的push_files工具做的。如果你只配了 filesystem 没配 githubClaude 就只能改本地文件推不上去。排查时有个通用技巧在 Claude 里直接问“刚才哪个工具调用失败了返回了什么”。它会复述工具返回的错误信息比翻日志快。6. 长期使用建议与 CTA跑通一次之后可以把常用操作固化成提示词模板。比如“每周一检查 open PR把超过三天的 PR 列出来并 我”或者“把 Issue #12 的描述实现掉开一个 PR 关联这个 Issue”。Claude 会自己组合list_pull_requests、get_issue、create_pull_request等工具。autoApprove可以逐步放开。先放开只读工具如list_*、get_*观察一段时间没问题再放开create_or_update_file和create_pull_request。写操作建议保留人工确认尤其是涉及 main 分支的。Token 轮换也要养成习惯。Fine-grained token 可以设过期时间到期前重新生成并更新配置。不要把 Token 提交到仓库配置文件的路径在用户目录下本身不会被 git 跟踪但如果你把配置复制到项目里记得加.gitignore。如果你还没接入模型端点可以在https://taotoken.net/api-keys生成 KeyBase URL 用https://taotoken.net/api模型选 Claude 3.5 Sonnet。想先试试对话效果可以走https://taotoken.net/models的模型对话入口。长期跑编码 Agent 的话Coding Plan 更适合高频调用地址是https://taotoken.net/coding-plan。接入文档在https://taotoken.net/doc配置细节都在里面。最后一步把claude_desktop_config.json里的autoApprove加上create_pull_request然后在对话框输入“把 README 里的 MCP Demo 改成 MCP in Production开 PR。” 看到 PR 链接返回这条链路就真正属于你了。