跳转到内容

MCP 集成

高级

最近复核于 2026-07-10适用 Claude Code CLI v2.1

本教程属于学习路径: · 浏览全部路径

MCP(Model Context Protocol,模型上下文协议) 是 Anthropic 定义的一套开放协议,让 Claude Code 可以连接外部工具——数据库、浏览器、设计软件、文档系统等。它不是 Claude Code 独有的功能,任何支持 MCP 的 AI 工具都可以用同一套协议对接同样的外部服务。

MCP server(服务端):一个独立小程序,负责把 Claude 的工具调用翻译成外部服务能理解的操作(例如执行 SQL、控制浏览器)。你安装并配置它之后,Claude Code 才能调用它暴露的工具。

这篇文章不是教你“必须学 MCP”。恰恰相反——读完你会知道大部分人不应该装 MCP,以及如果你需要它,该怎么安全地使用。

安全与权限警告(先读):

  • 每个 MCP server 都会扩大 Claude 能触达的数据与可执行操作
  • 只安装你信任的发布者提供的 server;核对包名、文档与权限范围
  • 首次调用前阅读权限提示;在不含敏感数据的测试项目里验证
  • 凭证用环境变量注入,不要写进可提交的配置文件;不要把含真实 token 的 settings 推上 Git
  • 不用时禁用或移除 server,缩小攻击面与上下文占用

MCP 像 USB-C 接口。

无论什么设备——鼠标、键盘、硬盘、显示器——只要支持 USB-C,插上就能用。你不用关心设备内部的芯片和电路,USB-C 帮你处理了所有通信细节。

MCP 是 AI 世界的 USB-C。无论什么外部服务——数据库(Supabase)、浏览器(Chrome)、设计工具(Figma)、技术文档(Context7)——只要支持 MCP 协议,Claude Code 就能连接使用。

