一.MCP概念

      在介绍MCP之前,我们先来看一个日常问题想象一下,你在用ChatGPT这样的AI助手,你问它:"帮我看看今天的日程安排"。AI回答:"抱歉,我看不到你的日程表。为什么呢?因为AI就像一个关在房间里的超级聪明的人:它知识很丰富,它推理能力很强;但它完全接触不到外面的世界(你的文件、数据库、日历...)。但是拥有了MCP之后,AI就可以通过MCP来读取你的文件啦!

      MCP的全称是model context protocol,即模型上下文协议。拆开来理解就是Model(模型):指的是AI模型;Context(上下文):AI需要的背景、数据、工具;而Protocol(协议):标准的交流规则。

      那么MCP既然在AI领域如此之火,它的用途又是什么呢?简单来说,MCP就是能够让大模型更好地使用各类工具的一个协议。而MCP的出现,就等于是让大模型拥有了使用各类外部工具的能力。MCP 让 Agent 从「只会聊天」进化成了「能真正干活」,这是一切上层能力的前提。听到这里很多小伙伴可能就跃跃欲试,想要使用MCP。但是别急,在使用MCP之前,我们需要知道以下概念

  • MCP Host: 相当于大管家,可以用酒店的前台经理比喻,负责接待客人(用户),管理房间(Client),确保安全(权限控制),协调服务(调度)。我们常用claude Desktop当;
  • MCP Server它和我们日常生活中的Server无太大关系,它只是一个程序,和手机上的应用没啥太大的区别,不过这个程序的执行是符合MCP协议的
  • MCP Client: 相当于一个邮递员,负责把AI的请求送给Server,并把Server的回复带回来。注意一个Client只连接一个Server,它们之间隔离安全,互不干扰。Client自己不能主动出现,得由Host创建。

对三者关系进行总结:

Host是大脑(决策者),Client是手脚(执行者),Server是工具(能力提供者)

二.MCP 和 Agent Skill 的区别

      最近 AI 智能化火得一塌糊涂,大模型领域的各种新概念也层出不穷。作为开发者,你可能好不容易刚把 Agent Skill的 Function Calling 玩明白,Anthropic 这边又搞出了一个 MCP。这时候,我相信 90% 的开发者心里都会冒出同一个嘀咕:

“这不都是让 AI 去调外部 API 吗?我用 LangChain 或者是 Spring AI 的 Tool/Skill 已经能让 Agent 读写数据库、翻看 GitHub 了,为什么还需要一个劳什子 MCP?这难道不是换个马甲重复造轮子吗?”

如果你也有这个困惑,恭喜你,你陷入了当前 AI 开发中最典型的一个概念误区:混淆了“功能实现(What)”与“连接协议(How)”。

      首先我们需要明白的是,MCP 和 Agent Skill 不是同类概念,不是竞争关系,而是互补的。如果把 Agent 当成刚入职的“AI 实习生”,那它们俩的分工清晰得就像 HR 发的入职大礼包:

      MCP 解决的是:“实习生怎么获得工具”,即解决的是「Agent 怎么获得外部能力」,它把数据库、API、文件系统这些外部工具标准化封装成服务,Agent 通过 MCP 就能查数据、调接口、读写文件。

      与之相对应的是,Skill 解决的是:“实习生拿到工具后,按什么步骤干活”, 光有工具不会用也是白搭。所以它解决的是「Agent 拿到这些能力之后,该按什么步骤、什么标准来完成任务」,它把完成某类工作的知识和流程打包成可复用的模块。

💡 大白话秒记公式:

  • MCP 是给 Agent 配的高配电脑和正版软件(提供硬核能力)。

  • Skill 是给 Agent 发的员工手册和标准 SOP(提供业务脑子)。

      看到这里,可能又有写 Prompt 的老司机要掀桌子了:“听你吹了半天 Skill,这不就是我平时写的那些长篇大论的 System Prompt 吗?套个马甲又来割韭菜?”

      还真不是。 如果把普通的 Prompt 比作你贴在电脑前的死便签,那 Skill 就是一套具备“主观能动性”的动态插件系统。它和普通 Prompt 最大的区别,在于以下两个逆天的工程化设计:

  • 第一,Skill 能被 Agent 自动发现。Agent 启动的时候会扫描可用的 Skill 列表,当用户提了一个任务,Agent 自己判断哪个 Skill 和这个任务相关,主动去加载,不需要你手动告诉它「用 code-review 这个 Skill」。

  • 第二,Skill 用了一套渐进式加载的机制来节省 context window。启动时只加载每个 Skill 的名字和一句话描述,大概每个 Skill 只占 30 到 50 个 token;只有当 Agent 判断某个 Skill 和当前任务相关时,才会加载完整的指令正文;执行过程中需要用到模板或参考文档时,才会进一步加载这些资源文件。这样就避免了把所有 Skill 的内容一股脑塞进上下文,浪费宝贵的 context window 空间。

      所以Skill的粒度比MCP工具粗得多。MCP的粒度是单个函数调用,比如 read_filequery_database;Skill 的粒度是一个完整的工作流程,比如「代码审查」「数据分析报告」,内部可能涉及好几个步骤、调用好几个工具。

      打个通俗的比方: MCP 工具是“扳手”、“螺丝刀”和“电钻”,躺在工具箱里随时待命; 而 Skill 是一位“高级维修工”,他脑子里有完整的修车流程图(SOP),他会自己根据坏车的情况(自动发现),从工具箱里挑选合适的扳手(调用 MCP)来搞定战斗。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