MCP vs Skill:详解哪个更nb

在 Claude Code、Cursor 等 AI Agent 工具的使用过程中,MCP(Model Context Protocol)与 Skill(Agent Skill)是两个高频出现的能力扩展概念。二者看似都是为了增强 AI 的能力边界,但在设计哲学、技术架构和适用场景上有着本质区别。本文将从这三个维度,彻底厘清两者的核心差异、存在价值及选型原则。

一、一句话核心区分

MCP 和 Skill 是 AI Agent 能力扩展的两大核心支柱,定位截然不同:

  • MCP 解决「连接」问题:让 AI 突破自身数据局限,访问外部世界的工具、数据源与服务。
  • Skill 解决「方法论」问题:为 AI 注入专业的流程知识,教 AI 如何标准化完成特定任务。

Anthropic 官方给出了精准定义:

MCP connects Claude to external services and data sources. Skills provide procedural knowledge—instructions for how to complete specific tasks or workflows.

用一个生动的比喻概括:MCP 是 AI 的「手」,负责触碰外部世界;Skill 是 AI 的「技能书」,负责指导操作方法。两者的配合是 AI 完成复杂任务的关键——比如 MCP 让 AI 连接数据库,Skill 教 AI 如何分析查询结果并生成报告。

二、MCP:AI 应用的「通用 USB-C 接口」

1. 定义与核心定位

MCP 是 Anthropic 于 2024 年 11 月发布的开源协议,旨在标准化 AI 应用与外部系统的交互方式。其核心价值是实现「一次对接,多端复用」,就像 USB-C 接口可以连接各种外设一样,MCP 为 AI 提供了访问外部工具的通用标准。

需要明确的是,MCP 并非 Claude 专属。截至 2025 年初,该协议已被 OpenAI、Google、Microsoft 等主流平台及 Zed、Replit 等开发工具采纳,生态内开源 MCP 连接器数量已超 1000 个。

2. 技术架构

MCP 基于 JSON-RPC 2.0 协议构建,采用「客户端-主机-服务器」三层架构:

┌─────────────────────────────────────────────────────────┐
│                        Host                              │
│              (Claude Desktop / Cursor)                   │
│                                                          │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐      │
│  │   Client    │  │   Client    │  │   Client    │      │
│  │  (GitHub)   │  │ (Postgres)  │  │  (Sentry)   │      │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘      │
└─────────┼────────────────┼────────────────┼─────────────┘
          │                │                │
          ▼                ▼                ▼
    ┌───────────┐    ┌───────────┐    ┌───────────┐
    │MCP Server │    │MCP Server │    │MCP Server │
    │ (GitHub)  │    │(Postgres) │    │ (Sentry)  │
    └───────────┘    └───────────┘    └───────────┘

  • Host:用户直接交互的终端应用,如 Claude Desktop、Cursor。
  • Client:Host 内负责与特定外部系统通信的组件。
  • Server:连接外部系统的桥梁,对接数据库、API、本地文件等资源。

3. 三大核心原语

MCP 定义了 Server 可暴露的三类核心能力,覆盖 AI 与外部交互的全场景:

Tools(工具)

模型控制

提供 AI 可执行的函数,完成操作任务

执行 SQL 查询的

query_database

函数

Resources(资源)

应用控制

为 AI 提供上下文数据源

加载本地

README.md

文件作为参考

Prompts(提示)

用户控制

预定义提示模板,结构化交互流程

代码审查的

code_review

模板

4. 与 Function Calling 的关系

很多人会混淆 MCP 和 OpenAI 的 Function Calling,二者是层级互补的关系:

  • Function Calling:是 LLM 的基础能力,负责将自然语言需求转化为结构化的函数调用指令,解决「决定调用什么工具」的问题。
  • MCP:是 Function Calling 之上的协议层,负责标准化工具的「发现、调用、结果返回」流程,解决「怎么调用工具」的问题。

两者的协作流程如下:

用户输入 → LLM (Function Calling) → 生成工具调用指令 → MCP Protocol → MCP Server 执行 → 返回结果给 LLM

5. 传输方式与适用场景

MCP 支持两种主流传输方式,适配不同的部署需求:

Stdio

本地进程交互

适合需要系统级访问的工具,如本地脚本、文件读写

HTTP/SSE

远程服务交互

适合云服务对接,如 GitHub、Sentry、Notion 等

6. 代价与价值

MCP 虽能大幅扩展 AI 能力,但也存在明显的使用成本:

Token 消耗高

工具定义会持久占用上下文窗口,多 Server 连接时可能撑满窗口导致幻觉

维护成本高

需要保障 Server 持久连接,处理网络中断、认证过期等问题

安全风险高

第三方 Server 可能存在 prompt injection 风险,需谨慎使用

核心价值:标准化与可复用性。同一个 MCP Server 可在多个 AI 应用中复用,且支持运行时动态发现工具,摆脱了「工具能力写死在代码里」的局限。

三、Skill:AI Agent 的「智能技能手册」

1. 定义与核心定位

Skill(Agent Skill)是 Anth

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

内容包含: 1.后端八股大全:多一句没有少一句不行的最精简八股整理,完全可以应付校招八股拷打! 2.速成项目话术:目前有魔改苍穹外卖项目话术(额外扩展了很多技术亮点),能速成拿去面试,后面会更新agent开发等等热门高质量项目话术 3.智力题超详细题解汇总; 4.面试时非技术问题话术整理,绝对震惊面试官一年; 5.算法lc hot100全题系列题解:绝对通俗易懂。 欢迎订阅!

