2.3 MCP 插件与 Skills
Tip
理解MCP协议和Skills的作用,学会给AI装配外部能力和专业知识,让通用AI变成领域专家。
1. 为什么要学这个?
你可能会发现:AI虽然很聪明,但它不知道你公司的业务流程,不了解你的代码规范,也不会你们团队的特殊工作方式。
想象你雇了一个天才实习生。
- 没有培训:他很聪明,但不知道公司的报销流程、代码规范、客户沟通话术。每次都要你从头教一遍。
- 有培训手册:你给他一本《员工手册》,里面写清楚了所有流程、规范、最佳实践。他需要的时候自己翻阅,不需要你重复教。
关键问题:
- AI怎么访问互联网查最新资料?
- AI怎么学会我们公司的特殊流程?
- AI怎么记住我们团队的代码规范?
- 怎么让AI只在需要时加载这些知识,不浪费Token?
MCP和Skills就是给AI的外部能力和培训手册。
2. 核心概念
2.1 MCP - 模型上下文协议
技术定义:MCP(Model Context Protocol)是一个开放协议,让AI能够安全地连接外部数据源和工具。
就像USB接口。
- 作用:统一的接口标准,让AI能连接数据库、文件系统、API等外部资源。
- 工作方式:
- 你安装MCP服务器(如数据库连接器)
- AI通过MCP协议调用这个服务器
- 服务器返回数据给AI
- AI基于数据生成代码或回答
MCP解决的问题:让AI能"看到"外部世界的数据。
2.2 Skills - 专业知识包
技术定义:Skills是包含SKILL.md文件的目录,里面有指令、脚本、参考资料,让AI动态加载专业知识。
就像员工培训手册。
- 本质:Skills不是工具,而是给AI阅读的知识库。
- 核心机制:渐进式披露(Progressive Disclosure)
- 第1层:AI启动时只加载Skill的名称和描述
- 第2层:需要时加载SKILL.md的完整内容
- 第3层:需要时加载Skill目录下的其他参考文件
Skills解决的问题:让通用AI变成领域专家,而且只在需要时加载知识,不浪费Token。
2.3 渐进式披露机制
这是Skills最核心的设计理念。
想象一本百科全书。
- 传统方式:把整本书都塞给AI,占用大量Token。
- 渐进式披露:
- 先给AI看目录(Skill名称和描述)
- AI觉得相关,再翻开对应章节(SKILL.md)
- 需要更多细节,再看附录(参考文件)
graph TD
A[用户任务] --> B{AI判断需要哪个Skill?}
B --> C[第1层:读取所有Skill的名称和描述]
C --> D{找到相关Skill}
D -->|是| E[第2层:读取SKILL.md完整内容]
D -->|否| F[用通用知识处理]
E --> G{需要更多细节?}
G -->|是| H[第3层:读取参考文件]
G -->|否| I[开始执行任务]
H --> I
style A fill:#e1f5ff
style C fill:#fff3e0
style E fill:#f3e5f5
style H fill:#e8f5e9
style I fill:#e8f5e9
3. Skill的结构
3.1 最简单的Skill
一个Skill至少需要一个SKILL.md文件:
---
name: PDF处理专家
description: 帮助处理PDF文件,包括读取、填写表单、提取内容
---
# PDF处理指南
## 核心能力
- 读取PDF内容
- 填写PDF表单
- 提取PDF中的文本和图片
## 使用方法
当用户需要处理PDF时,按以下步骤:
1. 使用pdf_reader.py脚本读取PDF
2. 分析PDF结构
3. 根据用户需求执行操作
## 参考资料
- 详细的表单填写指南见 forms.md
- PDF结构说明见 reference.md
3.2 完整的Skill目录结构
pdf-skill/
├── SKILL.md # 核心文件,包含元数据和主要指令
├── forms.md # 表单填写的详细指南
├── reference.md # PDF技术参考
└── scripts/
└── pdf_reader.py # 可执行的Python脚本
3.3 SKILL.md的三个部分
1. 元数据(YAML Frontmatter)
---
name: PDF处理专家
description: 帮助处理PDF文件,包括读取、填写表单、提取内容
---
这部分在AI启动时就加载到系统提示词中,让AI知道有这个Skill。
2. 主体内容
当AI判断需要这个Skill时,才会读取这部分。包含:
- 核心能力说明
- 使用方法
- 最佳实践
- 常见问题
3. 引用的其他文件
SKILL.md可以引用同目录下的其他文件,AI会根据需要读取:
- 参考文档(如
reference.md) - 可执行脚本(如
pdf_reader.py)
4. Skills vs MCP的区别
| 🎯 对比项 | MCP | Skills |
|---|---|---|
| 本质 | 连接外部工具和数据源 | 提供专业知识和指令 |
| 作用 | 让AI能"做事"(查数据库、调API) | 让AI"懂行"(知道怎么做) |
| 内容 | 代码、API接口 | 文档、指令、最佳实践 |
| 加载方式 | 实时调用外部服务 | 渐进式披露,按需读取 |
| 举例 | PostgreSQL连接器 | PDF处理专家知识包 |
简单理解:
- MCP:给AI装手脚,让它能操作外部世界
- Skills:给AI培训,让它知道怎么做事
5. 怎么使用?
📦 使用MCP服务器
# 在Cursor设置中添加MCP服务器配置
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost:5432/db"
}
}
}
}
⚙️ 创建自己的Skill
步骤1:创建Skill目录
mkdir my-company-workflow
cd my-company-workflow
步骤2:编写SKILL.md
---
name: 公司代码规范专家
description: 了解我们公司的代码规范、提交流程、Code Review标准
---
# 公司代码规范
## 命名规范
- 组件:PascalCase (UserCard.tsx)
- 函数:camelCase (getUserData)
- 常量:UPPER_SNAKE_CASE (API_URL)
## 提交规范
- 格式:type(scope): description
- 类型:feat/fix/docs/style/refactor/test/chore
## Code Review检查清单
1. 是否有单元测试?
2. 是否符合命名规范?
3. 是否有必要的注释?
4. 是否处理了错误情况?
详细的Code Review指南见 code-review.md
步骤3:添加参考文件(可选)
# 创建详细的Code Review指南
touch code-review.md
步骤4:放到Skills目录
# 将整个目录放到 ~/.claude/skills/ 或项目的 skills/ 目录
✨ 让AI使用Skill
AI会自动判断何时使用Skill,你不需要手动触发。
# 示例对话
你:"帮我Review这段代码"
# AI的内部流程:
1. 看到"Review代码"关键词
2. 发现有"公司代码规范专家"Skill
3. 读取SKILL.md
4. 发现需要更多细节
5. 读取code-review.md
6. 按照公司规范进行Review
6. 实际应用场景
🏢 场景1:公司业务流程
---
name: 客户服务流程专家
description: 了解公司的客户服务流程、常见问题处理方法
---
# 客户服务标准流程
## 投诉处理
1. 24小时内响应
2. 记录问题到CRM系统
3. 分级处理(P0/P1/P2)
4. 48小时内给出解决方案
## 常见问题话术
见 faq-responses.md
📊 场景2:数据分析规范
---
name: 数据分析专家
description: 了解公司的数据分析规范、SQL编写标准、报表格式
---
# 数据分析规范
## SQL编写规范
- 使用CTE而不是子查询
- 必须加WHERE条件限制时间范围
- 禁止SELECT *
## 报表格式
- 标题:14号黑体
- 数据:12号宋体
- 图表:使用公司配色方案
详细的SQL最佳实践见 sql-best-practices.md
🎨 场景3:设计规范
---
name: UI设计规范专家
description: 了解公司的设计系统、组件库使用规范、品牌指南
---
# UI设计规范
## 颜色规范
- 主色:#1890ff
- 辅助色:#52c41a
- 警告色:#faad14
- 错误色:#f5222d
## 间距规范
- 基础单位:8px
- 组件间距:16px/24px/32px
## 组件使用
必须使用shadcn/ui组件库,禁止自己造轮子
详见 component-guide.md
7. Skills的代码执行能力
Skills不仅能提供知识,还能包含可执行代码。
为什么需要代码?
有些操作用AI生成Token很低效,用代码执行更快更准确:
- 排序大列表
- 解析PDF表单
- 批量处理文件
示例:PDF表单提取
# scripts/extract_form_fields.py
import PyPDF2
def extract_form_fields(pdf_path):
"""提取PDF中的所有表单字段"""
with open(pdf_path, 'rb') as file:
reader = PyPDF2.PdfReader(file)
fields = reader.get_form_text_fields()
return fields
if __name__ == "__main__":
import sys
fields = extract_form_fields(sys.argv[1])
print(fields)
AI可以直接运行这个脚本,而不需要把PDF内容加载到上下文中。
8. 避坑指南
| ❌ 不要这样做 | ✅ 应该这样做 | 为什么 |
|---|---|---|
| 把所有知识都塞进SKILL.md | 拆分成多个文件,按需引用 | 利用渐进式披露,节省Token |
| Skill描述写得太模糊 | 描述要精准,包含关键词 | AI靠描述判断是否使用Skill |
| 安装不可信的Skill | 只用可信来源的Skill | Skill可能包含恶意代码 |
| 把敏感信息写进Skill | 用环境变量存储密码 | 防止泄露 |
| Skill内容过时不更新 | 定期review和更新Skill | 过时的知识会误导AI |
9. 真实案例
Story
2025年,Skills让文档编辑能力提升10倍
2025年10月,Anthropic推出Skills功能,并用它增强了Claude的文档编辑能力。以前,Claude虽然能理解PDF,但无法直接填写PDF表单。通过创建一个PDF Skill,包含表单填写指令和Python脚本,Claude获得了这个新能力。关键是,这个Skill只在用户需要处理PDF时才加载,不会浪费Token。某企业使用这个Skill后,PDF表单处理效率提升了10倍,从平均10分钟降到1分钟。
Vibe心法:创建Skill时用渐进式披露——先写名称和描述(第1层),再写核心指令(第2层),最后添加详细参考(第3层)。
10. 本章小结
- 🔌 MCP是接口:让AI能连接外部工具和数据源(数据库、API)
- 📚 Skills是知识库:让AI学会专业知识和流程,从通用AI变成领域专家
- 📊 渐进式披露:3层加载机制,只在需要时加载知识,节省Token
- 🏗️ Skill结构:SKILL.md(核心)+参考文件+可执行脚本
- 🎯 应用场景:公司流程、代码规范、数据分析、设计规范
- 💻 代码执行:Skills可以包含Python/Bash脚本,让AI执行确定性任务
- 🔒 安全第一:只安装可信Skill,审查代码,用环境变量存储敏感信息