摘要

本文深入解析AI编程领域在2024-2026年的技术演进路径,重点对比MCP(Model Context Protocol)与Agent Skills两种标准的核心差异、适用场景及演进逻辑。通过数据分析和实战案例,揭示从"连接性"到"能力性"的转变趋势,为开发者提供技术选型参考。

关键词:MCP、Agent Skills、AI编程、智能体、Cursor、Claude Code、技术演进


一、背景:AI编程工具的一年蜕变

2024年11月,Anthropic发布了Model Context Protocol(MCP),引发了整个技术圈的关注。短短8个月内,MCP经历了三次重要版本迭代,从基础协议快速演进为企业级标准。截至2025年10月,热门的MCP注册表PulseMCP上已列出超过5,500个服务器,热门工具的月搜索量超过18万次。

然而,进入2026年后,技术风向发生了明显变化。社区讨论的焦点从MCP转向了Agent Skills。Cursor、Claude Code、GitHub Copilot等主流AI编程工具纷纷推出Skills功能,GitHub上的awesome-agent-skills库在短时间内获得了数千star。

这种转变并非简单的"技术更迭",而是反映了AI编程领域从"能连"向"能干"的必然升级。本文将从技术原理、应用场景、演进逻辑三个维度,深入解析这一变化背后的本质。


二、MCP:连接性的标准化协议

2.1 MCP的核心定义

MCP(Model Context Protocol,模型上下文协议)是一个开放标准,旨在构建AI助手与数据所在系统(包括内容存储库、业务工具和开发环境)之间的安全双向连接。

核心特点:

  1. 通用开放标准:取代碎片化的集成方式,用单一协议连接AI系统与数据源
  2. 架构简洁:开发者可通过MCP服务器暴露数据,或构建连接到这些服务器的AI应用程序(MCP客户端)
  3. 易于构建与扩展:开发者只需针对标准协议进行构建,无需为每个数据源维护单独的连接器
  4. 开源生态系统:提供规范、SDK及预构建服务器,鼓励社区协作

2.2 MCP的技术架构

MCP基于JSON-RPC 2.0规范,定义了三种主要消息类型:

1. 请求(Request)

{
  "jsonrpc": "2.0",
  "id": "unique-request-id",
  "method": "tools/list",
  "params": {}
}

2. 响应(Response)

{
  "jsonrpc": "2.0",
  "id": "unique-request-id",
  "result": {
    "tools": [...]
  }
}

3. 通知(Notification)

{
  "jsonrpc": "2.0",
  "method": "notifications/cancelled",
  "params": {
    "requestId": "unique-request-id",
    "reason": "User cancelled"
  }
}

2.3 MCP的应用场景

典型使用场景:

场景类型 说明 示例工具
文件系统操作 读取、写入、搜索文件 Local Filesystem MCP
数据库集成 查询、更新数据库 Postgres MCP、MySQL MCP
API调用 访问第三方服务 GitHub MCP、Slack MCP、Notion MCP
网页交互 浏览、截图、表单填写 Playwright MCP、Puppeteer MCP
云服务 管理云资源 AWS MCP、Google Cloud MCP

2.4 MCP市场数据

根据MCP Manager发布的《MCP Adoption Statistics 2025》报告:

  • 注册服务器数量:超过5,500个(截至2025年10月)
  • 月搜索量:最热门的20个MCP服务器每月产生180,000+次搜索
  • 远程服务器增长:自2025年5月以来增长近4倍
  • 企业级采用:80%的最热门服务器提供远程部署选项

热门MCP服务器排名(按月搜索量):

排名 MCP服务器 月搜索量 远程部署
1 Playwright MCP 35,000
2 Figma MCP 23,000
3 GitHub MCP 17,000
4 Context7 13,000
5 Cursor MCP 12,000
6 Supabase MCP 11,000
7 Notion MCP 9,500
8 n8n MCP 9,200
9 Zapier MCP 6,700
10 Jira MCP 6,100

三、Agent Skills:能力性的知识封装

3.1 Agent Skills的核心定义

Agent Skills是一个开放标准,旨在通过封装可重用的知识和脚本,为AI代理提供专门的扩展能力。简单来说,一个Skill就是一个"任务说明书"或"Sub-Agent"。

