Claude Code Skills、插件和MCP服务器对比:你应该用哪个?
MCP 服务器:工具访问
MCP 服务器是一个运行中的程序,它使用“模型上下文协议”(Model Context Protocol,简称 MCP)——这是 Anthropic 制定的开放标准,用来把 AI 代理连接到外部系统。MCP 服务器让 Claude Code 能做它本来做不到的事:读数据库、触发 GitHub Action、控制浏览器、调用外部 API。
Claude Code 与 MCP 服务器交互的方式,就是调用该服务器暴露出来的工具。举个例子:一个 Postgres MCP 服务器可能会暴露 query_database、list_tables、describe_table 等工具;一个 GitHub MCP 服务器则可能暴露 create_issue、get_pull_request、list_files_in_repo 等。
MCP 服务器不做什么?它不会教 AI 代理怎么高效地使用自己。比如,代理之前没见过你具体的数据库表结构,那 Postgres MCP 服务器虽然给了它运行查询的能力,但代理还得自己想清楚:该查什么语句?你的表叫什么名?你的代码仓库里有什么模式?这些知识得从别的地方来。
什么时候用 MCP 服务器?
- 你需要把 Claude Code 连到一个特定的外部系统
- 代理的使用场景足够简单,不需要显式的流程指导
- 你追求通用兼容性——MCP 服务器能配合 Claude Code、Cursor、Windsurf 以及任何其他支持 MCP 的主机
- 你自己是个开发者,愿意配置 JSON 和排查连接问题
如何配置(在 claude_desktop_config.json 里,或者用 /mcp 命令):
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://..."
]
}
}
}
Skills:代理智能
Skill 是一套指令集,存储在仓库中(文件名叫 SKILL.md),它教 Claude Code 如何正确且可重复地完成某件事。
Skills不会给智能体新增工具权限——它们只是约束智能体如何使用已有的工具。一条典型的Skill包含:
- 触发条件(这条技能应该在什么时候激活?)
- 要遵循的步骤模式
- 常见错误避免指南
- 输出格式要求
举个例子,一条「代码审查」Skill可以要求智能体:读取当前diff中所有变更的文件、对照特定检查清单逐一评估、并按特定结构整理审查结论——而不是根据训练数据做泛泛的审查。
Skills解决的是「代码里没有的知识」问题。你的项目有团队约定、代码范式、决策依据,这些都在你同事的脑子里。一条Skill把这些约定编码到智能体在关键时刻能读取的位置。
Skills做不到的事:让智能体访问外部系统。一条写着「查询数据库获取当前用户订单」的Skill,如果没有数据库连接(对应MCP服务器)根本跑不起来。
什么时候用Skill
- 你希望Claude Code反复、一致地执行某个特定工作流
- 代码库中存在一种模式,但光看代码不容易发现
- 你需要智能体了解项目的工作方式,而不仅仅是它包含什么代码
- 你想把过去踩过的坑经验编码进去,避免智能体再犯
安装Skill
# 从官方市场安装
claude skill add context7/docs-lookup
# 从URL安装
claude skill add https://github.com/yourorg/skills/tree/main/database-conventions
Plugins: Skill + MCP + 生命周期管理
Plugin是Skill、MCP服务器(或CLI)以及生命周期钩子的打包组合——从市场当做一个整体安装。不需要:
- 分别查找和配置MCP服务器
- 查找并安装一条告诉智能体如何用该服务器的Skill
- 编写生命周期钩子来在会话开始时验证连接
你需要做的只是:
- 安装Plugin
生命周期钩子尤其重要。一个设计良好的Plugin会包含SessionStart钩子,在第一次提问前就验证后端连接是否有效。如果连接出问题,你第一时间就能发现——而不是等到会话进行到一半、查询突然失败时才抓狂。