CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Claude Code 实战入门/课时/MCP 与插件
RawBlame
课时目录12 节

Claude Code 实战入门

  1. 01Claude Code 概览
  2. 02工作流与 Plan 模式
  3. 03CLI 与会话
  4. 04模型与定价
  5. 05上下文与 CLAUDE.md
  6. 06权限与安全
  7. 07MCP 与插件
  8. 08Skills 与子代理
  9. 09Hooks 事件
  10. 10扩展与规模化
  11. 11内置工具集
  12. 12综合练习

MCP 与插件

连接外部工具与插件生态。

30 分钟

MCP 与插件

这一课你将能做到

  1. 说清 MCP(Model Context Protocol)解决什么问题,以及它与内置工具、function calling 的关系
  2. 用 claude mcp add 配置一个 MCP 服务器,区分 stdio / HTTP / SSE 三种传输与 local / project / user 三种作用域
  3. 用项目级 .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 仓库安装,适合把团队整套工作流一键铺开。

讲清楚要点

  1. MCP 的本质是「工具发现 + 调用」的标准协议:客户端连上服务器即自动获得其工具清单,模型按需调用。你不用写胶水代码,这正是它优于自写脚本集成的地方。
  2. 三种传输对应三种部署:stdio 最常见(本地进程、零网络暴露);HTTP/SSE 面向远程共享服务(团队共用、带鉴权)。本地小工具选 stdio,团队 SaaS 集成选远程。
  3. 每个 MCP 工具都会占用上下文:服务器越多、工具越多,系统提示越长,成本越高、模型选择工具越容易混淆。按项目精简,用完的服务器及时 remove。
  4. 第三方服务器是供应链风险点:它以你的身份在本地执行代码、访问数据。只装可信来源,项目级 .mcp.json 出现在他人仓库时要先审查再启用。
  5. 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__*(所有服务器)越权面不可控精确到服务器甚至工具级

卡点急救

  1. Windows 下 npx 服务器启动失败:命令改为 cmd /c npx -y <包名>;确认 Node 在 PATH 中。
  2. 工具列表为空/模型从不调用:重启会话;/mcp 确认服务器已连接;描述任务时点名能力(「用 sentry 查最近报错」)。
  3. ${VAR} 没有展开:环境变量需在 Claude Code 的启动环境中存在;Windows 下注意用户/系统环境变量区分,配置后重开终端。

面试常问

  • MCP 解决了什么问题? 在模型应用与外部工具/数据源之间建立开放标准:一次实现服务器,任何 MCP 客户端都能用,避免每个应用各写一套私有集成。类比 AI 工具生态的 USB-C。

  • stdio 与 HTTP/SSE 传输如何选型? stdio:本地进程、无网络暴露、启动简单,适合个人工具与本地服务;HTTP/SSE:远程部署、天然支持多客户端共享与集中鉴权审计,适合团队级与 SaaS 集成。安全敏感数据优先本地 stdio。

  • 引入 MCP 的安全注意事项? 三点:供应链(只信可信来源,审查第三方仓库的 .mcp.json)、最小权限(工具级 allow/deny,密钥走环境变量)、上下文成本(精简服务器数量)。企业场景叠加出口网络与审计日志。

自测三问

  1. 三种传输方式与三种作用域分别怎么选?
  2. mcp__airtable__* 与 mcp__airtable__delete_record 两条规则的差别?
  3. 为什么 MCP 服务器不是越多越好?

小结一句话

MCP 用统一协议把外部系统能力插进 Claude Code:stdio 连本地、HTTP 连远程、project 作用域做团队分发,权限精确到工具,服务器宁少勿滥。

延伸

  • MCP 集成官方文档
  • 下一课:Skills 与子代理——把团队 SOP 固化成自动触发的技能手册,把大任务委派给独立上下文的子代理。
加载本节练习…
← 上一课权限与安全下一课 →Skills 与子代理