核心理念:

  1. 知识显性化:将团队的隐性知识(代码规范、排查流程、Review标准)转化为显性的文档(SOP)
  2. 延迟加载:元数据保持简短常驻上下文,正文仅在触发时动态注入,避免长期挤占Token
  3. 上下文注入:将规则实时注入推理上下文,直接影响模型决策
  4. 可复用性:Skill可以在不同项目、不同Agent之间共享

3.2 Skills的技术架构

SKILL.md文件格式:

---
name: code-reviewer
description: 对代码进行结构化审查,从架构合理性、异常处理、日志规范、安全风险等维度进行评估
---

# Code Reviewer Skill

## When to Use

当用户要求进行代码审查、代码评审或检查代码质量时,使用此Skill。

## Instructions

1. **架构维度**
   - 检查代码是否遵循团队的架构设计原则
   - 评估模块拆分是否合理,职责是否清晰
   - 检查是否存在循环依赖

2. **异常处理**
   - 所有可能抛出异常的地方是否都进行了try-catch
   - 异常信息是否清晰,是否暴露了敏感信息
   - 是否有合理的异常恢复策略

3. **日志规范**
   - 关键操作是否添加了日志
   - 日志级别使用是否正确(ERROR/WARN/INFO/DEBUG)
   - 日志内容是否包含足够的上下文信息

4. **安全风险**
   - 是否存在SQL注入、XSS等安全漏洞
   - 敏感信息(密码、Token)是否硬编码
   - 权限校验是否到位

## Output Format

输出格式:

[✓/✗] [类别] 具体问题描述


示例:

[✓] 架构 模块拆分清晰,职责单一
[✗] 异常处理 第42行缺少try-catch,可能导致程序崩溃

Skill目录结构:

.agents/
└── skills/
    └── code-reviewer/
        ├── SKILL.md           # 技能定义文件
        ├── scripts/          # 可选:辅助脚本
        │   ├── check-security.py
        │   └── validate-architecture.sh
        ├── references/       # 可选:参考资料
        │   └── coding-standards.md
        └── assets/           # 可选:资源文件
            └── template-config.json

3.3 Skills的工作原理

加载机制:

  1. 自动发现:Cursor启动时自动从Skill目录发现Skills
  2. 上下文触发:Agent根据对话上下文判断是否需要使用特定Skill
  3. 按需加载:只有真正需要时,才加载Skill的详细内容
  4. 动态注入:将Skill内容注入到LLM的推理上下文中

渐进式加载策略:

层级 内容 Token开销 触发时机
L1(元数据) name, description 20-50 tokens 常驻上下文
L2(正文) SKILL.md详细指令 500-2000 tokens 按需加载
L3(资源) 参考资料、历史案例 动态计算 通过RAG检索

3.4 Skills的应用场景

典型使用场景:

1. 代码质量与规范审查

name: java-code-reviewer
description: 对Java代码进行全面的代码审查,检查代码风格、潜在bug、性能问题等

2. 标准化开发流程

name: api-endpoint-generator
description: 生成符合团队规范的Spring Boot API接口代码,包括Controller、Service、Repository三层

3. 复杂故障排查

name: jvm-metrics-analyzer
description: 分析JVM监控指标,识别性能瓶颈、内存泄漏等问题
name: distributed-trace-finder
description: 根据分布式追踪数据定位慢请求、超时等问题

4. 测试驱动开发

name: tdd-guide
description: 指导用户按照TDD流程进行开发:先写测试用例,再实现功能

四、MCP vs Skills:核心区别深度对比

4.1 本质区别

维度 MCP Agent Skills
本质 标准化的工具接入协议 封装可重用知识和工作流
核心作用 解决"能不能连"的问题 解决"怎么用才对"的问题
技术定位 底层连接性协议 上层能力性标准
形象类比 USB-C接口 预装的专业App
确定性 高,严格定义的协议 低,灵活的指令集

4.2 架构差异

MCP架构:

┌─────────────┐
│   AI Agent  │
└──────┬──────┘
       │ JSON-RPC
       ↓
┌─────────────────────┐
│   MCP Protocol      │  ← 标准协议层
└──────────┬──────────┘
           │
    ┌──────┴──────┐
    │             │
