Claude Code 扩展机制:理解 MCP、Skills 与 Agent 协作
前言
Claude Code 不是一个孤立的命令行工具——它通过 MCP、Skills 和 Agent 三层机制,可以接入外部数据源、复用工作流程、编排多智能体协作。
这篇文章从概念到配置,把这三种机制说清楚。
一、MCP(Model Context Protocol,模型上下文协议)
MCP 是什么
MCP 是 Anthropic 提出的一套开放协议,让 AI 模型能安全地访问外部工具和数据源。你可以把它理解为”AI 的 USB 接口”——只要实现了 MCP 协议,任何工具和数据源都能被 Claude 调用。
在没有 MCP 之前,让 AI 查数据库或调 API 需要自己写代码封装 Function Calling。有了 MCP,第三方直接提供现成的 MCP Server,配置一下就能用。
MCP 的架构
1 | Claude Code(客户端) |
每个 MCP Server 是一个独立进程,暴露特定的工具(Tool)、资源(Resource)和提示模板(Prompt)。Claude 需要时调用对应的 Server,用完就断开,Server 挂了也不影响 Claude 主进程。
配置 MCP Server
在 Claude Code 中,配置 MCP 拥有全局用户级与项目级两种范围作用域:
- 用户全局范围 (User Scope):推荐的全局配置文件路径是
~/.claude.json。- 注:为了方便过渡,Claude Code 在启动时也会自动读取和导入 Claude Desktop 的
~/.claude/claude_desktop_config.json中的配置。
- 注:为了方便过渡,Claude Code 在启动时也会自动读取和导入 Claude Desktop 的
- 项目级范围 (Project Scope):配置文件为项目根目录下的
.mcp.json。- ⚠️ 重要安全提示:由于项目级配置会随 Git 提交,所以
.mcp.json必须存放在项目的根目录中(切忌放在.claude/子目录下)。在首次启动带有项目配置的claude时,系统出于安全考量会主动向你发起授权确认。
- ⚠️ 重要安全提示:由于项目级配置会随 Git 提交,所以
方式一:使用内置的 CLI 命令进行增删(推荐,极简快捷)
Claude Code 提供了极为好用的命令行工具来管理 MCP 插件,它会自动为你写好上述的 JSON 配置文件,完全无需手动编辑:
1 | # 1. 交互式添加一个全局 MCP 插件 (会在 ~/.claude.json 中创建) |
方式二:手动编辑 JSON 配置文件
你也可以手动新建或修改 ~/.claude.json (全局) 或项目根目录下的 .mcp.json (项目级),其结构是一致的:
1 | { |
配置完成后,Claude 就会获得相应工具的超能力。你可以直接在交互窗口中要求它调用:
1 | # 进入交互模式后,直接让 Claude 执行相关任务 |
常用 MCP Server
| MCP Server | 用途 |
|---|---|
mcp-server-sqlite |
操作 SQLite 数据库 |
mcp-server-postgres |
操作 PostgreSQL |
mcp-server-github |
GitHub Issue/PR/仓库管理 |
mcp-server-filesystem |
文件系统读写(限定目录) |
mcp-server-jira |
Jira 任务查询和创建 |
mcp-server-slack |
Slack 消息发送 |
mcp-server-puppeteer |
浏览器自动化 |
mcp-server-brave-search |
Brave 搜索引擎 |
MCP 和其他方案的区别
| MCP | Function Calling | LangChain Tools | |
|---|---|---|---|
| 标准化 | 开放协议,多模型通用 | OpenAI 私有格式 | LangChain 生态内 |
| 部署方式 | 独立进程,和新模型隔离 | 嵌入在请求中 | 嵌入在代码中 |
| 跨模型 | Claude/GPT 都能用 | 主要在 OpenAI 用 | 看封装 |
| 复用性 | 一次开发到处用 | 需要适配不同模型 | 只在 LangChain 内 |
MCP 最大的优势是标准化和跨模型。写一个 MCP Server 就能给 Claude、GPT、开源模型一起用。Function Calling 则绑定了 OpenAI 的 API 格式,跨模型需要适配。
而现在 GPT 也已宣布支持 MCP 协议,这意味着 MCP 正在成为 AI 工具接入的事实标准。
二、Skills(技能)
Skills 是什么
Skills 是可复用的任务模板——把”怎么做某件事”写成配置文件,Claude Code 收到相关任务时自动加载对应的 Skill,不需要每次都写一遍长长的 Prompt。
简单说,Skill 就是你给 Claude Code 写的”操作手册”。比如”部署到生产环境”这个任务很复杂,你可以把它写成一个 Skill,以后只需要说一句”部署”,Claude 就知道该怎么做。
内置 Skills
Claude Code 内置了一些常用 Skills,如代码审查、安全审查、PR 审查等。可以通过 / 命令触发:
1 | # 交互模式下 |
自定义 Skill
Skill 文件放在项目的 .claude/skills/ 目录下,是一个 Markdown 文件:
1 | --- |
使用方式:
1 | # 触发自定义 Skill |
Skills 的特点
- 可复用:写一次,团队共用
- 可组合:一个 Skill 可以调用另一个 Skill
- 版本控制:Skill 文件放在项目 Git 仓库里,随代码一起管理
- 上下文自动加载:匹配到关键词自动注入到对话上下文中
三、Agent 模式(子智能体)
Agent 是什么
Claude Code 的 Agent 模式允许主对话派出子 Agent 去执行独立任务。子 Agent 有自己的上下文窗口,完成后把结果返回给主对话。
这带来几个好处:
- 并行处理:多个子 Agent 同时干活
- 上下文隔离:子 Agent 不会污染主对话的上下文
- 专业分工:每个子 Agent 可以有独立的系统提示和工具权限
Agent 的典型工作流
1 | 主对话(项目经理) |
配置 Agent
Agent 配置在 CLAUDE.md 或对话中定义:
1 | ## Agents |
在对话中启动 Agent
1 | 用户: "对整个项目做一次安全审查" |
四、三种机制怎么组合
实际使用中,MCP、Skills、Agent 是互相配合的:
1 | ┌────────────────────────────────────────┐ |
一个完整的例子——“帮我写一份部署前检查报告”:
- Skill
pre-deploy-check定义了完整的检查流程 - Agent 1 用 MCP 连接 GitHub,检查是否有未合并的 PR
- Agent 2 用 MCP 连接数据库,检查是否有待执行的 migration
- Agent 3 读取 CHANGELOG,检查是否有 breaking changes
- 主对话汇总三个 Agent 的结果,生成检查报告
五、和 LangChain Agent 的对比
| Claude Code Agent | LangChain Agent | |
|---|---|---|
| 定位 | AI 编程助手的扩展 | 通用 Agent 开发框架 |
| 写代码 | 原生能力 | 需要自己写 |
| 学习成本 | 低(写配置文件) | 高(写代码 + 理解框架) |
| 灵活度 | 受限于 Claude Code 生态 | 完全自定义 |
| 适用 | 开发任务、代码审查 | 自定义业务场景 |
如果你的需求是加速开发过程、做代码审查、写文档——直接用 Claude Code 的 Agent。如果你需要构建一个定制化的 AI 业务流程(如客服机器人、数据分析流水线),用 LangChain 或直接调 API 更灵活。
MCP 负责连接外部世界,Skills 负责沉淀可复用的流程,Agent 负责并行处理复杂任务。三者加在一起,Claude Code 就从一个”聊天窗口”变成了一个能真正干活的自动化平台。