前面几篇文章里,我们已经聊过 CLAUDE.md、Slash Commands、Checkpoint & Rewind、Subagents 和 Skills。

如果说 Skills 是在教 Claude 一套工作方法,那么 MCP 做的事情,就是给 Claude 一张门禁卡。为什么这么说?你可以把 Claude Code 想象成一位刚入职的聪明同事,它会读代码、会写代码,也会帮你分析问题。但是它刚来公司的第一天,还没有各种系统的权限。

产品需求放在 Linear 里他看不到;代码问题记录在 GitHub 里他看不到;业务数据放在数据库里,他还是看不到;最新的技术文档在网上,他也不一定知道。

所以,我们只能先打开这些系统,把内容复制出来,再粘贴给 Claude。 MCP 解决的,就是这个问题。它可以把 Claude Code 和这些外部工具连接起来,让 Claude 自己去读取信息,甚至完成一些操作。

MCP 到底是什么?

MCP 的全称是 Model Context Protocol,中文一般翻译为模型上下文协议。这个名字听起来比较复杂,但普通使用者不需要研究里面的技术原理。我们只需要记住一句话:MCP 是 Claude Code 连接外部工具和数据的一种通用方式。

可以把它理解成一个万能转接头。以前不同系统使用不同的连接方式,连接 GitHub,需要开发一套接口;连接数据库,又需要开发另一套接口;连接 Linear,还要重新开发一次。有了 MCP 以后,这些工具可以按照同一套标准接入Claude Code。它们之间的关系大概是这样:

CODE
Claude Code
    ↓
MCP
    ↓
Linear、GitHub、数据库、技术文档等外部系统

实际使用时,中间通常还会出现一个叫做 MCP Server 的东西。

Server 听起来像一台服务器,其实不一定。它可能是网络上的一项服务,也可能只是运行在你电脑上的一个小程序。

你可以把 MCP Server 理解成翻译员。Claude Code 说:“帮我找到 MEN-12 这个任务。” MCP Server 把这句话翻译成 Linear 能听懂的请求。Linear 返回任务内容后,MCP Server 再把结果交给 Claude。

整个过程不需要我们手动复制粘贴。

MCP 给 Claude 增加了什么?

理解 MCP 之前,我们还需要理解一个概念:工具。

普通的 AI 对话,主要是你问,它答。例如你问:怎么查询数据库里的订单数量? AI 会告诉你应该写什么代码,但它通常不会真的连接数据库,也不会直接把订单数量查出来。

有了工具以后,情况就不一样了。Claude 不只是告诉你怎么做,它还可以直接去做。

例如,数据库 MCP 可能给 Claude 提供这些工具:

CODE
查看数据库结构
查询订单数据
统计用户数量
生成数据报表

Linear MCP 可能提供:

CODE
查看任务
搜索任务
创建任务
修改任务状态
添加评论

GitHub MCP 可能提供: 

CODE
查看代码仓库
读取 Issue
查看 Pull Request
创建 Issue
评论代码

你可以把它理解成普通 AI 只有嘴巴,可以告诉你答案。接入工具后的 Claude,不只有嘴巴,还有了手。

MCP 可以帮我们做什么?

MCP 的用途很多,但对大多数 Claude Code 用户来说,下面几种场景最常见。

读取项目需求 

很多团队会把产品需求放在 Linear、Jira 等项目管理工具中。

以前开始开发之前,我们要先打开任务页面,复制需求描述,再粘贴给 Claude。接入 MCP 后,可以直接输入:

CODE
读取 Linear 中的 MEN-12,帮我整理这个需求的背景、功能要求和验收标准。

Claude 会自己调用 Linear MCP,找到对应的任务。如果需求内容比较复杂,还可以继续说:

CODE
先检查当前项目中哪些文件需要修改,给出开发方案,暂时不要写代码。

这样,从读取需求到分析代码,都可以在 Claude Code 中完成。

查询最新的技术文档 

Claude 虽然掌握了大量知识,但它并不一定知道某个软件最近刚更新的功能。例如,一个框架上个月修改了使用方法,Claude 可能还在按照旧方法写代码。Context7 这类 MCP,就是用来解决这个问题的。它可以帮助 Claude 查询当前版本的技术文档和代码示例。例如:

CODE
使用 Context7 查询最新版 shadcn/ui 的表单用法,再帮我检查项目里的代码。
或者:
查询 Prisma 当前版本中一对多关系的写法,不要使用已经过时的接口。