┌───▼───┐   ┌───▼────┐
│  Server│   │ Server │
│  A     │   │   B    │
└───┬───┘   └───┬────┘
    │           │
┌───▼───┐   ┌───▼────┐
│Database│  │  File   │
│        │  │ System │
└───────┘   └────────┘

Skills架构:

┌─────────────┐
│   AI Agent  │
└──────┬──────┘
       │
       ↓ 上下文注入
┌─────────────────────┐
│   Skills Manager    │  ← 技能管理层
└──────────┬──────────┘
           │
    ┌──────┴──────┐
    │             │
┌───▼───┐   ┌───▼────┐
│Skill A │   │Skill B │
│(代码审查)│  │(故障排查)│
└───┬───┘   └───┬────┘
    │           │
    │   可能调用 MCP 工具
    ↓           ↓
┌─────────────┐ ┌─────────────┐
│  MCP Tools  │ │  MCP Tools  │
└─────────────┘ └─────────────┘

4.3 适用场景对比

场景 推荐方案 原因
连接数据库、读取文件 MCP 需要标准化协议保证可靠性和安全性
封装代码审查流程 Skills 需要灵活的知识传递和复杂逻辑编排
调用第三方API MCP 需要结构化的工具定义和参数验证
沉淀团队排查经验 Skills 需要将隐性知识显性化
大规模批量操作 MCP 需要高性能和稳定性
领域专家经验传递 Skills 需要自然语言定义的上下文

4.4 开发维护对比

维度 MCP Agent Skills
开发复杂度 高,需要编写Server、SDK、测试 低,只需写一个Markdown文件
学习曲线 陡峭,需要掌握协议规范 平缓,熟悉Markdown即可
适用人员 工程师、架构师 产品经理、业务专家、工程师
版本控制 需要管理依赖、兼容性 简单的文件版本管理
共享机制 通过Registry发布 通过Git仓库、项目目录共享
测试难度 需要编写集成测试 难以进行自动化测试

4.5 Token效率对比

早期MCP的问题:

加载所有工具定义需要消耗大量Token(可能数千甚至上万),导致上下文窗口浪费严重。

MCP的改进(2026年1月):

引入"渐进式发现"机制,Token开销下降85%。

Skills的天然优势:

  • L1(元数据)常驻上下文:20-50 tokens
  • L2(正文)按需加载:500-2000 tokens
  • L3(资源)通过RAG检索:动态计算

对比结论:

两者在Token效率上已接近,但Skills在知识密集型场景下更具优势。


五、为什么从MCP演进到Skills?

5.1 技术发展的必然规律

任何技术的发展都遵循"先解决’能不能’,再解决’好不好’"的规律:

第一阶段:可用性(Can it work?)
    ↓
第二阶段:可用性(Can it work well?)
    ↓
第三阶段:易用性(Can anyone use it?)

类比1:智能手机的演进

阶段 时间 核心突破
能打电话 2000年代初 基础通信功能
能上网 2005-2010 3G网络、浏览器
有App生态 2010年后 iOS App Store、Android Play

类比2:AI编程的演进

阶段 时间 核心突破
能连系统 2024 MCP标准化协议
能用工具 2024-2025 MCP服务器生态
有知识体系 2025-2026 Agent Skills封装经验

5.2 三大关键转变

1. 从技术到业务

  • MCP时代:参与者的主力是技术架构师、系统工程师
  • Skills时代:产品经理、业务专家、QA都能参与

实际影响:

# 以前:只有工程师能写
name: database-connector
# 需要熟悉JDBC、连接池、事务管理...

# 现在:业务专家也能写
name: 订单状态流转检查
# 只需要熟悉业务流程:
# 1. 订单创建 -> 待支付
# 2. 支付成功 -> 待发货
# 3. 发货 -> 已发货
# 4. 签收 -> 已完成

2. 从玩具到工具

  • 2024年:Demo满天飞,大家都在做"能用"的东西
  • 2025-2026年:实战落地,大家都在做"好用"的东西

对比:

维度 2024年(MCP) 2026年(Skills)
项目类型 50% Demo + 30% PoC + 20% 实战 10% Demo + 20% PoC + 70% 实战
用户反馈 “连上了,好厉害” “用起来很顺手”
关注点 技术可行性 业务价值、用户体验

