AI 编辑器扩展机制详解:MCP、Rule、Skills

AI 编辑器扩展机制详解:MCP、Rule、Skills

本文系统性地介绍 AI 编辑器的三大扩展机制,帮助开发者理解如何通过这些机制扩展 AI 能力、规范 AI 行为、封装 AI 技能。


目录


概述

现代 AI 编辑器(如 Cursor、GitHub Copilot、Codebuddy 等)不仅是代码补全工具,更是一个可扩展的智能开发平台。通过三大扩展机制,开发者可以:

机制作用类比
MCP让 AI 能连接外部系统给 AI 装"手脚"
Rule让 AI 按规范工作给 AI 立"规矩"
Skills让 AI 拥有专业能力给 AI 教"本事"
┌─────────────────────────────────────────────────────────────┐
│                      AI 编辑器扩展生态                        │
├─────────────────┬─────────────────┬─────────────────────────┤
│      MCP        │      Rule       │        Skills           │
│   外部工具连接    │   行为约束规则   │      能力技能包          │
│   (执行层)       │   (约束层)       │      (能力层)           │
└─────────────────┴─────────────────┴─────────────────────────┘

一、MCP - 工具连接协议

1.1 什么是 MCP?

MCP (Model Context Protocol) 是一个开放协议,让 AI 助手能够直接调用外部工具和数据源。

1.2 核心价值

在没有 MCP 之前:

用户 → AI → "帮我获取测试用例"
              ↓
        AI 只能说:请运行命令 `npx ts-node index.ts fetch`
              ↓
        用户手动执行命令
              ↓
        用户把结果粘贴给 AI
              ↓
        AI 分析结果

有了 MCP 之后:

用户 → AI → "帮我获取测试用例"
              ↓
        AI 直接调用 MCP 工具 fetch_test_cases()
              ↓
        MCP Server 执行操作,返回结构化数据
              ↓
        AI 直接拿到结果,继续处理

1.3 架构图

┌─────────────┐     MCP 协议      ┌─────────────┐
│  AI 编辑器   │ ←──────────────→ │ MCP Server  │
│ (Cursor等)  │   JSON-RPC 通信   │ (你的工具)   │
└─────────────┘                   └─────────────┘
       │                                 │
       │  调用工具                        │  执行操作
       ↓                                 ↓
  "fetch_test_cases"              读取文件/调用API
                                         │
                                         ↓
                                    返回结果

1.4 核心组件

组件作用示例
MCP Server提供工具的服务端自定义的工具服务
MCP ClientAI 编辑器内置的客户端Cursor、Copilot 等
Tool具体的功能单元fetch_test_casesread_file
Resource可访问的数据源文件、数据库、API

1.5 代码示例

MCP Server 定义工具:

// mcp-server.ts
server.setRequestHandler(ListToolsRequestSchema, async () => {
  return {
    tools: [
      {
        name: 'fetch_test_cases',
        description: '从后端接口获取测试用例',
        inputSchema: {
          type: 'object',
          properties: {
            use_mock: { type: 'boolean' }
          }
        }
      }
    ]
  }
})

AI 直接调用:

// AI 自动调用,无需用户干预
fetch_test_cases({ use_mock: true })

// 返回结构化数据
{
  "success": true,
  "data": [...],
  "total": 5
}

1.6 常见 MCP 工具

工具类别示例工具用途
文件操作read_file, write_file读写文件
代码执行execute_command执行命令
数据库query_database查询数据库
API 调用fetch_api调用外部 API
版本控制git_status, git_commitGit 操作

二、Rule - 行为约束规则

2.1 什么是 Rule?

Rule 是约束 AI 行为的规则,让 AI 按特定方式和规范工作。

2.2 核心价值

用户请求 ──→ AI 检查 Rule ──→ 按 Rule 约束执行
                    ↓
            "必须先写测试"
            "代码风格要符合 xxx"
            "禁止使用某些 API"

2.3 Rule 类型

类型触发方式说明
always始终生效全局约束,每次交互都生效
manual手动触发用户明确要求时才生效
requested按需调用AI 根据上下文决定是否应用

2.4 Rule 示例

# 编码规范 Rule

## 代码风格
- 所有函数必须有 JSDoc 注释
- 禁止使用 any 类型
- 变量命名使用 camelCase
- 常量使用 UPPER_SNAKE_CASE

## 安全规则
- 禁止硬编码密钥和敏感信息
- SQL 查询必须参数化
- 用户输入必须校验和转义

