MCP协议——全称Model Context Protocol——是这一两年AI生态里被反复提到的热词。有人说它是“AI界的USB-C接口”,统一接头,外设即插即用;也有人说这只看似方便的接口,背后正藏着一场安全危机。我本职是做AI应用集成的,接触MCP的本地端、远程端和第三方Server已经有一段时间,今天不打算把MCP吹成神,也不准备把它贬成雷,只把它拆开揉碎,聊聊它到底是怎么工作的,为什么大家会把它比作USB-C接口,以及我眼中最值得警惕的六大安全风险究竟藏在哪些环节。不管你是正在做Agent开发的工程师、想接MCP工具的产品经理,还是单纯关心AI安全的路人,这篇应该都能让你少走弯路。
1. 没MCP之前,AI工具链到底有多乱
1.1 过去每个AI应用都要写一坨“胶水代码”
我先从MCP出现之前的情况讲起。2023年到2024年上半年,大模型能力虽然已经很强,但落地到真实业务特别别扭。你想让聊天机器人查天气、查数据库、发邮件、操作办公软件,结果就是每个功能都得单独调一遍function calling。模型厂商给了一套“Tools”机制,你得把每个工具定义成一份JSON Schema,告诉模型“这个函数叫什么、参数是什么、什么时候调用”。听起来不复杂,实际上工作量全部堆在工程侧。
举个例子,你给A模型写了套“查订单+发消息”的工具,等公司换成了B模型,这套工具基本要重写。更麻烦的是,每个项目组都在重复发明轮子:做客服的写一套CRM对接,做运维的写一套日志查询,做内容处理又写一套文件上传下载。工具之间完全孤立,互相不认,模型也没办法跨系统调度。这种状态下,AI应用越来越像一堆旧数码设备:每台设备都有自己的充电口、数据线,你要是换台电脑,就得重新买一堆线材和转接头。
MCP解决的就是这个根子上的乱象。它把“外部能力应该怎么暴露给AI应用”这件事做成了统一标准。从此,模型不需要知道你的CRM系统内部怎么实现,也不需要为每个数据库单独写连接器,它只需要对接MCP Server,这套Server按协议暴露能力,AI应用直接“读说明书”就能用。
1.2 MCP核心三件套:Host、Client、Server分别负责什么
要理解MCP,必须先分清它说的三个角色,很多人容易在这里绕晕。
Host是用户直接接触的AI应用,比如Claude桌面端、Cursor这类IDE,或者你自己写的聊天机器人界面。Client是Host里的通信组件,类似操作系统的总线/驱动层,负责跟MCP Server建立连接、发请求、收响应。Server则是工具和数据源的提供方,把某个业务能力包装成标准接口暴露出来。
打个比方:Host是电脑主机,Server是外接U盘或打印机,Client是操作系统里负责驱动外设那部分逻辑。你不要把Client理解成另一个独立程序,它本质上是Host内部用来“和外部世界说话”的桥梁。一个Host可以同时连接好几个MCP Server,所以你的Agent生态里出现多少个Server都是允许的。
我在实际看官方SDK时,对这三者的边界体验最深:不同Server各自独立,彼此不通信。如果你希望两个工具协同工作,决定权始终在Host里的模型手上。也就是说,MCP不是让Server之间互联的协议,而是让AI应用对接各种外设的统一协议。这个定位非常重要,它意味着安全的问责点其实集中在Host应用的调度逻辑上。
1.3 MCP到底在哪个层面“统一”了AI生态
对普通开发者来说,最直观的体验是:以前每个服务都要“适配模型”,现在只需要“适配协议”。
模型不再关心用户想连的是哪个CRM系统,因为CRM一旦包装成MCP Server,只暴露Tools、Resources、Prompts三类东西,Host里的Client统一读取即可。模型端只要有能力理解工具描述和参数,就可以像调用普通函数一样调用外部能力。
这样一来,统一发生在“工具暴露层”和“客户端接入层”,而不是具体的业务实现。MCP的Server可以用Python写、用TypeScript写、甚至用一个脚本启动,只要遵循同一套JSON-RPC消息标准,Host就能识别。不同语言的SDK也都在追平协议规范,你不用被技术栈绑死。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. MCP的工作流程与技术原理
2.1 为什么底层选了JSON-RPC 2.0
MCP协议底层没有再造一个轮子,而是选了JSON-RPC 2.0这套轻量远程调用规范。JSON是一种几乎所有语言都能解析的文本格式,RPC模型天然适合客户端发请求、服务端返
