简介:本教程面向开发者与运维人员,系统讲解如何为 Claude Code 接入 MCP Server:包括 MCP 的作用与价值、四种传输方式的选型、一条命令完成接入、三种作用域的区别与共享范围、认证配置、新版 Tool Search 带来的变化,以及常见 server 的接入思路与故障排查路径。读完即可独立完成接入并定位大多数常见问题。
本教程要帮助读者完成一件明确的事:把 Claude Code 从”只能读本地代码和文件”的助手,升级为能直接读写外部系统的开发搭档——通过 MCP(Model Context Protocol,模型上下文协议)接入一个或多个 MCP Server,让 Claude 能自己去查工单、查数据库、读监控、拉设计资源,而不是靠你反复复制粘贴。
读完之后,你应当能够:
适合阅读本教程的角色包括:
典型适用场景:
判断是否该接入的信号非常直接:当你发现自己反复从某个工具里复制内容、再粘进对话框时,就该把那个工具接进来了。 接入之后,Claude 不再依赖你粘贴的片段,而是直接读取和操作那个系统本身,信息新鲜度和完整性都会显著提升。
在动手之前,请确认以下条件:
一个务实的建议:第一次接入只选一个 server,且优先选只读能力。先把链路跑通,再逐步扩大范围,能显著降低排查成本。
MCP 全称 Model Context Protocol(模型上下文协议),是一个开放标准,专门用来把 AI 和各种外部工具、数据源连起来。一个 MCP Server 就是按这个协议写的连接器:一头接着某个外部系统,另一头把这个系统的能力按统一格式暴露给 Claude Code。连上之后,Claude 就能直接调用那个系统。
一个 MCP Server 通常向 Claude 提供三类能力:
@ 把它拉进对话上下文。/ 菜单里,用于固化常见工作流。日常使用中工具占绝大多数,资源和提示属于锦上添花的能力,可在链路跑通后再探索。
MCP 作为开放标准有一个很实在的好处:一次接入、处处可用。任何工具只要按协议提供了 server,就能被 Claude Code 接入,也能被其他支持 MCP 的 AI 工具接入;你不必为每个工具学一套对接方式,统一用一条 add 命令即可。这也是如今主流云服务与协作平台几乎都提供官方 MCP Server 的原因。
传输方式(transport)决定了 Claude Code 与 server 之间的通信形态。选错传输是接入失败最常见的原因之一,因此这一步值得先想清楚。
| 传输方式 | 适用形态 | 选择要点 |
|---|---|---|
| stdio(标准输入输出) | server 作为本地子进程运行 | 最简单、最常用;由 Claude Code 负责拉起进程,无需关心端口 |
| SSE(Server-Sent Events) | server 以远程 HTTP 服务形式提供,走长连接推送 | 适合早期远程服务;需关注断线重连与网络代理 |
| HTTP(流式 HTTP) | server 以远程 HTTP 服务形式提供 | 远程接入的主流选择;需处理认证头与超时 |
| 内置/直连方式 | 由客户端内置支持的特定集成 | 取决于客户端版本能力,使用前先确认可用性 |
选型建议按以下顺序判断:
一个常见误区:以为远程一定比本地好。实际上本地 stdio 在延迟、权限隔离、调试便利性上往往更优,只有在需要多人共享、集中管控或访问内网资源时才必须走远程。
先阅读目标 server 的说明,确认三件事:它是本地命令还是远程 URL、需要哪些环境变量(通常是凭据)、有没有必填的启动参数。把凭据准备好放在环境变量里,不要直接写进命令历史。
为什么先做这一步:MCP 接入失败的绝大多数原因不是协议问题,而是启动参数缺失或凭据无效。提前对齐信息,能避免反复试错。
Claude Code 统一用一条 add 命令完成接入。以本地 stdio 形态为例,通用示意如下:
# 本地 stdio 形态:命令 + 参数 + 环境变量claude mcp add <server-name> \--env API_TOKEN=<your-token> \-- <启动命令> <启动参数...># 远程 HTTP 形态:直接给端点claude mcp add --transport http <server-name> <endpoint-url># 远程 SSE 形态(对接既有服务时)claude mcp add --transport sse <server-name> <endpoint-url>
要点说明:
<server-name> 是你自己起的标识,后续在对话里引用、在配置里修改都靠它,建议用有意义且简短的名字;-- 之后是真正的启动命令,这个分隔符很关键,能避免参数被客户端误解析;--env 用于注入凭据,比在命令里明文写 token 更安全;--transport,否则可能按默认本地形态解析而失败。为什么用统一命令:MCP 是开放标准,接入方式统一,你不需要为每个外部系统学一套对接流程。这也是它相比”每家一个插件”的根本优势。
add 命令默认写入某个作用域。你在执行时应当有意识地指定作用域(下一节详述),而不是接受默认值后再回头改。执行完成后,可用列表命令核对:
claude mcp list # 查看已接入的 serverclaude mcp get <name> # 查看某个 server 的详细配置与连接状态
为什么核对:配置写错作用域是团队协作中最常见的”我这里能用、你那里没有”的根因。
作用域(scope)决定这份 MCP 配置存在哪里、对谁生效。三种作用域的行为差异如下:
| 作用域 | 存储位置 | 生效范围 | 典型用途 |
|---|---|---|---|
| local | 本机用户级配置 | 仅当前用户、当前项目 | 个人试验、含个人凭据的 server |
| project | 项目内配置文件(可入版本库) | 该项目所有协作者 | 团队共享的只读查询、公共工具 |
| user | 本机用户级全局配置 | 当前用户的所有项目 | 跨项目通用的个人工具链 |
选择原则:
一个实操细节:同名 server 在不同作用域下可能同时存在,生效优先级由客户端决定。为避免歧义,同名只保留一份配置,切换作用域时先移除旧配置。
认证是接入受保护资源的关键环节,按 server 形态分两类:
本地 stdio server:凭据通过环境变量注入,由 server 进程自行读取。要点:
远程 HTTP/SSE server:通常使用请求头携带令牌,或走 OAuth 授权流程。要点:
add 命令的参数或客户端配置注入请求头;通用的安全建议:给 Claude 的凭据应当是”专用身份”而非你的个人主账号。这样既能精确控制权限范围,也便于在审计日志中区分 AI 发起的操作与人工操作。
工具是主角,但资源和提示能进一步减少上下文搬运:
@ 引用外部对象,比如 @<server-name>:<resource-id> 把某个工单直接拉进对话。它解决的是”我需要这段内容作为背景”的问题,比复制粘贴更准、更新更及时。/ 菜单。它把团队常见工作流固化成模板,比如”按固定格式生成变更说明”,减少每次重复描述要求的成本。实践建议:先用工具把核心动作跑通,再挑一两个高频场景配置提示模板。不要一上来就追求能力全覆盖,维护成本会迅速上升。
工具数量增加后会出现一个新问题:上下文膨胀。每个 server 的工具定义都要占上下文,接十几个 server 后,光是工具描述就可能挤占大量窗口,导致真正有用的对话内容被压缩,同时模型选择工具的准确率也会下降。
新版默认开启的 Tool Search 解决的正是这件事:它不再把所有工具定义一次性全量塞进上下文,而是按需检索、动态加载相关工具。对你意味着:
接入完成后,按以下顺序验证,逐层排除问题:
claude mcp list 能看到目标 server,状态显示为已连接。只有第 1 层通过不算成功,必须走到第 3 层——配置显示已连接但工具调用全部失败,是最常见的假成功。
按”从近到远”的顺序排查,效率最高:
问题 1:list 里根本看不到 server。
原因:命令执行失败、作用域写错、配置文件语法错误。
排查:重跑 add 命令看报错;用 get 查详情;确认当前目录与作用域是否匹配;检查配置文件 JSON 是否合法(多余逗号是最常见的语法错误)。
问题 2:状态显示已连接,但 Claude 从不调用工具。
原因:工具描述不清导致模型没识别出适用场景;或你的提问方式暗示了”你会自己提供信息”。
排查:直接把需求说成”用某某能力去查”,明确要求使用工具;检查 server 暴露的工具列表是否为空(有些 server 需要额外启动参数才启用写能力)。
问题 3:本地 server 启动即退出。
原因:运行时依赖缺失、启动命令路径错误、必填环境变量未注入。
排查:先在终端手工执行 -- 之后的完整命令,看真实报错。这一步能解决绝大多数本地接入问题——因为 Claude Code 只是替你拉起同一个进程。
问题 4:远程 server 连接超时。
原因:网络不通、代理未配置、端点路径写错、服务端未监听预期端口。
排查:先用通用 HTTP 客户端直接请求端点确认可达;再检查代理环境变量;确认 URL 是否包含完整路径前缀。
问题 5:认证失败或调用返回未授权。
原因:令牌过期、权限范围不足、请求头字段名写错、OAuth 授权未完成。
排查:换用最小请求手工验证令牌有效性;核对请求头字段名与服务端要求是否一致;重新走一次授权流程。
问题 6:团队里别人能用、我这里不行。
原因:作用域不一致(对方是 project,你是 local 且未同步)、凭据未在本机注入、本地运行时版本不满足要求。
排查:确认配置所在作用域;检查本机环境变量;对齐运行时版本。
问题 7:接入多个 server 后响应变慢、答非所问。
原因:上下文被大量工具定义挤占;多个 server 能力重叠导致选择困难。
排查:确认 Tool Search 已启用;精简重叠 server;把低频 server 改为按需启用。
MCP 的价值可以压缩成一句话:把”人肉搬运外部信息”变成”Claude 自己去读、去查、去写”。落地路径也很清晰:
add 命令完成接入,凭据走环境变量;链路跑通之后,可以继续关注三个方向:用资源引用减少上下文搬运、用提示模板固化团队工作流、以及在 server 数量增长后借助 Tool Search 维持上下文效率。这三件事决定了 MCP 接入能否从”能用的demo”变成”日常离不开的基础设施”。