## 工作流规则
- 修改代码前先写测试
- 提交前检查 lint 错误
- 重要修改需要代码审查

## 禁止事项
- 不要删除现有注释
- 不要修改 .env 文件
- 不要直接修改 node_modules

2.5 Rule 文件结构

项目根目录/
├── .cursor/
│   └── rules/           # Cursor 规则目录
│       ├── coding.md    # 编码规范
│       ├── security.md  # 安全规范
│       └── workflow.md  # 工作流规范
├── .github/
│   └── copilot-instructions.md  # GitHub Copilot 规则
└── .codebuddy/
    └── rules/           # Codebuddy 规则目录

2.6 Rule 作用范围

范围说明示例
用户级对所有项目生效个人编码偏好
项目级只对当前项目生效项目代码规范
文件级只对特定文件生效组件开发规范

三、Skills - 能力技能包

3.1 什么是 Skills?

Skills 是封装好的能力包,包含 Prompt 模板、工具调用和领域知识,让 AI 拥有特定领域的专业能力。

3.2 核心价值

用户请求 ──→ AI 加载 Skill ──→ 使用 Skill 中的能力处理
                    ↓
            Prompt 模板
            工具调用
            领域知识

3.3 Skills 组成要素

要素说明示例
Prompt 模板预定义的指令模板代码审查清单、设计模板
工具调用自动调用的工具lint、test、format
领域知识专业领域的知识最佳实践、常见问题
输出格式标准化的输出结构Markdown、JSON

3.4 Skills 示例

# Skill: code-review

## 触发条件
用户说"帮我审查代码"或"review this code"时激活

## 执行步骤
1. 读取目标代码文件
2. 执行 lint 检查
3. 执行单元测试
4. 按清单逐项审查:
   - 代码风格
   - 安全问题
   - 性能问题
   - 可维护性
5. 输出分级报告

## 审查清单
### 安全性
- [ ] 无 SQL 注入风险
- [ ] 无 XSS 漏洞
- [ ] 敏感数据已脱敏

### 性能
- [ ] 无 N+1 查询
- [ ] 无内存泄漏风险
- [ ] 算法复杂度合理

### 可维护性
- [ ] 函数职责单一
- [ ] 命名语义清晰
- [ ] 注释恰当

## 输出格式
### Blocker(必须修复)
- 问题 1:描述 + 位置 + 修复建议

### Major(重要问题)
- 问题 1:描述 + 位置 + 修复建议

### Minor(小问题)
- 问题 1:描述 + 位置 + 修复建议

3.5 常见 Skills 类型

类型说明示例 Skill
开发类代码开发相关组件生成、API 设计
质量类代码质量保障代码审查、故障排查
文档类文档编写相关API 文档、README 生成
流程类开发流程相关Git 工作流、CI/CD 配置
分析类代码分析相关性能分析、依赖分析

四、三者关系与协作

4.1 协作流程图

┌──────────────────────────────────────────────────────────────┐
│                        用户请求                               │
│                    "帮我审查这段代码"                          │
└─────────────────────────┬────────────────────────────────────┘
                          ↓
┌──────────────────────────────────────────────────────────────┐
│  Rule (约束层)                                                │
│  ┌────────────────────────────────────────────────────────┐  │
│  │ • "审查时必须检查安全问题"                                │  │
│  │ • "输出必须按 Blocker/Major/Minor 分级"                  │  │
│  │ • "每个问题必须包含位置和修复建议"                        │  │
│  └────────────────────────────────────────────────────────┘  │
└─────────────────────────┬────────────────────────────────────┘
                          ↓
┌──────────────────────────────────────────────────────────────┐
│  Skill (能力层)                                               │
│  ┌────────────────────────────────────────────────────────┐  │
│  │ 加载 code-review 技能包                                  │  │
│  │ • Prompt: 如何审查代码的指令                             │  │
│  │ • 知识: 常见代码问题清单                                 │  │
│  │ • 步骤: 逐个检查点执行                                   │  │
│  └────────────────────────────────────────────────────────┘  │
└─────────────────────────┬────────────────────────────────────┘
                          ↓
┌──────────────────────────────────────────────────────────────┐
│  MCP (执行层)                                                 │
│  ┌────────────────────────────────────────────────────────┐  │
│  │ 调用工具执行具体操作                                      │  │
│  │ • read_file: 读取代码文件                               │  │
│  │ • read_lints: 获取 lint 错误                            │  │
│  │ • execute_command: 执行测试                             │  │
│  └────────────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────────────┘
                          ↓