没有 MCP 时:每种工具需要单独开发插件,开发者要学每个工具不同的对接方式。有了 MCP:任何支持 MCP 的工具,用一种统一的方式就能接入。

  • 你已经用 Claude Code 完成过日常工作(参考快速上手
  • 你理解 CLAUDE.md、Skill、Hook 的基本概念(参考核心配置Skill 体系
  • 重要心态:MCP 是可选的高级功能,不是必修课

先读这一段。 MCP 不是 Claude Code 用户必须学的内容。绝大多数用户完全不需要碰它。

你需要 MCP 的场景:

  • 让 Claude Code 直接操作数据库——比如执行 SQL 查询、创建表、部署数据库函数
  • 让 Claude Code 控制浏览器做自动化测试——比如打开网页、截图、检查页面元素
  • 让 Claude Code 读写设计文件——比如从 Figma 拿设计稿、把代码同步到 Figma
  • 让 Claude Code 查最新技术文档——比如查 React 某个 API 的最新用法,而不是依赖训练数据里的旧知识

你不需要 MCP 的场景:

  • 你只是让 Claude 写代码、改 bug、学编程
  • 你不需要让 Claude 直接操作外部服务
  • 你的工作流程用 CLAUDE.md + Skill + Hook 已经完全覆盖
  • 你不会同时做前端、后端、数据库、设计——大多数人只专注 1-2 个领域

判断方法很简单:你现在的日常工作中,有没有哪一步需要你切到浏览器去操作数据库后台、切到 Figma 看设计稿、或者打开 Chrome DevTools 手动调试?如果有,且你希望 Claude 替你完成这些——这时候才考虑 MCP。如果没有,跳过这篇,你不需要它。

关键警告:MCP 会增加上下文和权限面

Section titled “关键警告:MCP 会增加上下文和权限面”

MCP server 会向 Claude Code 暴露工具定义和外部能力。它可能增加上下文占用,也扩大能访问的数据与可执行操作;实际成本取决于 server 暴露的工具数量、Claude Code 的工具搜索行为和当前会话配置。

类比:MCP server 像在办公桌上放参考书。你放了一本数据库手册、一本浏览器调试指南、一本 Figma 组件文档、一本 API 参考手册——它们确实有用,随时可以翻。但你有没有发现,书太多的时候,桌上留给你真正写东西的空间就少了?

上下文是什么?它是 Claude 在你每次对话中能“记住”的总信息量。用完了,Claude 就会“忘记”对话开头的内容。上下文不够的后果:

  • Claude 忘记你之前告诉它的事情
  • 对话中途需要“压缩”,丢失部分上下文
  • 处理大型代码文件时更容易出错
  • 长任务可能中途“断片”

简单建议:

  • 初学者:先不用 MCP,确认基础文件和终端工具确实无法完成需求再添加
  • 其他用户:一次只添加一个明确需要的 server,检查发布者、权限范围和 /context,不用时禁用或移除

整个过程分四步,跟安装打印机驱动类似:

1. 安装 MCP server

MCP server 是一个独立的小程序,比如 Supabase 的 MCP server 就是用 npm 安装的。本质上它就是一个“翻译官”——把 Claude Code 的请求翻译成 Supabase 能理解的数据库操作,再把结果翻译回 Claude Code 能理解的格式。

2. 在 settings.json 里配置

你需要告诉 Claude Code 这个 server 在哪、怎么启动。配置写在 .claude/settings.json~/.claude/settings.json 里:

{
"mcpServers": {
"server-name": {
"command": "npx",
"args": ["-y", "@some-scope/mcp-server-name"]
}
}
}

3. Claude Code 启动时自动连接

你启动 claude 时,它会自动读取 settings.json,启动你配置的 MCP server,建立连接。这个过程是自动的——你不需要手动做什么。

4. 对话中调用 MCP 工具

连接建立后,Claude Code 在对话中就能调用 server 提供的工具。比如数据库 MCP server 注册了一个 execute_sql 工具,你就可以直接说“查一下 users 表里所有本周注册的用户”——Claude 会自动调用 MCP 工具去执行这条 SQL。

整个过程对你是透明的:你说人话,Claude 决定什么时候该调用哪个 MCP 工具,MCP server 去执行实际操作,结果返回给你。

下面只是能力分类示例,不代表这些 server 已被本站逐一安装或安全审计,也不是推荐清单:

MCP Server 用途 典型场景
Chrome DevTools 调试网页、跑 Lighthouse 审计、分析性能 开发前端页面时直接在浏览器里检查效果
Figma 读取设计稿、生成设计、代码同步到设计 做 UI 时不用在 Figma 和编辑器之间来回切
Supabase 管理数据库、执行 SQL、部署 Edge Function 后端开发时直接在对话里查数据、改表结构
Playwright 浏览器自动化测试 写前端测试时让 Claude 操作浏览器验证功能
Context7 查最新技术文档 用库的 API 时直接查官方文档而不是凭记忆

是否需要某个 server,只由当前任务能否从它获得不可替代的外部能力决定,不由数量或“工具齐全”决定。

安装你的第一个 MCP server(最小示例)

Section titled “安装你的第一个 MCP server(最小示例)”

下面用占位 server 演示官方 CLI 形态。把发布者文档给出的命令填入 <name><command>;不要直接复制未知包名:

Terminal window
# 1. 安装 MCP server
claude mcp add <name> -- <command> [args...]
# 2. 查看已安装的 MCP server
claude mcp list

第一条命令注册本地 stdio server;是否下载程序取决于你填写的 <command>。第二条命令列出当前已注册的 server。

注册后运行 claude mcp list 检查状态,再在一个不含敏感数据的测试项目中验证。首次调用前阅读权限提示,确认 server 只获得完成任务所需的最小权限。

如果想删掉它:

Terminal window
claude mcp remove <name>

坑 1:装太多 MCP server 导致上下文不够用

新手容易觉得“这个看起来有用,那个也可能用得上”,一口气注册多个 server。结果是工具选择更复杂、权限面更大,也可能增加上下文占用。

失败恢复:从 0 开始,只添加当前任务确实需要的一个;用 /context 和实际任务结果观察影响,不使用网上流传的固定百分比估算。暂时不用的用 claude mcp remove <name> 或按发布者文档禁用。

坑 2:MCP server 启动失败但不报明显错误

症状:对话中 Claude 没有使用你预期的 MCP 工具。原因通常是 server 配置写错了——比如路径不对、命令不存在。

失败恢复:看 settings.json 里 MCP server 的命令你能不能在终端里单独跑起来。如果 npx -y @some-scope/server 在终端里报错,那 MCP 自然也启动不了。修好命令后再 claude mcp list 确认状态。

坑 3:把 MCP 当必修课

社区里有很多“我的 MCP 全家桶”分享,看起来很强。但 MCP 是工具,不是成就。它解决的是“需要让 Claude 操作外部服务”这个特定问题。如果你没有这个需求,装 MCP 不会让你的 Claude Code 用得更快——只会更慢(上下文被吃掉)。

失败恢复:删掉用不上的 server,回到 CLAUDE.md + Skill + Hook 的主路径。绝大多数 Claude Code 用户不需要 MCP。你不是例外,除非你搞清楚了为什么是。

坑 4:权限过大或凭证进仓库

症状:server 能读写远超当前任务所需的数据,或 settings.json 里出现明文 token。

失败恢复:立刻轮换已暴露的凭证;从 Git 历史排查泄漏;改用环境变量 + 模板(见配置即代码);缩小 server 权限到最小必要集。

一次坐下来约 10 分钟——目标是验证“会不会装/卸”,不是装全家桶

  1. 打开发布者文档,选一个你当前任务真正需要的 server(没有需求就跳过本页,勾选 Checkpoint 里“我确认自己暂时不需要 MCP”)
  2. 在测试目录执行(把占位符换成文档给出的真实值):
Terminal window
claude mcp add <name> -- <command> [args...]
claude mcp list
  1. 开一个不含敏感数据的测试项目,触发一次该 server 的最小能力(例如只读查询)
  2. /context 看占用变化;验证完后:
Terminal window
claude mcp remove <name>

成功标准: list 能看到注册;最小调用符合预期且权限可接受;remove 后列表中消失。若启动失败,按坑 2 排查,不要在生产数据上重试。

  • □ 我能用一句话说清 MCP 是什么,以及 MCP server 扮演什么角色
  • □ 我能判断自己当前是否真的需要 MCP(多数情况:不需要)
  • □ 我知道 MCP 会扩大权限面并可能增加上下文占用,会用 /context 观察
  • □ 我完成了上面的「最小可验证动作」,或明确勾选:暂时不需要 MCP,已跳过安装
  • □ 我知道:只信可验证发布者、最小权限、凭证不进 Git、不用就移除

你已经进入了高级话题区域。MCP 是 Claude Code 的“外接设备接口”——需要时再来学,不需要时跳过。

  • 回到日常节奏巩固基础工作流——这才是每天都会用的东西
  • 看看上下文管理了解如何更有效地利用上下文空间
  • 成本视角 → 成本与计费
  • 如果确实需要外部服务,从发布者可验证、权限最小的一个 server 开始,并先在测试项目验证
  • 需要并行委派时 → 子 Agent 协作