大家好,我是程序员柏风,AI 最全的 Vibecoding 学习地图 http://coderoadmap.cn 作者。
MCP 与插件
这一课你将能做到
- 说清 MCP(Model Context Protocol)解决什么问题,以及它与内置工具、function calling 的关系
- 用 claude mcp add 配置一个 MCP 服务器,区分 stdio / HTTP / SSE 三种传输与 local / project / user 三种作用域
- 用项目级 .mcp.json 给全团队统一分发服务器,并用 mcp__ 前缀规则管理第三方工具的权限
为什么要学
内置工具只能操作本地文件和 shell。但真实开发要连数据库查线上数据、用浏览器做 E2E 验证、去监控系统看报错堆栈。MCP 是 Anthropic 在 2024 年底开源的协议,把「外部能力」标准化成即插即用的服务器:任何支持 MCP 的客户端(Claude Code、Claude Desktop 等)都能使用同一批服务器,社区已有数千个现成实现。插件(Plugin)则更进一步,把命令、子代理、MCP 服务器、Hooks 打包成一键安装的扩展包。
人话:MCP 之于 AI 工具,约等于 USB 之于电脑——统一的接口标准,插上就能用;插件则是「USB 集线器 + 驱动光盘」的组合装。
先建立图像
Claude Code(MCP 客户端)
│ stdio(本地进程) │ HTTP/SSE(远程服务)
▼ ▼
┌──────────────┐ ┌──────────────┐
│ postgres-mcp │ │ sentry-mcp │
│ 数据库查询 │ │ 线上报错检索 │
└──────────────┘ └──────────────┘
工具名:mcp__postgres__query mcp__sentry__search
三种作用域:
| 作用域 | 存储位置 | 谁能用 | 典型用途 |
|---|---|---|---|
| local(默认) | 用户级配置里 | 只有你 | 个人实验 |
| project | 项目根 .mcp.json | 全团队(进 git) | 团队统一工具 |
| user | 用户级配置 | 你的所有项目 | 个人常用工具 |
跟着做
步骤 1:添加第一个服务器(local 作用域)
以数据库类服务器为例(以所选服务器的官方 README 为准):
claude mcp add airtable \
--env AIRTABLE_API_KEY=你的密钥 \
-- npx -y airtable-mcp-server
语法拆解:add <名字> + --env 传环境变量 + -- 之后是启动命令。stdio 类型就是在本地拉起一个子进程,通过标准输入输出通信。
步骤 2:验证与排查
claude mcp list # 列出已配置服务器及连接状态
claude mcp get airtable # 查看某个服务器的详细配置
claude mcp remove airtable
会话内用 /mcp 查看状态、查看服务器提供的工具与资源列表;需要 OAuth 授权的服务器会在这里引导登录。
步骤 3:升级为团队共享(project 作用域)
claude mcp add -s project my-server -- node ./tools/mcp-server.js
会在项目根生成 .mcp.json,提交进 git 后,同事启动 Claude Code 会收到启用提示:
{
"mcpServers": {
"my-server": {
"command": "node",
"args": ["./tools/mcp-server.js"],
"env": { "MY_TOKEN": "${MY_TOKEN}" }
}
}
}
${VAR} 引用环境变量,密钥不落库。
步骤 4:配置远程 HTTP 服务器
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
远程服务器无需本地进程,适合 SaaS 类服务;鉴权走 OAuth(/mcp 中授权)或请求头。
步骤 5:给 MCP 工具设权限
第三方工具默认同样受权限系统管辖。在 .claude/settings.json 中:
{
"permissions": {
"allow": ["mcp__airtable__*"],
"deny": ["mcp__airtable__delete_record"]
}
}
命名规则:mcp__<服务器名>__<工具名>,只写到服务器名即放行/拒绝其全部工具。
步骤 6:了解插件生态
/plugin # 会话内打开插件管理
插件可打包分发 slash commands、agents、MCP 服务器、Hooks 与 skills,从插件市场或 git 仓库安装,适合把团队整套工作流一键铺开。
讲清楚要点
- MCP 的本质是「工具发现 + 调用」的标准协议:客户端连上服务器即自动获得其工具清单,模型按需调用。你不用写胶水代码,这正是它优于自写脚本集成的地方。
- 三种传输对应三种部署:stdio 最常见(本地进程、零网络暴露);HTTP/SSE 面向远程共享服务(团队共用、带鉴权)。本地小工具选 stdio,团队 SaaS 集成选远程。
- 每个 MCP 工具都会占用上下文:服务器越多、工具越多,系统提示越长,成本越高、模型选择工具越容易混淆。按项目精简,用完的服务器及时 remove。
- 第三方服务器是供应链风险点:它以你的身份在本地执行代码、访问数据。只装可信来源,项目级 .mcp.json 出现在他人仓库时要先审查再启用。
- Windows 注意事项:原生 Windows 下用 npx 启动的服务器,命令需包一层
cmd /c(如cmd /c npx -y some-server),否则可能启动失败。
你可能会懵的地方
-
MCP 工具和我直接让它跑 psql 命令有什么区别? 能力上重叠。但 MCP 工具有结构化的输入输出(模型不易拼错 SQL)、独立的权限粒度(可精确到某个工具)、且通常封装了鉴权与限流。只读查询场景两者皆可,生产数据操作推荐专用 MCP。
-
服务器连不上怎么排查? 顺序:
claude mcp list看连接状态 →claude mcp get核对命令与环境变量 → 手动运行启动命令看报错 → 检查 Node 版本与网络代理。配置改动需重启会话生效。 -
和 Claude Desktop 里配置的 MCP 通用吗? 协议与服务器通用,但配置文件不共享,两边各自配置。想两边都用,需要分别添加。
-
MCP Resources 和 Tools 有什么区别? Tools 是「动作」(查询、创建、删除);Resources 是「可读数据」(文档、配置、上下文素材)。Claude Code 对 Tools 的使用最成熟,Resources 按服务器支持情况提供。
-
什么时候用插件而不是裸 MCP? 只需要「连一个服务」时用 MCP 就够;要分发整套工作流(命令 + 子代理 + 服务器 + 钩子)时用插件,避免每个同事手动装一遍。
错法对照
| 错法 | 问题 | 正解 |
|---|---|---|
| 密钥明文写进 .mcp.json 并提交 git | 密钥泄露 | 用 ${ENV_VAR} 引用环境变量 |
| 一口气装十几个服务器 | 上下文被工具定义挤爆,选择错误率上升 | 按项目只留 2-3 个在用的 |
| 不看来源直接启用他人仓库的 .mcp.json | 任意代码执行风险 | 审查启动命令与来源后再启用 |
| 本地实验配在 project 作用域 | 队友被无关配置打扰 | 实验用 local,成熟再升 project |
| 把 allow 写成 mcp__*(所有服务器) | 越权面不可控 | 精确到服务器甚至工具级 |
卡点急救
- Windows 下 npx 服务器启动失败:命令改为
cmd /c npx -y <包名>;确认 Node 在 PATH 中。 - 工具列表为空/模型从不调用:重启会话;
/mcp确认服务器已连接;描述任务时点名能力(「用 sentry 查最近报错」)。 - ${VAR} 没有展开:环境变量需在 Claude Code 的启动环境中存在;Windows 下注意用户/系统环境变量区分,配置后重开终端。
面试常问
-
MCP 解决了什么问题? 在模型应用与外部工具/数据源之间建立开放标准:一次实现服务器,任何 MCP 客户端都能用,避免每个应用各写一套私有集成。类比 AI 工具生态的 USB-C。
-
stdio 与 HTTP/SSE 传输如何选型? stdio:本地进程、无网络暴露、启动简单,适合个人工具与本地服务;HTTP/SSE:远程部署、天然支持多客户端共享与集中鉴权审计,适合团队级与 SaaS 集成。安全敏感数据优先本地 stdio。
-
引入 MCP 的安全注意事项? 三点:供应链(只信可信来源,审查第三方仓库的 .mcp.json)、最小权限(工具级 allow/deny,密钥走环境变量)、上下文成本(精简服务器数量)。企业场景叠加出口网络与审计日志。
自测三问
- 三种传输方式与三种作用域分别怎么选?
- mcp__airtable__* 与 mcp__airtable__delete_record 两条规则的差别?
- 为什么 MCP 服务器不是越多越好?
小结一句话
MCP 用统一协议把外部系统能力插进 Claude Code:stdio 连本地、HTTP 连远程、project 作用域做团队分发,权限精确到工具,服务器宁少勿滥。
延伸
- MCP 集成官方文档
- 下一课:Skills 与子代理——把团队 SOP 固化成自动触发的技能手册,把大任务委派给独立上下文的子代理。