OpenClaw 用户必修课:(二) Claude Code MCP vs Skills —— 理解职责边界与组合使用
很多人在使用 Claude Code 时会发现:- MCP 可以调用外部工具- Skills 也可以封装工具调用- **那到底什么时候用 MCP,什么时候用 Skills?****一句话说清楚**:> **MCP 负责"把 Claude 接到外部世界"(数据库、GitHub、SaaS 等),Skills 负责"教 Claude 用什么步骤、什么风格去完成任务"**——在简单场景下看起来都能"完成同
本文是「OpenClaw & Claude Code 学习系列」第二课。上一课我们学习了配置系统,这一课深入理解 MCP 和 Skills 的本质区别与组合使用策略。
前言:核心困惑
很多人在使用 Claude Code 时会发现:
- MCP 可以调用外部工具
- Skills 也可以封装工具调用
- 那到底什么时候用 MCP,什么时候用 Skills?
一句话说清楚:
MCP 负责"把 Claude 接到外部世界"(数据库、GitHub、SaaS 等),Skills 负责"教 Claude 用什么步骤、什么风格去完成任务"——在简单场景下看起来都能"完成同一件事",但底层职责完全不一样。
一、用直觉理解两者
1.1 MCP = USB-C 接口
可以把 MCP 想成 USB-C 接口:
- 标准化定义「Claude 能连哪些外部系统、能调用哪些工具」
- 没有 MCP,Claude 就根本"摸不到"那些系统的数据或操作能力
架构:
Claude Code ←→ MCP Server ←→ 外部服务
(主进程) (独立进程) (GitHub/DB/API)
1.2 Skills = 工作说明书
可以把 Skills 想成"工作说明书 + 小型插件包":
- 告诉 Claude「当要做 X 类任务时,你要按这种流程、用这些脚本/模板、遵守这些规则」
- 没有 Skill,Claude 还是能用 MCP/工具,但会比较"随性",不一定按你理想的流程办事
官方总结:
“MCP 管连通,Skills 管方法”
二、MCP 深入理解
2.1 MCP 是什么?
MCP(Model Context Protocol)的定位:给任何 AI 应用提供一个标准协议,用来连各种外部服务和数据源。
关键特征:
- 客户端–服务端模式:Host(Claude Code) ↔ MCP Server
- 暴露三种原语:
- 工具(tools):如
get_issues,query_orders - 资源(resources):如文档、数据
- 提示模板(prompts):预定义的提示词
- 工具(tools):如
- 需要部署/运行 MCP 服务器
2.2 MCP 管理命令
安装 MCP Server
# 添加 MCP Server
claude mcp add <server-name> -- <command>
# 示例:添加 GitHub MCP
claude mcp add github -- npx -y @modelcontextprotocol/server-github
# 添加 Context7(实时文档)
claude mcp add context7 -- npx -y @upstash/context7-mcp@latest
# 添加 PostgreSQL
claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres
管理命令
# 查看已安装的 MCP Server
claude mcp list
# 删除 MCP Server
claude mcp remove <server-name>
# 示例:删除 GitHub MCP
claude mcp remove github
# 查看 MCP Server 详情
claude mcp info <server-name>
配置文件
MCP Server 配置存储在:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
配置示例:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "your-token-here"
}
}
}
}
2.3 推荐 MCP Server
核心开发
| Server | 用途 | 安装命令 |
|---|---|---|
| Context7 | 实时文档(必装) | claude mcp add context7 -- npx -y @upstash/context7-mcp@latest |
| GitHub | PR、Issues、CI/CD | claude mcp add github -- npx -y @modelcontextprotocol/server-github |
| Filesystem | 高级文件操作 | claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem |
数据库
| Server | 用途 | 安装命令 |
|---|---|---|
| PostgreSQL | 查询 Postgres | claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres |
| MongoDB | MongoDB 操作 | claude mcp add mongodb -- npx -y mongodb-mcp-server |
| DBHub | 通用数据库 | claude mcp add db -- npx -y @bytebase/dbhub |
浏览器与测试
| Server | 用途 | 安装命令 |
|---|---|---|
| Playwright | E2E 测试 | claude mcp add playwright -- npx -y @anthropic-ai/playwright-mcp |
| Brave Search | 网络搜索 | claude mcp add brave -- npx -y @anthropic-ai/brave-search-mcp |
云服务
| Server | 用途 | 安装命令 |
|---|---|---|
| AWS | AWS 服务 | claude mcp add aws -- uvx awslabs.aws-api-mcp-server@latest |
| Cloudflare | Workers/KV/R2 | claude mcp add cloudflare -- npx -y @cloudflare/mcp-server |
2.4 MCP Server 发现渠道
-
官方目录
- MCP Servers 官方列表
- awesome-mcp-servers(76k+ stars)
-
社区资源
- mcpservers.org — 可搜索目录
- Claude Market — 精选市场
2.5 OpenClaw 中的 MCP 使用
OpenClaw 借鉴了 MCP 的设计理念,但实现方式有所不同。
OpenClaw 的 MCP 支持
OpenClaw 通过 mcporter 技能支持 MCP 协议:
# 查看可用的 MCP 服务器
openclaw mcporter list
# 调用 MCP 工具
openclaw mcporter call <server-name> <tool-name> <params>
# 配置 MCP 服务器
# 编辑 ~/.openclaw/openclaw.json
配置示例
在 ~/.openclaw/openclaw.json 中配置 MCP:
{
"mcp": {
"servers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "your-token-here"
}
}
}
}
}
OpenClaw 特有的"工具"概念
OpenClaw 除了 MCP,还有自己的工具系统:
// OpenClaw 工具配置
{
"tools": {
"profile": "full", // 或 "messaging"
"allow": ["exec", "read", "write", "browser"],
"deny": []
}
}
对比:
| 特性 | Claude Code MCP | OpenClaw 工具 |
|---|---|---|
| 协议 | 标准 MCP | OpenClaw 内置 |
| 配置 | claude_desktop_config.json | openclaw.json |
| 管理 | claude mcp | openclaw config |
| 扩展 | MCP Server | Skills + 插件 |
实战示例
# OpenClaw 调用 GitHub(通过 MCP)
openclaw mcporter call github get_issues --repo="owner/repo"
# OpenClaw 调用内置工具
# 在对话中直接使用,无需额外配置
你:"帮我读取 package.json"
OpenClaw:*使用内置 read 工具* → 返回内容
三、Skills 深入理解
3.1 Skills 是什么?
Skills 是一个包含 SKILL.md + 若干资源/脚本的能力包,让 Claude 在特定任务上表现得像一个已经被"入职培训"过的专家。
典型结构:
~/.claude/skills/code-review/
├── SKILL.md # 核心说明
├── checklist.md # 检查清单
└── templates/ # 模板文件
└── report.md
SKILL.md 格式:
---
name: code-review
description: 代码审查流程
tags: [review, security, quality]
---
# Code Review Skill
## 审查步骤
1. 检查安全漏洞
2. 检查性能问题
3. 验证错误处理
4. 检查测试覆盖
## 输出格式
- 问题列表
- 严重程度
- 修复建议
3.2 Skills 管理命令
创建 Skill
# 方法 1:手动创建
mkdir -p ~/.claude/skills/my-skill
touch ~/.claude/skills/my-skill/SKILL.md
# 方法 2:用 Claude 生成
# 在 Claude Code 中输入:
/skill create my-skill "描述你的技能"
管理命令
# 列出所有 Skills
/skills list
# 使用 Skill
/my-skill
# 查看 Skill 详情
/skill info my-skill
# 编辑 Skill
# 直接编辑 ~/.claude/skills/my-skill/SKILL.md
Skill 目录结构
全局 Skills:
- macOS/Linux:
~/.claude/skills/ - Windows:
%USERPROFILE%\.claude\skills\
项目 Skills:
.claude/skills/(项目根目录)
3.3 推荐 Skills
代码质量
---
name: code-review
description: 代码审查标准流程
---
# Code Review Skill
审查代码时:
1. 安全检查(SQL 注入、XSS)
2. 性能检查(N+1 查询、内存泄漏)
3. 测试覆盖(> 80%)
4. 代码风格(ESLint/Prettier)
重构
---
name: refactor
description: 安全重构流程
---
# Refactor Skill
重构前:
1. 确保测试覆盖 > 80%
2. 列出影响范围
3. 给出重构计划
重构中:
1. 小步提交
2. 每步跑测试
重构后:
1. 验证测试通过
2. 更新文档
API 设计
---
name: api-design
description: RESTful API 设计规范
---
# API Design Skill
设计 API 时:
1. RESTful 风格
2. 统一错误码
3. 分页用 limit/offset
4. 认证用 JWT
5. 版本化(/v1/)
3.4 Skills 发现渠道
-
官方资源
-
社区分享
- GitHub 搜索 “claude skills”
- Claude Code Skills 示例
-
自己创建
- 把重复的工作流程写成 SKILL.md
- 在团队内分享
3.5 OpenClaw 中的 Skills 使用
OpenClaw 的 Skills 系统与 Claude Code 高度相似,但有一些 OpenClaw 特有的增强。
OpenClaw Skills 目录结构
~/.openclaw/skills/
├── skill-name/
│ ├── SKILL.md # 核心说明(必需)
│ ├── references/ # 参考文档
│ ├── scripts/ # 脚本文件
│ └── assets/ # 资源文件
管理命令
OpenClaw 通过 clawhub CLI 管理 Skills:
# 搜索 Skills
clawhub search <keyword>
# 安装 Skill
clawhub install <skill-name>
# 列出已安装的 Skills
clawhub list
# 更新 Skill
clawhub update <skill-name>
# 发布自己的 Skill
clawhub publish <skill-path>
SKILL.md 格式(OpenClaw 增强)
---
name: my-skill
description: 技能描述
version: 1.0.0
author: your-name
tags: [tag1, tag2]
dependencies:
- other-skill
---
# My Skill
## 使用方法
...
## 配置
...
## 示例
...
OpenClaw 特有功能
1. Skills 可以调用其他 Skills
---
name: deploy-workflow
dependencies:
- code-review
- test-runner
---
# Deploy Workflow
部署前:
1. 调用 code-review Skill
2. 调用 test-runner Skill
3. 确认通过后部署
2. Skills 可以访问 OpenClaw 工具
---
name: github-pr-review
---
# GitHub PR Review
1. 用 browser 工具打开 PR 页面
2. 用 read 工具读取代码
3. 用 exec 工具运行测试
4. 用 message 工具发送审查结果
3. Skills 可以设置 Cron 定时任务
# 在 Skill 中定义定时任务
openclaw cron add \
--name "daily-review" \
--cron "0 9 * * *" \
--session isolated \
--agent main \
--message "运行 code-review Skill"
OpenClaw Skills 市场
OpenClaw 有自己的 Skills 市场:
-
ClawHub
- 官方 Skills 市场:https://clawhub.com
- 社区贡献的 Skills
- 一键安装
-
本地 Skills
- 存放在
~/.openclaw/skills/ - 可以版本控制
- 团队共享
- 存放在
实战示例
# 安装一个 Skill
clawhub install feishu-doc
# 使用 Skill(在对话中)
你:"用 feishu-doc Skill 读取这个飞书文档"
OpenClaw:*加载 Skill* → 执行流程 → 返回结果
# 查看 Skill 详情
clawhub info feishu-doc
OpenClaw vs Claude Code Skills 对比
| 特性 | Claude Code | OpenClaw |
|---|---|---|
| 目录结构 | ~/.claude/skills/ |
~/.openclaw/skills/ |
| 管理工具 | /skill 命令 |
clawhub CLI |
| 市场 | Claude Market | ClawHub |
| 依赖管理 | 无 | 支持 |
| 定时任务 | 无 | 支持(Cron) |
| 工具调用 | 有限 | 完整(exec/read/write/browser 等) |
四、为什么会感觉"功能一致"?
4.1 完整业务链路
需求:分析最近一周 CI 失败情况,总结原因并提优化建议
单用 MCP:
# 安装 CI MCP Server
claude mcp add ci -- npx -y @company/ci-mcp-server
# 使用
你:"查看最近一周 CI 失败情况"
Claude:*调用 MCP* → 返回数据 → 自由发挥分析
- ✅ 能拿到数据
- ❌ 分析流程不稳定
- ❌ 输出格式不统一
单用 Skills:
---
name: ci-analyzer
---
分析 CI 失败:
1. 按时间聚类
2. 按错误类型归类
3. 输出固定格式报告
- ✅ 流程稳定
- ❌ 拿不到实时数据(需要手动贴)
MCP + Skills 组合:
---
name: ci-analyzer
---
分析 CI 失败:
1. 用 CI MCP 获取最近一周数据
2. 按时间聚类
3. 按错误类型归类
4. 输出固定格式报告(表格+根因+建议)
- ✅ 能拿到实时数据
- ✅ 流程稳定
- ✅ 输出格式统一
4.2 职责划分
| 职责 | MCP | Skills |
|---|---|---|
| 连接外部系统 | ✅ | ❌ |
| 获取实时数据 | ✅ | ❌ |
| 固定流程 | ❌ | ✅ |
| 统一风格 | ❌ | ✅ |
| 可复用模板 | ❌ | ✅ |
五、决策树:何时用谁?
需要调用外部服务?
├─ 是 → 考虑 MCP
│ ├─ 重复使用?
│ │ ├─ 是 → 装 MCP Server
│ │ └─ 否 → 用 CLI 命令
│ └─ 需要实时数据?
│ └─ 是 → 装 MCP Server
│
└─ 否 → 考虑 Skills
├─ 封装思考流程?
│ └─ 是 → 创建 Skill
├─ 项目特定规范?
│ └─ 是 → 创建 Skill
└─ 代码模板?
└─ 是 → 创建 Skill
5.1 典型场景对照表
| 场景 | 推荐方案 | 原因 |
|---|---|---|
| 查询 GitHub Issues | MCP | 外部 API 调用 |
| 代码审查流程 | Skills | 固定流程 |
| 查询数据库 | MCP | 外部服务 |
| API 设计规范 | Skills | 项目规范 |
| 部署流程 | Skills + MCP | 组合使用 |
| 实时文档查询 | MCP (Context7) | 实时数据 |
| 重构流程 | Skills | 固定步骤 |
六、组合使用策略(推荐)
6.1 最佳实践
原则:
MCP 把数据/工具送到 Claude 身边,Skills 规定 Claude 拿到这些东西之后具体要做什么。
示例:完整的部署流程
---
name: deploy
description: 标准部署流程
---
# Deploy Skill
## 部署前检查
1. 用 GitHub MCP 检查 CI 状态
2. 确保所有测试通过
3. 用 Kubernetes MCP 检查集群状态
## 部署执行
1. 用 Docker MCP 构建镜像
2. 用 Kubernetes MCP 更新部署
3. 用 Slack MCP 发送通知
## 部署后验证
1. 验证健康检查
2. 监控错误日志
3. 回滚准备
6.2 组合模式
| 模式 | MCP 职责 | Skills 职责 |
|---|---|---|
| 数据分析 | 获取数据 | 分析流程 + 报告格式 |
| 代码审查 | 获取 PR 信息 | 审查标准 + 输出模板 |
| 部署流程 | 调用云服务 API | 部署步骤 + 验证规则 |
| 文档生成 | 获取代码结构 | 文档风格 + 模板 |
七、新手上路指南
第一阶段:只用 MCP(第 1-2 周)
先装这几个必备 MCP:
# 实时文档(必装)
claude mcp add context7 -- npx -y @upstash/context7-mcp@latest
# GitHub 操作
claude mcp add github -- npx -y @modelcontextprotocol/server-github
# 文件系统
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem
第二阶段:加入 Skills(第 3-4 周)
当你发现某些流程重复时,写成 Skills:
mkdir -p ~/.claude/skills/my-workflow
创建 ~/.claude/skills/my-workflow/SKILL.md:
---
name: my-workflow
description: 我的工作流程
---
# My Workflow
我的工作流程...
第三阶段:组合使用(第 5+ 周)
MCP 负责外部调用,Skills 负责流程编排:
---
name: pr-review
---
PR 审查流程:
1. 用 GitHub MCP 获取 PR 信息
2. 检查代码风格
3. 检查测试覆盖
4. 生成审查报告
八、常见问题
Q1: MCP 和 Skills 能互相替代吗?
不能。职责完全不同:
- MCP = 连接外部世界
- Skills = 规定工作流程
Q2: 一定要组合使用吗?
不一定:
- 简单场景:只用 MCP 或只用 Skills
- 复杂场景:组合使用效果最好
Q3: 如何选择?
简单判断:
- 需要外部数据 → MCP
- 需要固定流程 → Skills
- 两者都需要 → 组合使用
Q4: 性能影响?
- MCP:每次调用消耗 tokens(传输上下文)
- Skills:渐进式加载,只在需要时读取
总结
核心要点
-
MCP = 外部服务的桥梁
- 连接数据库、API、SaaS
- 标准化协议
- 跨项目复用
-
Skills = 思考流程的模板
- 固定工作流程
- 统一输出风格
- 项目特定规范
-
组合使用是最佳实践
- MCP 负责"拿数据"
- Skills 负责"怎么用"
附录:快速参考
MCP 常用命令
claude mcp add <name> -- <command> # 添加
claude mcp list # 列出
claude mcp remove <name> # 删除
claude mcp info <name> # 详情
Skills 常用命令
/skills list # 列出
/skill-name # 使用
/skill info <name> # 详情
推荐资源
更多推荐

所有评论(0)