写给小白的 Claude Code 进阶指南:MCP 让效率翻倍

上一篇我们讲了 Skills,让 Claude 学会了各种”技能包”。但 Skills 有个局限:它只能处理本地的事情。
如果你想让 Claude 访问 GitHub 仓库、搜索网页、操作数据库、控制浏览器,怎么办?
这就是 MCP(Model Context Protocol,模型上下文协议)要解决的问题。
配置好 GitHub MCP 之后,我第一次测试是让它”列出我最近的 PR”。它真的列出来了。那一刻有点奇怪——我没有打开浏览器,没有复制粘贴,Claude 直接从 GitHub 拿到了数据。这种感觉和用 Copilot 补全代码完全不同,更像是给了 AI 一双手。
什么是 MCP?为什么它这么重要
MCP 是 Anthropic 在 2024 年推出的开放协议,专门用来连接 AI 和外部工具。
在 MCP 出现之前,每个工具都需要单独集成。你想让 AI 访问 GitHub,就得写一套 GitHub 的集成代码;想访问 Notion,又得写一套 Notion 的代码。每个工具的 API 不同、认证方式不同、数据格式不同,维护起来是个噩梦。
MCP 统一了这一切。
它就像一个”翻译器”,把各种工具的语言翻译成 Claude 能理解的标准格式。工具开发者只需要按照 MCP 协议写一个”服务器”,Claude 就能自动使用这个工具。
截至 2026 年 2 月,MCP 生态已经有超过 200 个社区服务器。GitHub 和 Brave Search 这两个服务器就占了社区安装量的 45%。在发布后的前 6 个月,就有超过 1 万名开发者采用了 MCP。
这个增长速度说明了什么?说明 MCP 解决了一个真实的痛点。
MCP 的三种连接方式
在配置 MCP 之前,你需要了解三种连接方式:
1. Stdio(标准输入输出)
最常用的方式,适合本地运行的服务器。Claude Code 通过命令行启动服务器,然后通过标准输入输出进行通信。
优点:简单、快速、适合开发测试
缺点:只能在本地运行
2. SSE(Server-Sent Events)
适合远程服务器,使用 HTTP 长连接。服务器可以主动推送消息给 Claude。
优点:支持远程、实时通信
缺点:配置稍复杂
3. HTTP Streamable
2026 年推荐的标准方式,基于 HTTP 的流式传输。
优点:标准化、支持远程、性能好
缺点:需要服务器支持
90% 的情况下,你会用 Stdio 方式连接本地服务器。
5 分钟快速上手:配置你的第一个 MCP 服务器
让我们从最实用的 GitHub MCP 服务器开始。
第一步:准备 GitHub Token
访问 GitHub Settings → Developer settings → Personal access tokens → Generate new token
需要的权限:
- repo(访问仓库)
- read:org(读取组织信息)
- read:user(读取用户信息)
生成后,复制这个 Token,我们马上要用。
第二步:添加 GitHub MCP 服务器
打开终端,运行:
1 | claude mcp add github -s user -- npx -y @modelcontextprotocol/server-github |
系统会提示你输入 GitHub Token,粘贴刚才复制的 Token。
命令解释:
claude mcp add:添加 MCP 服务器github:服务器名称(可以自定义)-s user:作用域为用户级别(所有项目可用)--:分隔符,后面是服务器启动命令npx -y @modelcontextprotocol/server-github:使用 npx 运行 GitHub MCP 服务器
第三步:验证连接
运行:
1 | claude mcp list |
你应该能看到 github 服务器,状态为 connected。
第四步:使用 GitHub MCP
启动 Claude Code:
1 | claude |
然后试试这些命令:
1 | 列出我的所有 GitHub 仓库 |
1 | 在 my-project 仓库创建一个 Issue,标题是"添加用户认证功能" |
1 | 查看 my-project 仓库最近的 5 个 PR |
Claude 会自动调用 GitHub MCP 服务器来完成这些操作。
就是这么简单。
常用 MCP 服务器推荐
1. Brave Search - 网页搜索
让 Claude 能够实时搜索网页,获取最新信息。
1 | claude mcp add brave-search -s user \ |
使用场景:
- “搜索 React 19 的新特性”
- “查找最新的 TypeScript 教程”
- “搜索这个错误信息的解决方案”
2. Playwright - 浏览器自动化
让 Claude 能够控制浏览器,进行网页操作。
1 | claude mcp add playwright -s user \ |
使用场景:
- “打开这个网站并截图”
- “填写这个表单并提交”
- “测试这个页面的登录流程”
3. PostgreSQL - 数据库访问
让 Claude 能够查询和操作数据库。
1 | claude mcp add postgres -s user \ |
使用场景:
- “查询上个月的销售总额”
- “找出最活跃的 10 个用户”
- “更新这个用户的邮箱地址”
4. Filesystem - 文件系统访问
让 Claude 能够访问指定目录的文件。
1 | claude mcp add filesystem -s user \ |
使用场景:
- “读取 Documents 目录下的所有 PDF”
- “在 Projects 目录创建一个新项目”
- “搜索包含特定关键词的文件”
5. Context7 - 实时文档查询
让 Claude 能够查询最新的技术文档。
1 | claude mcp add context7 -s user \ |
使用场景:
- “查询 Next.js 14 的最新 API”
- “React Router v6 的使用方法”
- “Tailwind CSS 的配置选项”
MCP 的三种作用域
配置 MCP 时,你需要选择作用域(scope):
local(本地):只在当前项目生效,不会被 Git 记录
1 | claude mcp add my-server -s local -- command |
project(项目):在当前项目生效,会被 Git 记录,团队共享
1 | claude mcp add my-server -s project -- command |
配置会保存在项目根目录的 .mcp.json 文件中。
user(用户):在所有项目中生效,只对你自己可用
1 | claude mcp add my-server -s user -- command |
配置会保存在 ~/.claude.json 文件中。
选择建议:
- 个人工具(GitHub Token、API Key)→ user
- 团队共享工具(项目数据库、共享服务)→ project
- 临时测试 → local
环境变量的正确管理方式
很多 MCP 服务器需要 API Key 或 Token。千万不要把这些敏感信息直接写在配置文件里。
错误做法:
1 | # 不要这样做!Token 会被记录在配置文件中 |
正确做法:
方式一:使用环境变量
1 | # 先设置环境变量 |
方式二:使用密钥管理器(推荐)
1 | # macOS Keychain |
方式三:在配置文件中使用变量引用
编辑 ~/.claude.json,使用 ${VAR} 语法:
1 | { |
然后在 shell 配置文件(~/.zshrc 或 ~/.bashrc)中设置:
1 | export GITHUB_TOKEN=ghp_xxxxx |
根据 2026 年的安全最佳实践,建议每 90 天轮换一次 Token。
常见问题排查
问题 1:MCP 服务器连接失败
症状:claude mcp list 显示服务器状态为 disconnected
排查步骤:
- 检查 Node.js 版本(需要 18+,推荐 22 LTS)
1 | node -v |
- 手动测试服务器启动
1 | npx -y @modelcontextprotocol/server-github |
如果手动能启动但 Claude Code 连接失败,问题在配置。
- 查看详细日志
1 | claude mcp logs github |
- 测试连接
1 | claude mcp test github |
问题 2:找不到 MCP 工具
症状:Claude 说”我没有访问 GitHub 的权限”
原因:作用域设置不对,或者在错误的目录下
解决:
- 确认服务器已添加
1 | claude mcp list |
检查作用域
- local 作用域:必须在项目目录下
- project 作用域:必须在项目目录下
- user 作用域:任何地方都可以
重启 Claude Code
问题 3:环境变量未生效
症状:服务器提示缺少 API Key
解决:
- 确认环境变量已设置
1 | echo $GITHUB_TOKEN |
重启终端,让环境变量生效
使用绝对路径引用环境变量
1 | --env GITHUB_TOKEN=$(echo $GITHUB_TOKEN) |
实战案例:自动化 GitHub 工作流
让我们用一个真实场景来展示 MCP 的威力。
场景:你收到一个 Bug 报告,需要创建 Issue、修复代码、提交 PR。
传统方式:
- 打开浏览器,登录 GitHub
- 创建 Issue
- 回到编辑器,修改代码
- 打开终端,提交代码
- 回到浏览器,创建 PR
- 填写 PR 描述
我自己测过这个流程,从收到 Bug 报告到 PR 创建完成,大概要 15 分钟,其中真正在”修代码”的时间不到 5 分钟,其余都是在切换窗口和填表单。
使用 MCP 的方式:
1 | 帮我处理这个 Bug:用户登录后页面空白 |
Claude 会自动:
- 调用 GitHub MCP 创建 Issue
- 读取相关代码文件
- 修改代码
- 执行 git 命令提交
- 调用 GitHub MCP 创建 PR
整个流程,你只需要一句话。
写在最后
MCP 把 Claude Code 从一个”本地助手”变成了”全能助手”。
但我用了一段时间之后,发现自己踩了一个认知盲区:我一开始以为 MCP 越多越好,装了七八个,结果 Claude 有时候会在不该调用的时候调用某个工具,反而添乱。
后来我删掉了几个不常用的,只保留 GitHub、Brave Search 和 PostgreSQL,反而更顺手。
安全这件事也是真实的教训。我有一次把 GitHub Token 的权限给得太宽,后来发现它在一次操作里顺手修改了一个我没打算动的仓库设置。从那之后我养成了一个习惯:每个 Token 只给最小权限,每 90 天轮换一次。
MCP 的威力越大,你对它的行为就越需要保持清醒。这不是在劝你不用,而是说:用之前想清楚你给了它什么权限,以及出了问题你能不能快速撤回。
我现在还在摸索的一个问题:有没有办法让 Claude 在调用 MCP 工具之前,先告诉我它打算做什么?类似计划模式,但针对 MCP 操作的。如果你有思路,欢迎告诉我。