┌──────────────────────────────────────────────────────────────┐
│                        输出结果                               │
│  • Blocker: 1 个(SQL 注入风险)                              │
│  • Major: 2 个(缺少错误处理)                                 │
│  • Minor: 3 个(命名不规范)                                  │
└──────────────────────────────────────────────────────────────┘

4.2 职责划分

机制职责回答的问题
Skill决定做什么“要完成什么任务?”
Rule决定怎么做“要遵循什么规范?”
MCP负责具体执行“如何执行操作?”

4.3 类比理解

机制现实类比AI 编辑器类比
MCP程序员的电脑和工具AI 操作外部系统的能力
Rule公司的规章制度AI 必须遵守的规范
Skills程序员的专业技能AI 的领域专业能力

4.4 配合示例

场景:开发一个 Vue 组件

1. Skill: 加载 "Vue 组件开发" 技能包
   - 获取组件模板
   - 获取最佳实践

2. Rule: 应用项目规范
   - 组件命名规范
   - Props 定义规范
   - 样式规范

3. MCP: 执行具体操作
   - read_file: 读取现有组件
   - write_file: 创建新组件
   - execute_command: 运行 lint

五、实际应用场景

5.1 场景一:代码审查

步骤使用机制具体内容
1Skill加载 code-review 技能包
2Rule应用安全规范、代码风格规范
3MCP调用 read_fileread_lintsexecute_command

5.2 场景二:API 开发

步骤使用机制具体内容
1Skill加载 api-design 技能包
2Rule应用 API 设计规范、安全规范
3MCP调用 write_fileexecute_command

5.3 场景三:故障排查

步骤使用机制具体内容
1Skill加载 debug 技能包
2Rule应用排查流程规范
3MCP调用 search_contentexecute_commandread_file

5.4 场景四:技术方案设计

步骤使用机制具体内容
1Skill加载 system-design 技能包
2Rule应用架构设计规范
3MCP调用 search_contentread_filewrite_file

六、最佳实践

6.1 MCP 最佳实践

实践说明
工具单一职责每个工具只做一件事
明确输入输出使用 TypeScript 定义清晰的类型
错误处理所有工具都应有完善的错误处理
文档完善每个工具都应有清晰的描述和使用说明
安全控制敏感操作需要用户确认

6.2 Rule 最佳实践

实践说明
分类管理按类型(编码、安全、流程)分类存放
简洁明确规则表述要清晰,避免歧义
适度约束不要过度约束,保留灵活性
版本控制Rule 文件应纳入 Git 版本控制
团队共识Rule 应是团队共同认可的规范

6.3 Skills 最佳实践

实践说明
场景明确每个 Skill 针对明确的场景
步骤清晰执行步骤应清晰可循
输出标准输出格式应标准化
可复用设计时应考虑复用性
持续优化根据使用反馈持续改进

6.4 组合使用最佳实践

┌─────────────────────────────────────────────────────────────┐
│                     推荐的组合策略                           │
├─────────────────────────────────────────────────────────────┤
│  1. 先定义 Rule,建立规范基础                                │
│  2. 再封装 Skills,沉淀团队能力                              │
│  3. 最后开发 MCP,连接必要系统                               │
│  4. 三者配合,形成完整的 AI 辅助开发体系                      │
└─────────────────────────────────────────────────────────────┘

七、总结

7.1 一句话总结

机制一句话
MCP给 AI 装"手脚",让它能操作外部系统
Rule给 AI 立"规矩",让它按规范工作
Skills给 AI 教"本事",让它拥有专业能力

7.2 协作关系

Skill 决定做什么 → Rule 决定怎么做 → MCP 负责具体执行

7.3 价值体现

机制价值
MCP扩展 AI 能力边界,让它能做更多事
Rule规范 AI 行为,确保输出符合预期
Skills封装团队能力,提升开发效率和一致性

7.4 未来展望

随着 AI 编辑器的发展,三大机制将更加成熟:

  • MCP:更多标准化工具,更便捷的接入方式
  • Rule:更智能的上下文感知,更灵活的约束机制
  • Skills:更丰富的技能生态,更精准的场景匹配

掌握这三大机制,将帮助开发者更好地利用 AI 编辑器,提升开发效率和代码质量。


参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值