对于更新速度比较快的前端框架、数据库工具和云服务,这类 MCP 很实用。 

查询数据库 

连接数据库 MCP 后,我们可以直接用自然语言查询数据。 例如: 

CODE
查看 orders 表中有哪些字段。
或者:
统计最近30天每天的订单数量,并找出订单下降最明显的一天。

Claude 会把你的问题转换成数据库查询,再把结果整理出来。不过,连接公司数据库时要特别谨慎。如果只是分析数据,最好只给 Claude 开通读取权限,不要直接开放修改和删除数据的权限。

管理 GitHub 中的任务和代码 

通过 GitHub MCP,Claude 可以读取仓库、Issue 和 Pull Request。 例如: 

CODE
查看当前仓库中还没有处理的 Issue,并按照优先级排序。
或者:
检查 PR #456,重点关注安全、性能和兼容性问题。

这时 Claude 不需要你复制整个 PR,它可以自己读取相关代码和讨论记录。

同时使用多个系统 

MCP 更有价值的地方,是可以把几个系统串起来。 例如: 

CODE
读取 Linear 中的 ENG-4521,理解需求后检查当前代码, 完成开发并运行测试,最后在 GitHub 中创建 Pull Request。

在这个过程中,Claude 可能会: 

CODE
从 Linear 读取需求;
分析当前代码;
修改项目文件;
运行测试;
通过 GitHub 创建 Pull Request。

原本需要在几个软件之间来回切换的工作,现在可以通过一段话交给 Claude。

如何添加 MCP?

看到这里,很多人可能会担心:接入外部系统,是不是需要自己开发程序?通常不需要。很多服务已经提供了现成的 MCP Server,我们只需要按照官方说明,把它添加到 Claude Code 中。

添加 MCP 的基本命令是:

CODE
claude mcp add

常见的 MCP 主要有两种连接方式: 

1、HTTP:连接网络上的服务; 

2、stdio:运行电脑上的本地程序。 

名字不重要,知道它们分别适合什么情况就可以了。 

第一种:连接网络上的 MCP 

如果 MCP 是由 Linear、Notion 等服务商维护的,一般会使用 HTTP。 基本格式如下:

CODE
claude mcp add --transport http 名称 地址

例如,添加 Linear MCP: 

CODE
claude mcp add --transport http linear-server https://mcp.linear.app/mcp

运行完成后,进入 Claude Code: 

CODE
claude

然后输入: 

CODE
/mcp

Claude Code 会显示已经添加的 MCP。 

如果 Linear 需要登录,按照提示打开浏览器,完成账号授权即可。连接完成后,就可以尝试输入:

CODE
查看 Linear 中分配给我的未完成任务。

如果 Claude 能够正常返回任务信息,说明 MCP 已经连接成功。 

HTTP 比较适合普通用户。它就像登录一个网站,服务由对方负责维护,我们不需要在自己的电脑上一直运行额外程序。

第二种:运行本地 MCP 

有些 MCP 需要访问电脑上的文件或执行本地脚本,这时通常会使用 stdio。基本格式如下: 

CODE
claude mcp add --transport stdio 名称 -- 启动命令

例如,我们有一个本地 Python 程序: 

CODE
claude mcp add --transport stdio local-tools -- python server.py

这段命令的意思是: 当 Claude 需要使用 local-tools 时,就在电脑上运行python server.py 

这里需要特别注意中间的两个横线: – 前面的内容是给 Claude Code 看的,后面的内容才是启动本地程序的命令。 如果漏掉这两个横线,Claude Code 可能无法正确识别命令。 

对于刚开始接触 MCP 的读者,暂时不需要自己编写本地 MCP。

先学会添加别人已经做好的 MCP,就足够解决大部分问题。

如何查看已经安装的 MCP?

查看当前已经添加的 MCP,可以运行: 

CODE
claude mcp list

查看某一个 MCP 的详细信息: 

CODE
claude mcp get linear-server

删除一个不再使用的 MCP: 

CODE
claude mcp remove linear-server

在 Claude Code 的对话中,还可以直接输入: 

CODE
/mcp

这个命令很重要,它可以帮你查看: 

CODE
哪些 MCP 已经连接;
哪些 MCP 连接失败;
哪些 MCP 正在等待登录;
每个 MCP 提供了多少工具;
是否需要重新连接;
是否需要暂时关闭某个 MCP。

以后遇到 MCP 无法使用,第一步不是删除重装,而是先输入 /mcp 看一下状态。