3. 从个人到组织

  • MCP时代:这是工程师的工具,“我写了个好用的东西”
  • Skills时代:这是组织的资产,“我们建立了一个可复用的能力体系”

组织层面的变化:

个人能力:
  张三:写了一个GitHub MCP Server
  李四:写了一个Jira MCP Server

组织能力:
  公司A:
    - 代码审查Skill(全公司统一标准)
    - 故障排查Skill(沉淀10年经验)
    - 部署流程Skill(最佳实践封装)
  → 新员工通过Skills快速上手,AI也能像老员工一样工作

5.3 技术成熟度曲线(Hype Cycle)

根据Gartner的技术成熟度曲线,MCP和Skills处于不同阶段:

期望膨胀期
      ↗ MCP (2024)
     /
    /
  /
高峰期
    ↘ MCP (2024末-2025初)
     \
      \
  \
   \
    ↘
     泡沫破裂谷底期 (2025中)
         \
          \
           ↘ Skills (2025末-2026)
            \
             \
              ↘
               \
                稳步爬升期 (2026及以后)

解读:

  • MCP在2024年达到顶峰,随后进入理性期
  • Skills在MCP基础上出现,直接进入爬升期
  • 两者是接力关系,而非竞争关系

六、实战案例对比

6.1 场景:线上故障排查

使用MCP:

用户:帮我排查线上故障

AI Agent:
1. [MCP] 连接监控系统,获取最近5分钟的告警
2. [MCP] 查看Pod日志,找到ERROR级别日志
3. [MCP] 查询数据库,检查是否有死锁
4. [输出] 找到问题了:数据库连接池耗尽

问题:AI不知道应该先看什么、后看什么,
只是机械地收集数据,可能遗漏关键信息。

使用Skills:

用户:帮我排查线上故障

AI Agent:
[触发故障排查Skill]

1. [Skill指令] 首先检查业务指标是否有异常
   → [MCP] 查询监控系统,发现订单量下降30%

2. [Skill指令] 检查服务是否正常
   → [MCP] 查看Pod状态,发现3个Pod未就绪

3. [Skill指令] 检查最近部署记录
   → [MCP] 查询Git提交记录,发现15分钟前有新版本发布

4. [Skill指令] 回滚到上一版本
   → [MCP] 执行回滚命令

[输出] 故障原因:新版本引入bug,已回滚

问题:AI按照标准流程操作,快速定位并解决问题。

6.2 场景:代码审查

纯Prompt方式:

用户:帮我review这段代码

AI Agent:
(依赖通用代码审查知识,可能遗漏团队特定规范)

输出:
- 代码风格还可以
- 缺少异常处理
- 建议...

问题:不了解团队的具体规范,审查结果不标准。

使用Skills:

用户:帮我review这段代码

AI Agent:
[触发code-reviewer Skill]

[Skill指令]
1. 架构维度:检查是否符合DDD分层架构
   → 通过检查:Controller、Service、Repository三层清晰

2. 异常处理:检查是否遵循团队异常规范
   → 发现问题:第42行缺少try-catch

3. 日志规范:检查是否符合日志级别标准
   → 发现问题:第55行应该用WARN而不是INFO

4. 安全风险:检查是否有SQL注入风险
   → 通过检查:使用参数化查询

输出:
[✓] 架构 DDD分层架构清晰
[✗] 异常处理 第42行缺少try-catch
[✗] 日志规范 第55行应该用WARN而不是INFO
[✓] 安全风险 使用参数化查询,无SQL注入风险

问题:审查结果标准化,可追溯,可改进。

6.3 场景:API接口生成

纯Prompt方式:

用户:生成一个用户查询接口

AI Agent:
(依赖通用RESTful API知识)

输出:
GET /api/users/{id}
Response:
{
  "id": 1,
  "name": "张三"
}

问题:
- 不符合团队分页规范
- 缺少审计字段
- 错误码不标准

使用Skills:

用户:生成一个用户查询接口

AI Agent:
[触发api-endpoint-generator Skill]

[Skill指令]
1. 使用RESTful规范:GET /api/users
2. 支持分页:page、size参数
3. 返回标准响应结构:code、message、data
4. 包含审计字段:created_time、updated_time
5. 使用团队统一错误码

