MCP与SKILLS
如果只有MCP,那么每次都需要自己手动使用context7提供的两个工具来获取最新文档,而如果写好skill文档,那么就可以自动执行获取你需要的最新文档的重复性任务。
MCP与SKill





代码示例:一个简单的 MCP 服务器
from mcp.server.fastmcp import FastMCP
# 创建 MCP 服务器
mcp = FastMCP("我的工具服务")
# 定义一个工具:两数相加
@mcp.tool()
def add(a: int, b: int) -> int:
"""将两个数字相加"""
return a + b
# 定义一个资源:个性化问候
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""获取个性化问候语"""
return f"你好, {name}!"
# 启动服务器
mcp.run(transport="streamable-http")


代码示例:一个 SKILL.md 文件
---
name: 代码审查技能
description: 当用户要求"审查代码"、"检查这段代码"或提到"code review"时使用此技能
version: 0.1.0
---
## 代码审查流程
当审查代码时,请遵循以下步骤:
### 1. 安全性检查
- 检查是否存在 SQL 注入风险
- 检查是否有硬编码的敏感信息
- 验证输入是否经过适当处理
### 2. 代码质量
- 函数是否单一职责
- 变量命名是否清晰
- 是否有重复代码
### 3. 输出格式
使用以下模板输出审查结果:
**安全性**: ✅/⚠️/❌
**可维护性**: ✅/⚠️/❌
**建议**: [具体改进建议]










如果只有MCP,那么每次都需要自己手动使用context7提供的两个工具来获取最新文档,而如果写好skill文档,那么就可以自动执行获取你需要的最新文档的重复性任务。
创建一个配套的 Skill
我们可以创建一个 Skill 来规范这个流程:
```yaml
---
name: 智能文档查询
description: 当用户询问任何编程库的用法、API、最佳实践时使用此技能
version: 0.1.0
allowed-tools: [
"mcp__context7__resolve-library-id",
"mcp__context7__get-library-docs"
]
---
## 文档查询流程
当用户询问某个库的使用方法时:
### 步骤 1:解析库名
调用 `mcp__context7__resolve-library-id`
- 输入用户提到的库名
- 获取 Context7 兼容的 library ID
### 步骤 2:获取文档
调用 `mcp__context7__get-library-docs`
- 使用上一步获得的 library ID
- 如果用户有具体问题,设置 topic 参数聚焦相关内容
### 步骤 3:整理输出
按以下格式呈现结果:
**库名**: [名称] ([版本])
**官方来源**: [文档链接]
### 核心用法
[整理后的关键代码示例]
### 注意事项
[从文档中提取的重要提示]



总结

1. 核心定义与区别
|
特性 |
Model Context Protocol (MCP) |
Agent Skill (智能体技能) |
|
性质 |
通信协议/连接层。一套用于规定 Agent 如何与 Tool/服务之间交互的统一标准。 |
知识包装/逻辑层。一组组织化的指令、脚本和资源文件夹,用于赋予 Agent 特定领域的专业能力。 |
|
关注点 |
侧重于**“如何连接”**。解决不同工具接口不统一、代码重复开发的问题。 |
侧重于**“如何执行”**。侧重于传授复杂的程序化知识和组织上下文。 |
|
结构 |
服务器-客户端架构。包含 MCP Server(提供工具/资源)和 MCP Client(Agent)。 |
文件/文件夹架构。核心是一个包含 |
|
机制 |
统一接口规范,支持 Tool、Resource 和 Prompt 三种服务类型。 |
渐进式披露 (Progressive Disclosure)。根据任务需要分层次加载信息,以节省上下文空间。 |
2. 优缺点对比
Model Context Protocol (MCP)
• 优点:
◦ 标准化: 消除不同厂商工具接口的差异,实现“一次开发,到处调用”。
◦ 解耦性: Server 与 Client 可以运行在不同环境,通过标准协议交互。
◦ 生态丰富: 允许 Agent 轻松集成日益增长的第三方工具生态系统。
• 缺点:
◦ 逻辑较薄: 它主要提供工具的“访问权”,而不一定包含如何使用这些工具完成复杂、多步骤任务的高级指令。
Agent Skill (智能体技能)
• 优点:
◦ 上下文效率: 通过“渐进式披露”,智能体只在需要时读取详细文件,支持绑定几乎无限量的背景知识。
◦ 确定性强: 允许内置 Python 脚本等代码,通过确定性执行而非 Token 生成来处理排序、数据提取等任务。
◦ 可组合与移植: 像共享知识库一样分享智能体能力,将通用智能体快速转化为专业智能体。
• 缺点:
◦ 安全风险: 恶意的 Skill 可能包含危险脚本,引导 Agent 执行非预期操作,需要从信任源安装并进行审计。
3. 适用场景
• MCP 适合:
◦ 跨平台工具调用: 需要访问 CRM 系统、数据库、Slack 或外部 API 服务时。
◦ 构建开放工具生态: 开发一套可以被多个不同 Agent 架构通用的工具集时。
• Agent Skill 适合:
◦ 领域专业任务: 如“PDF 表单填写”,需要特定的操作规程和代码支持。
◦ 复杂工作流传承: 将人类的 SOP(标准作业程序)或复杂的代码编辑逻辑打包给 Agent。
◦ 本地环境操作: 配合 Claude Code 等工具执行本地文件系统任务和代码调试。
4. 相互结合使用
根据文档,Agent Skill 可以与 MCP 形成互补关系,构建更强大的系统:
• 能力互补: MCP 负责将 Agent 连接到外部软件和工具,而 Skill 负责教导 Agent 如何在复杂的工作流中使用这些工具。
• Skill 封装 MCP 调用: 开发者可以编写一个 Skill,其 SKILL.md 指令中包含调用特定 MCP Server 工具的逻辑。Skill 提供了“策略和方法”,而 MCP 提供了“执行路径”。
• 动态加载: Agent 可以根据任务,先通过 Skill 发现某种复杂操作的“秘籍”,然后通过 MCP 协议去调用外部服务器上的资源来完成该秘籍中的步骤。
比喻理解: MCP 就像是标准的电源插座和数据线接口,无论你插入什么设备(工具),只要符合规格就能通电联网;而 Agent Skill 则更像是一本专业的操作手册和配套的工具箱驱动,它告诉 Agent 如何利用现有的设备(通过 MCP 连接的工具)去完成一项精密的任务
更多推荐




所有评论(0)