MCP 应该安装在哪里?

添加 MCP 时,还会遇到一个叫做 Scope 的选项,Scope 可以理解成这个 MCP 在哪里生效。Claude Code 提供三种选择。

类型
在哪里可以使用
是否与团队共享
Local
只有当前项目
否
User
你的所有项目
否
Project
当前项目
是

Local:只在当前项目使用 

Local 是默认选择,也就是说,如果不特别设置,这个 MCP 只会在当前项目中出现,而且只有你自己能看到。

CODE
claude mcp add --scope local --transport http my-server https://example.com/mcp

适合下面这些情况: 

CODE
先试用一个新的 MCP;
只在某个项目中使用;
暂时不想分享给团队;
配置中包含个人信息。

刚开始使用 MCP 时,选 Local 通常最稳妥。 

User:所有项目都能使用 

User 表示这个 MCP 在你电脑上的所有项目中都可以使用。

CODE
claude mcp add --scope user --transport http my-server https://example.com/mcp

例如 Context7 这种查询技术文档的工具,很多项目都会用到,就比较适合安装到 User,这样换一个项目后,不需要重新安装。 

Project:整个团队一起使用 

Project 表示 MCP 属于当前项目,并且可以与团队共享。 

CODE
claude mcp add --scope project --transport http team-tools https://example.com/mcp

使用 Project 后,项目根目录中会出现一个文件:

CODE
.mcp.json

这个文件记录了项目需要连接哪些 MCP。

它可以和代码一起提交到 Git 仓库,其他团队成员拿到项目后,也会看到相同的 MCP 配置。不过要注意:可以共享 MCP 的配置,但不要共享自己的密码和 Token。 

例如,MCP 地址可以写进 .mcp.json,但登录凭据应该放在每个人自己的电脑上。可以把它理解为,公司可以告诉员工从哪个入口进入系统,但不能把某个人的账号密码贴在公司公告栏上。

MCP 会不会占用 Claude 的上下文?

会,但没有想象中那么严重。 

上下文可以理解成 Claude 当前能够记住的信息空间,MCP 提供的工具说明、查询结果和返回的数据,都会占用一部分空间。

不过,目前的 Claude Code 默认会使用 Tool Search。它的意思是 Claude 不会一开始就把所有 MCP 工具全部读一遍,而是在需要时再寻找合适的工具。例如你安装了 Linear、GitHub 和数据库 MCP,当你只是在修改一段本地代码时,Claude 没有必要读取数据库工具。当你让它查看 Linear 任务时,它才会寻找 Linear 提供的工具。

虽然如此,仍然不建议一次安装几十个用不到的 MCP。因为 MCP 的名称、说明和实际返回的内容仍然会占用上下文。尤其是数据库、日志和文档工具,一次可能返回大量内容。

例如,不要直接问:

CODE
把最近一年的全部订单数据都返回给我。

这样可能会把大量无用数据塞进对话。更合理的问法是: 

CODE
统计最近一年每个月的订单数量,只返回月份、订单数和环比变化。

能在查询阶段完成的筛选和统计,就不要把全部原始数据交给 Claude。暂时不用的 MCP,也可以在 /mcp 中关闭。

MCP、Skill 和命令行工具有什么区别?

这是值得反复拿出来说的内容。

学完上一篇 Skills 后,很多人可能会觉得 MCP 好像也能帮助 Claude 做事,它和 Skill 有什么不同?可以用一个简单的例子来理解。

假设你要让 Claude 审查一个 GitHub PR。 Skill 可以告诉 Claude:审查代码时,先检查安全问题,再检查性能问题,最后按照固定格式输出审查报告。这是在告诉 Claude 应该怎么做,GitHub MCP 则可以帮助 Claude直接读取 PR 中的代码和评论,这是在解决去哪里获取数据。所以:

CODE
Skill 负责工作方法;
MCP 负责连接工具和数据;
CLAUDE.md 则负责保存长期规则。

除此之外,有些工具已经提供了成熟的命令行程序。

例如 GitHub 有 gh,AWS 有 aws,Docker 有 docker。

如果只是偶尔执行一个简单操作,直接让 Claude 使用命令行工具,可能比安装 MCP 更轻量。可以按照下面的方式判断:

你的需求
更适合使用
保存项目的长期规则
CLAUDE.md
保存一套固定工作流程
Skill
访问外部系统和实时数据
MCP
工具已经有成熟的命令行程序
CLI
把复杂任务交给独立角色处理
Subagent