输出:
GET /api/users?page=1&size=10

Response:
{
  "code": 200,
  "message": "success",
  "data": {
    "total": 100,
    "page": 1,
    "size": 10,
    "list": [
      {
        "id": 1,
        "name": "张三",
        "createdTime": "2026-03-28T10:00:00Z",
        "updatedTime": "2026-03-28T10:00:00Z"
      }
    ]
  }
}

问题:生成的接口完全符合团队规范。

七、技术选型建议

7.1 选择MCP的场景

适合使用MCP的情况:

  1. 需要连接外部系统

    • 访问数据库、文件系统、API
    • 调用第三方服务(GitHub、Jira、Notion等)
  2. 需要高可靠性和稳定性

    • 生产环境的关键操作
    • 需要严格的参数验证和错误处理
  3. 需要共享基础设施

    • 多个Agent复用同一套连接
    • 企业级部署和监控需求
  4. 需要复杂工具编排

    • 多步骤的工作流
    • 需要状态管理和事务控制

示例:

# MCP服务器示例:数据库操作
@mcp.tool()
async def query_user(user_id: int) -> dict:
    """
    查询用户信息
    参数:
        user_id: 用户ID(必须大于0)
    返回:
        用户信息字典
    """
    if user_id <= 0:
        raise ValueError("用户ID必须大于0")

    result = await db.query(
        "SELECT * FROM users WHERE id = $1",
        user_id
    )
    return result

7.2 选择Skills的场景

适合使用Skills的情况:

  1. 需要封装领域知识

    • 代码审查规范
    • 故障排查流程
    • 业务规则说明
  2. 需要灵活的指令集

    • 复杂的决策逻辑
    • 需要根据上下文动态调整
    • 非确定性的探索任务
  3. 需要快速迭代

    • 业务规则频繁变化
    • 需要非技术人员参与维护
    • 快速验证想法
  4. 需要沉淀组织资产

    • 团队最佳实践
    • 历史故障库
    • 评审标准

示例:

---
name: 故障排查-订单服务
description: 对订单服务进行故障排查的标准流程
---

# 故障排查 Skill

## When to Use

当订单服务出现异常、报错、性能问题时触发。

## 排查步骤

1. **第一步:检查业务指标**
   - 订单成功率
   - 平均响应时间
   - 错误率

2. **第二步:检查服务健康度**
   - Pod状态(Running、Pending、Error)
   - 资源使用率(CPU、内存)
   - 线程池状态

3. **第三步:检查依赖服务**
   - 数据库连接状态
   - Redis连接状态
   - 消息队列积压情况

4. **第四步:查看日志**
   - ERROR级别日志
   - WARN级别日志
   - 慢查询日志

## 常见问题处理

| 问题 | 原因 | 解决方案 |
|------|------|----------|
| 订单创建失败 | 库存不足 | 检查Redis库存缓存 |
| 响应时间过长 | 数据库慢查询 | 检查慢查询日志 |
| Pod频繁重启 | OOM | 检查内存泄漏 |

## 输出格式

问题诊断:
[✓/✗] 业务指标:正常/异常
[✓/✗] 服务健康度:正常/异常
[✓/✗] 依赖服务:正常/异常

根本原因:
(具体原因描述)

解决方案:
(具体操作步骤)

7.3 结合使用的最佳实践

推荐架构:

┌─────────────────────────────────────────┐
│           AI Agent (Cursor)             │
└──────────────┬──────────────────────────┘
               │
      ┌────────┴────────┐
      │                 │
┌─────▼──────┐    ┌─────▼──────┐
│   Skills   │    │   Skills   │
│(故障排查)  │    │(代码审查)  │
└─────┬──────┘    └─────┬──────┘
      │                 │
      │    可能调用      │
      └────────┬────────┘
               ↓
┌─────────────────────────────────────────┐
│            MCP Protocol               │
└──────────────┬──────────────────────────┘
               │
    ┌──────────┴──────────┐
    │                     │
┌───▼────┐         ┌─────▼────┐
│Database │        │  Log     │
│  MCP   │        │ System   │
│Server  │        │  MCP     │
└────────┘        └──────────┘

