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 Client AI 编辑器内置的客户端 Cursor、Copilot 等
Tool 具体的功能单元 fetch_test_casesread_file
Resource 可访问的数据源 文件、数据库、API

1.5 代码示例

MCP Server 定义工具:

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

AI 直接调用:

javascript 复制代码
// 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_commit Git 操作

二、Rule - 行为约束规则

2.1 什么是 Rule?

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

2.2 核心价值

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

2.3 Rule 类型

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

2.4 Rule 示例

markdown 复制代码
# 编码规范 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 示例

markdown 复制代码
# 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 场景一:代码审查

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

5.2 场景二:API 开发

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

5.3 场景三:故障排查

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

5.4 场景四:技术方案设计

步骤 使用机制 具体内容
1 Skill 加载 system-design 技能包
2 Rule 应用架构设计规范
3 MCP 调用 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 编辑器,提升开发效率和代码质量。


参考资料

相关推荐
一切皆是因缘际会37 分钟前
从概率拟合到内生心智:2026 下一代 AI 架构演进与落地实践
人工智能·深度学习·算法·架构
科研前沿1 小时前
镜像视界 CameraGraph™+多智能体:构建自感知自决策的全域空间认知网络技术方案
大数据·运维·人工智能·数码相机·计算机视觉
爱学习的张大1 小时前
具身智能论文问答(2):Diffusion Policy
人工智能
AI科技星1 小时前
全域数学·72分册·射影原本 无穷维射影几何卷细化子目录【乖乖数学】
人工智能·线性代数·算法·机器学习·数学建模·数据挖掘·量子计算
Chef_Chen1 小时前
论文解读:MemOS首次把记忆变成大模型的一等公民资源,Scaling Law迎来第三条曲线
人工智能·agent·memory
风落无尘1 小时前
《智能重生:从垃圾堆到AI工程师》——第四章 变化的艺术
人工智能·线性代数·算法
发哥来了1 小时前
AI视频生成模型选型指南:五大核心维度对比评测
大数据·人工智能·机器学习·ai·aigc
发哥来了1 小时前
AI驱动生产线的实际落地:一个东莞厂商的技术选型实录
大数据·人工智能·机器学习·ai·aigc
AC赳赳老秦1 小时前
知识产权辅助:用 OpenClaw 批量生成专利交底书 / 软著申请材料,自动校验格式与内容合规性
java·人工智能·python·算法·elasticsearch·deepseek·openclaw
AI科技2 小时前
原因大揭秘:为什么别人的编曲伴奏做得又快又好,2026年度甄选5款AI编曲软件汇总
人工智能