这些能力也可以组合使用,例如:

CODE
用 GitHub MCP 读取 PR;
用代码审查 Skill 规定检查流程;
交给 Code Reviewer Subagent 单独完成审查;
最后只把审查结论返回主对话。

这时,MCP 提供数据,Skill 提供方法,Subagent 负责执行。

使用 MCP 时要注意安全

MCP 相当于给 Claude 发放了一张门禁卡,它可以进入哪些系统、看到哪些数据、完成哪些操作,取决于我们给了它多大的权限。因此,使用 MCP 时要注意下面几件事。

只连接可信的 MCP 

优先选择服务商官方提供的 MCP,如果使用第三方 MCP,至少要确认它来自谁、会读取哪些数据,以及数据会被发送到哪里。

不要看到一条安装命令就直接运行。 

只提供必要的权限 

如果只是查询数据,就不要提供修改权限。如果只需要读取一个代码仓库,就不要开放整个 GitHub 账号。如果只是分析数据库,就使用只读账户。

权限越小,出现问题时的影响也越小。 

不要把密码写进项目 

API Token、数据库密码和其他认证信息,不要直接写进 .mcp.json,更不要提交到 Git 仓库。 

这些信息应该保存在自己的电脑或专门的密钥管理工具中。 

重要操作保留人工确认 

查询数据、整理报告、生成草稿,风险通常比较低。但是下面这些操作,最好仍然由人来确认:

CODE
删除数据;
合并代码;
发布生产环境;
修改线上配置;
向外部人员发送消息。

MCP 可以帮助我们减少重复操作,但不代表所有操作都应该完全自动完成。

MCP 连接失败怎么办?

MCP 出现问题时,可以按照下面的顺序检查。

第一步:查看连接状态 

进入 Claude Code,输入: 

CODE
/mcp

先确认它是连接失败、等待登录,还是暂时被关闭。 

第二步:查看配置 

运行: 

CODE
claude mcp list

确认 MCP 是否已经添加,再运行: 

CODE
claude mcp get MCP名称

查看地址和启动命令是否正确。 

第三步:检查登录状态 

很多网络 MCP 需要登录账号。重新进入/mcp,按照提示完成认证。

如果使用 Token,还要确认 Token 是否过期、权限是否足够。

第四步:检查本地命令 

如果使用的是本地 stdio MCP,可以先离开 Claude Code,直接在终端运行它的启动命令。例如:

CODE
python server.py

如果这个命令本身无法运行,那么 Claude Code 也无法启动它。

常见原因包括: 

CODE
Python 或 Node.js 没有安装;
文件路径写错;
需要的依赖没有安装;
环境变量没有设置;
Windows 路径中有空格,但没有加引号。

第五步:减少返回内容 

如果 MCP 可以连接,但经常返回内容过多,可以在问题中增加限制。例如:

CODE
只返回前20条结果。

或者: 

CODE
不要返回原始数据,只返回统计结果。

大部分时候,减少查询范围比提高输出限制更有效。


MCP 解决的问题并不复杂。

Claude Code 很聪明,但它默认只能看到当前项目和我们提供给它的信息。很多真正有价值的内容,其实放在代码库之外:

CODE
需求在 Linear 和 Jira 里;
代码任务在 GitHub 里;
业务数据在数据库里;
错误信息在监控系统里;
最新用法在技术文档里。

MCP 就像一个通用转接头,把这些外部工具连接到 Claude Code。

添加 MCP 的核心命令是: 

CODE
claude mcp add

连接网络服务时,通常使用 HTTP: 

CODE
claude mcp add --transport http 名称 地址

运行本地工具时,通常使用 stdio: 

CODE
claude mcp add --transport stdio 名称 -- 启动命令

添加完成后,可以通过: 

CODE
/mcp

查看连接状态、完成登录和管理工具。 

不过,MCP 并不是安装得越多越好。

需要实时读取外部数据时,用 MCP;需要保存工作流程时,用 Skill;需要记录项目规则时,用 CLAUDE.md;已有成熟命令行工具时,也可以直接使用 CLI。

Skills 像是一本工作手册,告诉 Claude 应该怎样做事。MCP 则像门禁卡和工具箱,让 Claude 能够进入外部系统,拿到完成工作所需要的信息。

接入 MCP 以后,Claude Code 不再只是一个会读写代码的助手,它开始能够进入我们真实的工作流程。

(注:本文图片来源于Anthropic)