最佳实践:

  1. Skills作为"大脑":提供知识、策略、流程
  2. MCP作为"手脚":执行具体操作、访问资源
  3. 通过Agent编排:Agent决定何时用Skills、何时用MCP

实战示例:

---
name: 代码审查 + 安全检查
description: 对代码进行结构化审查和安全检查
---

# Code Review & Security Skill

## When to Use

当用户要求进行代码审查时触发。

## 流程

1. 调用 `code-reviewer` Skill,进行架构、异常处理、日志审查

2. 调用 `security-checker` Skill,进行安全漏洞扫描
   → 使用 `security-tools MCP` 运行SAST工具
   → 使用 `dependency-check MCP` 检查依赖漏洞

3. 综合两个Skill的输出,生成最终报告

## 输出格式

=== 代码审查结果 ===
[架构审查]
[✓] …
[✗] …

=== 安全检查结果 ===
[漏洞扫描]
[✓] 发现0个高危漏洞
[依赖检查]
[✗] 发现1个过期依赖:org.json:json:20220924

=== 综合建议 ===
(汇总建议)


八、总结与展望

8.1 核心结论

  1. MCP和Skills不是竞争关系,而是互补关系

    • MCP解决"连接性"(Connectivity)
    • Skills解决"能力性"(Capability)
    • 两者配合使用才能发挥最大价值
  2. 从MCP到Skills是技术演进的自然结果

    • 不是技术路线的转向,而是技术深度的推进
    • 符合"先解决能不能,再解决好不好"的发展规律
    • 类似智能手机从"能上网"到"有App生态"的演进
  3. 三大转变标志着AI编程走向成熟

    • 从技术到业务:降低使用门槛
    • 从玩具到工具:注重实战价值
    • 从个人到组织:形成可复用的资产体系

8.2 技术选型原则

需求类型 推荐方案 核心原则
连接系统 MCP 用标准协议保证可靠性
封装经验 Skills 用自然语言传递知识
执行操作 MCP 用结构化工具保证准确性
灵活编排 Skills 用指令集实现复杂逻辑
快速迭代 Skills 降低开发成本
生产部署 MCP 企业级运维支持

一句话总结:要连系统用MCP,要沉淀知识用Skills,两手都要硬。

8.3 未来展望

1. MCP的发展方向

  • 更完善的工具链(Gateway、可观测性、安全审计)
  • 更多的企业级集成(SAP、Salesforce、ServiceNow等)
  • 更强的跨Agent互操作性

2. Skills的发展方向

  • 更丰富的Skill生态(GitHub Marketplace、官方Skill库)
  • 更智能的Skill发现和推荐机制
  • Skill之间的依赖管理和版本控制

3. 两者融合的趋势

MCP Protocol (底层)
    ↑
    │
Skills Standard (中层)
    ↑
    │
AI Agents (上层)

未来的趋势是:MCP成为基础设施,Skills成为应用生态,两者共同构成AI编程的完整体系。

8.4 给开发者的建议

  1. 不要过度纠结选择:MCP和Skills各有所长,根据场景选择
  2. 关注实战价值:不是"哪个更流行",而是"哪个更适合你的团队"
  3. 从小处着手:先写一个简单的MCP工具或Skill,验证价值后再扩展
  4. 持续学习:两个标准都在快速演进,保持关注
  5. 积极参与社区:分享你的Skills和MCP服务器,回馈社区

参考资料

  1. Anthropic - Introducing the Model Context Protocol
  2. Model Context Protocol Specification
  3. MCP Adoption Statistics 2025
  4. Cursor Docs - Agent Skills
  5. JavaGuide - 万字详解 Agent Skills
  6. MCP vs Agent Skills: Why They’re Different, Not Competiting
  7. awesome-agent-skills - GitHub

互动交流

你在项目中使用MCP还是Skills?遇到了哪些坑?有什么实战经验?

欢迎在评论区分享你的故事和观点!

如果你觉得这篇文章对你有帮助,请:

  • 🌟 收藏本文,方便后续查阅
  • 👍 点赞支持作者持续输出
  • 💬 转发给有需要的同事和朋友
  • 📌 关注我的CSDN,获取更多AI编程实战干货
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