全部评论
Skill 是Anthropic 生态专属特性?
点赞 回复 分享
发布于 04-10 14:56 北京
读着读着就收费了
点赞 回复 分享
发布于 02-25 18:10 广东
根据agent类型选择
点赞 回复 分享
发布于 01-28 19:39 陕西
二者的协同使用,是构建强大 AI Agent 的关键,很厉害的
点赞 回复 分享
发布于 01-28 17:49 湖南

相关推荐

04-11 17:34
已编辑
重庆大学 Java
面试时间:3.30上午11点面试时长:1h5min部门:到家的搜索工程组?(没听清)自我介绍1、完整讲一下你的 RAG 项目(离线 + 在线 + 架构)2、重叠大小分块是自己做的吗?还是用的什么工具?3、向量化用的模型是什么,还记得吗?然后这个模型是你自己部署的吗?还是调的LLM接口?4、专门做过什么策略来提升召回率和准确率?如何评测召回率和准确率,有没有做过数字化的评估?5、如果说你的 embedding 质量比较高的话,那这个评测确实没有问题,但如果说就是向量化的效果没那么好的话,那这个方案好像也并不是很行得通,因为它可能生成向量的时候就会有问题,这个有考虑过吗?然后你有没有想办法去……(接着面试官说,算了不问了)6、关键字检索是怎么做的?7、你可以说一下在线的部分,就是用户从一个请求,到它最终拿到结果的一个过程?8、你刚才说意图节点,也就是意图识别的时候去识别它关联的那个叶子节点,我想问一下你这块是怎么实现的?9、你刚才说首先有多路召回,多路检索,然后每一路检索里面会有一个粗排,然后这些结果拿到之后可能还会有一个细排。然后想问一下你这两个排序大概都是怎么做的?然后如果是用模型排的话,你这分别是用什么模型?然后你知道这些模型的检索排序的原理吗?10、重排序用的什么模型?11、你可以再总结一下,就是从你这个离线到在线的过程中有多少次和大模型的交互吗?分别简述一下。12、我看你这个里面会有那个模型的,多模型的降级策略和熔断机制,你可以简单说一下,你现在是有哪几个模型之间可以降级?然后以及是怎么实现的?13、你这个降级是手动降级吗?还是自动降级?14、那这个自动降级是怎么感知的?比如说从模型里是刚才三个状态,它们三个状态之间流转是什么样子的?就什么情况下就把它变为异常了?然后什么情况下会让它自动恢复正常?还是就是怎么做的这块?15、看你这个里面还支持了那个 MCP 的工具调用,然后你可以说一下你现在支持哪些那个MCP,然后以及这些 MCP 是怎么和模型交互,然后大概的实现原理吗?(这一部分不太会,就扯到MCP与function calling的区别了)16、那function calling的话是怎么调呢?是 RPC调还是HTTP调?还是怎么调用的?17、看你这边那个会话,大概是怎么存储的?可以说一下吗?18、然后就是你这个会话就是大概是一个什么样的存储结构呢?可以说一下这个 MySQL表的存储的结构,就是哪几个关键字段?19、就比如说一个用户可能在一个会话里面和模型会有多轮的这种对话。就比如说问了一个问题,模型回答一次,然后我再问一个问题,他再回答一次,再问,再回答。这样的结构在数据库里面是怎么存的?是一条还是多条?20、然后就是你这个 message 表大概是一个什么结构?就是有哪几个关键字段?21、看你这个里面用到了那个Redis,然后你可以解释一下那个 Redis 的缓存穿透、缓存击穿以及缓存雪崩吗?以及具体解决思路?22、然后那个布隆过滤器,你可以说一下布隆过滤器的实现原理吗?算法题:合并区间23、然后我们谈一下,就是之前就是那个AI coding的那个面试题,然后你可以简单说一下你这边实现的思路吗?(这个是美团面试前发的AI Coding的题目,让设计一个限流中间件)24、我再问一下,就是你认为它的这个Lua脚本能满足那个需求吗?(要求同一个用户60秒内只能发送60个请求)这里面试官理解的是滑动的时间窗口,但是我实现的是固定的时间窗口,题目中只说了“时间窗口”,然后面试官就说你这个实现好像也没有问题。反问1、业务2、具体工作3、建议做项目其实可以更深入一点,而不是说只是作为一个 API 的调用方,就比如说这些模型,因为其实我们日常就是也会和这些模型交互之类的,你除了知道调它这个API,你可能需要更多的去了解一下,就是我为什么要这么设计,然后以及我这个模型具体能做什么东西,它大概是怎么实现的,有了这些可能对你未来会更有帮助,然后职业生涯可能更具有那个什么。(录音没录到,估计是想表达“更具有竞争力”这个意思吧)感受:面试官问的很细,能感觉出来面试官真的很专业,但是自己对于大模型相关底层原理的理解显然不够深入,MCP具体的工具调用也没来得及研究,属于半吊子水平也是第一次拿RAG项目来面试,这个面试官真的让我学到了很多,也让我知道了自己诸多的不足以及还需要提升的地方。整体面试体验感很好,面试官也不会特意刁难,我表达的很含糊的地方或者不会的地方,就是一句“行”帮我带过,感谢面试官现在还没消息,大概率是寄了,下去好好沉淀了二编:4.1晚上6点约二面。
查看26道真题和解析
点赞 评论 收藏
分享
评论
13
22
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务