Agent Skills vs MCP 服务器 vs 规则 — 完整对比指南
理解扩展 AI 编程助手的三种方式。详细对比 Agent Skill、MCP 服务器和自定义规则——何时使用、如何配合。
William Wang — TokRepo & GEOScore AI 创始人,专注 AI 开发者工具和搜索可见性。
引言
现代 AI 编程助手如 Claude Code、Codex CLI 和 Gemini CLI 开箱即用就很强大。但它们的真正威力来自定制化——教它们你团队的规范、连接你的工具、自动化你的工作流。
扩展 AI 编程助手主要有三种方式:
- Agent Skills — Markdown 指令文件
- MCP 服务器 — AI 可以调用的 API 端点
- 自定义规则 — 简单的文本约束
每种方式服务于不同目的。选择正确的方式(或组合使用)可以极大提升你的效率。本指南详细说明何时使用哪种方式。
什么是 Agent Skill?
Agent Skill 是编码可复用工作流的 Markdown 文件。它们有结构化的格式,包含元数据(名称、描述、触发条件)和指令(目标、步骤、输出格式)。
工作原理
当你调用一个 Skill(通过斜杠命令或自然语言),AI 助手读取 Markdown 文件并按照指令执行。Skill 成为该任务上下文的一部分。
---
name: 部署检查器
description: 验证部署就绪状态
triggers: [/deploy-check]
---
## 步骤
1. 运行测试套件
2. 检查未提交的改动
3. 验证环境变量
4. 输出 go/no-go 报告
优势
- 零代码 — 任何人都能写 Markdown
- 版本控制 — 在仓库中管理,通过 PR 审查
- 可移植 — 跨不同 AI 助手通用
- 可组合 — 可以引用其他 Skill
局限
- 无外部 API 访问 — 不能直接调用第三方服务
- 无持久状态 — 每次调用从头开始
- 仅文本 — 执行时不能处理图片或二进制数据
什么是 MCP 服务器?
MCP(Model Context Protocol)服务器 是运行中的进程,通过标准化协议向 AI 助手暴露工具、资源和提示。把它理解为带 API 的插件。
工作原理
MCP 服务器在本地或远程运行,暴露 AI 助手可以调用的端点。AI 助手在启动时发现可用工具,按需调用。
{
"mcpServers": {
"database": {
"command": "npx",
"args": ["-y", "@your-org/db-mcp-server"],
"env": { "DATABASE_URL": "postgres://..." }
}
}
}
优势
- 完整 API 访问 — 连接数据库、API、云服务
- 持久状态 — 维护连接池和缓存
- 丰富数据类型 — 处理二进制数据、图片、结构化响应
- 实时 — 流式数据和事件响应
局限
- 需要代码 — 需要用 TypeScript/Python 等实现
- 运行时依赖 — 必须在运行中 AI 才能使用
- 配置开销 — 环境变量、认证令牌、安装设置
- 较难分享 — 依赖管理、安全考虑
什么是自定义规则?
自定义规则 是纯文本文件,为 AI 助手设置约束和规范。它们不编码工作流——它们塑造行为。
工作原理
AI 助手在启动时读取规则文件,应用到所有交互中。它们是始终生效的上下文,不是按需工具。
- Claude Code: 项目根目录的
CLAUDE.md - Cursor: 项目根目录的
.cursorrules - Codex CLI:
AGENTS.md(项目级规则部分)
## 规则
- 始终使用 TypeScript strict 模式
- 优先使用函数式组件而非类组件
- 使用 Tailwind CSS,禁止内联样式
- 提交前必须运行 `npm test`
- 永远不要修改 `vendor/` 目录中的文件
优势
- 始终生效 — 自动影响每次交互
- 简单 — 纯文本,无需结构
- 团队对齐 — 在所有团队成员间执行统一规范
- 零开销 — 无需安装、无需配置
局限
- 无逻辑 — 不能编码条件工作流
- 无触发器 — 始终开启,不能选择性调用
- 无工具 — 不能独立调用 API 或运行命令
- 容易冲突 — 规则之间可能矛盾
功能对比
| 特性 | Agent Skills | MCP 服务器 | 自定义规则 |
|---|---|---|---|
| 本质 | Markdown 指令 | 运行中的 API 进程 | 文本约束 |
| 复杂度 | 低 | 高 | 极低 |
| 需要代码? | 否 | 是 | 否 |
| 外部 API 访问 | 否(AI 可用工具) | 是(原生支持) | 否 |
| 激活方式 | 按需(斜杠命令/自然语言) | 始终可用 | 始终生效 |
| 可移植性 | 高(跨 AI 通用) | 中(MCP 标准) | 低(特定 AI) |
| 可分享性 | 容易(文件复制/TokRepo) | 中等(npm/pip) | 容易(文件复制) |
| 状态 | 无状态 | 有状态 | 无状态 |
| 最适合 | 工作流和任务 | 集成和数据 | 规范和护栏 |
何时用哪个?
使用这个决策框架:
当你想要...用 Agent Skill
- 自动化可重复的工作流 — 代码审查、部署检查、测试生成
- 分享最佳实践 — "我们团队是这样做 X 的"
- 教复杂的多步骤流程 — 每次都解释一遍太麻烦
- 赋能非技术用户 — 产品经理、设计师、文案
当你需要...用 MCP 服务器
- 连接外部服务 — 数据库、API、云平台
- 处理非文本数据 — 图片、二进制文件、结构化数据
- 维护持久连接 — 数据库连接池、WebSocket 流
- 实时响应 — 监控、通知、实时数据
当你想要...用自定义规则
- 执行编码标准 — 代码风格、命名规范
- 设定边界 — "永远不要修改生产配置"
- 提供项目上下文 — 架构决策、技术栈信息
- 对齐团队行为 — 确保开发者之间的一致性
它们可以配合使用吗?
当然——这才是真正威力所在。
示例:全栈部署工作流
- 自定义规则(
CLAUDE.md):- 我们的测试服务器在 staging.example.com - 部署前必须运行 lint - 使用语义化版本 - MCP 服务器(部署工具):
{ "deploy": { "command": "npx deploy-mcp-server" } }
暴露工具:deploy_to_staging()、check_deployment_status()、rollback() - Agent Skill(部署工作流):
## 步骤 1. 运行 lint 和测试(遵循项目规则) 2. 版本号升级(语义化,按规则) 3. 调用 deploy_to_staging()(MCP 工具) 4. 等待并检查 check_deployment_status() 5. 如果失败,调用 rollback()
Skill 编排工作流,调用 MCP 工具执行操作,遵守规则中的规范。每一层做它最擅长的事。
"正确"的组合方式
| 关注点 | 使用层 |
|---|---|
| 怎么做 | Agent Skill |
| 用什么工具 | MCP 服务器 |
| 遵守什么约束 | 自定义规则 |
开始使用
准备好尝试每种方式了吗?从这里开始:
- Agent Skills:浏览 TokRepo 的 Skills 合集 — 10 秒安装:
npx tokrepo install code-review-skill - MCP 服务器:查看 MCP Servers 合集 — 配置预构建的服务器
- 自定义规则:在项目根目录创建
CLAUDE.md或.cursorrules
常见问题
可以把 Skill 转换成 MCP 服务器吗?
通常不需要。Skill 和 MCP 服务器服务于不同目的。如果你的 Skill 需要外部 API 访问,配合 MCP 服务器使用而不是重写。
Skill 比 MCP 服务器慢吗?
Skill 会增加 AI 提示词的上下文,可能稍微增加处理时间。MCP 服务器调用是直接的函数调用。实际上差异可以忽略——AI 的思考时间占主导。
同一个项目可以三种都用吗?
可以,而且推荐这样做。大多数成熟项目有:
CLAUDE.md中 5-10 条规则.claude/commands/中 2-5 个 Skill- 1-3 个 MCP 服务器用于外部集成
在哪里找到现成的 Skill 和 MCP 服务器?
TokRepo 有 500+ 开源 Agent Skill、MCP 服务器、提示词和工作流。通过命令行搜索、安装和贡献:
npx tokrepo search "你的用例"