一文读懂MCP协议:大模型AI-Agent的USB-C接口

一文读懂MCP协议:大模型AI-Agent的USB-C接口

March 19, 2024·
bexzhang
,
osli

MCP协议分层架构示意图
MCP协议分层架构示意图

在AI重构传媒行业价值链的时代,内容生产、分发与用户触达的效能,正从单点效率升级为算法驱动的全局智能协同。然而,海量数据孤岛、多平台接口的烟囱式开发等瓶颈,仍在制约技术资源的AI化融合。

在AI重构传媒行业价值链的时代,内容生产、分发与用户触达的效能,正从单点效率升级为算法驱动的全局智能协同。然而,海量数据孤岛、多平台接口的烟囱式开发等瓶颈,仍在制约技术资源的AI化融合。

本文深入拆解MCP协议,从技术架构到行业场景化实践,为您揭示如何用"一次连接,全局调用"的下一代接口标准,释放传媒数据资产的真正潜能——让技术资源不再成为创意与效率的枷锁,而是驱动增长的新引擎。

【本文由@bexzhang主笔, @osli修订, 来源:腾讯云智慧传媒 】

一、MCP起源

背景与痛点

AI应用进入深水区后,模型与外部数据/工具的集成呈现"烟囱式开发"(每个模型需单独对接不同数据源),导致开发成本高、安全性差、扩展困难。AI 模型和已有系统集成发展缓慢,一方面是企业级的数据很敏感,大多数企业都要很长的时间和流程来动;另一个方面是缺少一个开放的、通用的、有共识的协议标准。

市面上虽然有一些框架支持 Agent 开发,例如 LangChain Tools, LlamaIndex 或者是 Vercel AI SDK,需编写大量定制代码,难以规模化。

LangChain 和 LlamaIndex 整体发展混乱,代码的抽象层次过高,在实际开发中,只要业务一旦开始复杂,糟糕的代码设计带来了非常糟糕的编程体验。项目过于追求商业化了,忽略了整体生态的建设。

Vercel AI SDK 代码抽象的比较好,但是也只是对于前端 UI 结合和部分 AI 功能的封装还不错,最大的问题是和 Nextjs 绑定太深了,对其它的框架和语言支持度不够。

诞生与目标

提出者:Anthropic公司(Claude的开发者)于2024年11月底发布并开源。https://www.anthropic.com/news/model-context-protocol

核心目标:建立类似USB-C的标准化协议,统一AI模型与外部资源的交互接口,实现"一次集成,处处运行"。解决当前 AI 模型因数据孤岛限制而无法充分发挥潜力的难题,MCP 使得 AI 应用能够安全地访问和操作本地及远程数据,为 AI 应用提供了连接万物的接口。

MCP对比图
MCP对比图

技术演进时间线:

时间阶段关键事件
2023年前原始阶段每个AI需独立开发Function Call接口
2023年萌芽期LangChain等框架尝试通用化工具调用
2024年11月协议诞生Anthropic开源MCP 1.0版本
2025年Q1生态爆发GitHub出现200+第三方MCP服务器实现

二、MCP的概念和优势

MCP定义

MCP是一种开放协议,通过标准化语言和接口,实现AI模型与外部数据源/工具的无缝交互,核心功能包括:

  • 统一翻译器:将不同数据源的API转换为模型可理解的标准化请求。
  • 安全连接层:支持本地与远程资源访问,数据无需上传至云端。

这个协议的发布最好机会应该是属于 OpenAI 的,如果 OpenAI 刚发布 GPT 时就推动协议,相信大家都不会拒绝,但是 OpenAI 变成了 CloseAI,只发布了一个封闭的 GPTs,这种需要主导和共识的标准协议一般很难社区自发形成,一般由行业巨头来主导。

通俗类比概念

“万能遥控器"比喻

想象每个企业系统都是不同品牌的智能家电(电视、空调、音响),原本每个设备都需要专属遥控器(定制接口)。MCP就像一个预置了所有家电协议的万能遥控器:AI助手拿着这个遥控器,既能让"电视"播放监控视频(调用安防系统),也能让"空调"调节数据温度(调整服务器负载),还能让"音响"播报业务报告(触发语音合成)——所有操作都通过统一按键(标准化指令)完成,无需再为每个设备寻找专用遥控器。

“AI的USB-C接口"比喻

官方将MCP比作AI领域的USB-C接口。类比来看,不同的AI助手就像不同的电子设备,以前每个设备需要不同的数据线连不同的外设(比如老式手机数据线各不相同),而MCP提供了一个统一的细窄接口,让AI能够即插即用各种外设。例如,通过MCP,一个AI助手今天可以连U盘(数据库),明天插打印机(邮件系统),后天接显示器(报告生成)——接口都一样,只是功能不同。就像USB-C让我们少了无数转换头和线缆,MCP也让AI集成少了无数专有API和脚本。对于终端用户来说,这意味着AI助手将变得更加多才多艺且使用方便,因为背后复杂的连接都被这个看不见的"USB-C"标准屏蔽掉了。

AI的USB-C接口
AI的USB-C接口

MCP的优势

MCP(Model Context Protocol)是专为大语言模型(LLMs)应用设计的上下文协议,针对LLM应用中常见的数据孤岛与工具集成痛点,MCP提供以下关键能力:

  • 生态-MCP 提供很多现成的插件, AI 可以直接使用。
  • 统一性-不限制于特定的 AI 模型,任何支持 MCP 的模型都可以灵活切换。
  • 数据安全-可以自行设计接口确定传输哪些数据。

MCP 与 Function Calling 的区别

MCP(Model Context Protocol),模型上下文协议Function Calling,函数调用
这两种技术都旨在增强 AI 模型与外部数据的交互能力,但 MCP 不止可以增强 AI 模型,还可以是其他的应用系统。
MCP的"原语”(Prompts/Resources/Tools)设计支持更复杂的交互流程,而传统Function Calling仅为单向请求。
MCP并非"不限制于特定AI模型”,而是需模型支持MCP协议。Function Callling同样以来模型的特性支持。

MCP与Function Calling对比
MCP与Function Calling对比

三、MCP的核心原理和技术架构

核心架构

MCP采用客户端-服务器的分布式架构,它将 LLM 与资源之间的通信划分为三个主要部分:客户端、服务器和资源。客户端负责发送请求给 MCP 服务器,服务器则将这些请求转发给相应的资源。这种分层的设计使得 MCP 协议能够更好地控制访问权限,确保只有经过授权的用户才能访问特定的资源。官方架构图如下:

MCP核心架构
MCP核心架构

  • MCP Host(主机应用):Hosts 是指 LLM 启动连接的应用程序,像Cursor、Claude、Desktop、Cline 这样的应用程序。
  • MCP Client(客户端):客户端是用来在 Hosts 应用程序内维护与 Server 之间 1:1 连接。一个主机应用中可以运行多个MCP客户端,从而同时连接多个不同的服务器。
  • MCP Server(服务器):独立运行的轻量程序,通过标准化的协议,为客户端提供上下文、工具和提示,是MCP服务的核心。
  • 本地数据源:本地的文件、数据库和 API。
  • 远程服务:外部的文件、数据库和 API。

这种架构下,AI主机通过MCP客户端同时连接多个MCP服务器,每个服务器各司其职,提供对一种数据源或应用的标准化接入。这样设计有几个好处:一是模块化,增加或移除某个数据源只需启用或停用对应的服务器,不影响AI主体或其他部分;二是解耦,AI模型与具体数据源实现隔离开,通过协议交互,不直接依赖数据源的内部细节;三是双向通信,不仅AI可以请求数据源,某些情况下数据源也能要求AI执行操作或生成内容,从而支持更复杂的交互流程。

工作流程

MCP工作流程
MCP工作流程

  1. 初始化连接:客户端向服务器发送连接请求,建立通信通道。
  2. 发送请求:客户端根据需求构建请求消息,并发送给服务器。
  3. 处理请求:服务器接收到请求后,解析请求内容,执行相应的操作(如查询数据库、读取文件等)。
  4. 返回结果:服务器将处理结果封装成响应消息,发送回客户端。
  5. 断开连接:任务完成后,客户端可以主动关闭连接或等待服务器超时关闭。

通信方式

MCP定义了一套基于JSON-RPC 2.0的消息通信协议。核心特点如下:

  • 传输灵活:原生支持两种传输方式——进程管道的STDIO(本地场景)和SSE+HTTP POST(网络通信),同时允许开发者自定义其他传输通道。
  • 消息透明:采用纯JSON格式封装三种消息类型——请求(带唯一ID)、响应(含结果/错误)和通知(无回复)。每条消息包含方法名和参数,类似函数调用,直观表达"执行操作/获取数据"等行为。
  • 开发友好:相比二进制协议(如gRPC),JSON消息可人工阅读,配合结构化日志更易调试。协议层自动处理请求响应匹配、错误传递和并发管理,开发者只需关注业务逻辑。

关键机制 – “Primitives”(原语)概念:MCP将AI与外部系统交互的内容抽象为几类原语,以此规范客户端和服务器各自能提供的功能。

MCP服务器可以提供三种原语:

  • Prompts(提示):预先编写的提示词或模板,相当于一段指导性文字片段,可以插入到模型的输入中去影响其行为。例如服务器可以提供一个"代码审查提示模板",供模型在阅读代码时使用。
  • Resources(资源):结构化的数据或文档内容,可供客户端读取并提供给模型作为上下文。例如从数据库查询到的一条记录、用户的笔记文档内容等,都是资源类型。资源类似于"只读文件",模型可以请求某个资源,服务器会返回相应的数据内容。
  • Tools(工具):可以被模型调用的可执行操作或函数。这是MCP最强大也最具互动性的部分,模型可以要求服务器执行某个工具函数来获取信息或改变外部状态,比如调用"发送邮件"工具发送一封邮件,调用"查询天气"工具获取天气数据等。由于工具调用可能带来副作用和安全风险,MCP规定模型调用工具必须经由用户批准后才执行。换言之,工具就像模型可用的"按键",但每次按键需要真人确认,避免模型滥用外部操作权限。

MCP客户端提供两种原语能力用于辅助服务器完成复杂任务:

  • Roots(根):这是一种由客户端提供的文件系统入口或句柄。服务器可以通过Root来访问客户端这侧的本地文件或目录内容。例如客户端可以授权服务器读取某个文件夹(作为Root),那么服务器就能代表模型浏览那个文件夹下的文件内容(通常仍以资源形式提供给模型)。Roots机制确保服务器只能访问经授权的本地数据范围,增强安全性。
  • Sampling(采样):这一机制允许服务器向客户端发起请求,要求客户端这侧的LLM模型生成一段文本(即一次补全/推理)。简单说,服务器也可以"反过来"调用模型,让模型基于一些额外提示执行推理。Sampling可以用于构建多轮交互的智能Agent:服务器在执行某工具过程中,发现需要模型进一步推理决定下一步时,就可以用Sampling请求模型产出结果,再继续后续操作。不过Anthropic也强调应谨慎使用这一机制,始终保持人类在环监督,以避免AI代理失控循环调用模型。Sampling机制并非所有MCP服务器均支持,需依赖客户端实现。

通过上述原语分类,MCP清晰地定义了模型与外部交互的意图类型。例如,让模型获取一段参考资料应该作为Resource提供,而不是混同于调用Tool;又如要求模型执行某操作就用Tool明确表示。这样的设计使AI系统的上下文管理更结构化:模型知道某段信息是只读资料还是可执行操作,用户也能对不同类型请求进行针对性地审批或监控。这比起简单地给模型一个隐式"工具插件"要透明得多。Anthropic的开发者指出,他们最初也考虑过是否把所有交互都当作"工具调用"统一处理,但最终认为Prompt和Resource这两类原语有其独特意义,能表达不同用途的功能,因此保留了多元的原语概念。

四、MCP Server分类及应用

MCP Server是MCP服务的核心,主要从官方、第三方以及社区MCP Server三个角度对关注度较高的应用进行细分。

1.官方MCP Server

(由 Model Context Protocol 核心团队维护,具备标准化协议实现和最佳实践)

核心基础设施

  • modelcontextprotocol/server-filesystem(文件系统):提供标准化文件访问接口,支持细粒度权限控制,基础能力标杆实现。https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem

拓展工具

  • modelcontextprotocol/Google Drive(云端文件):与 Google Drive 集成,允许列出、读取和搜索文件。https://github.com/modelcontextprotocol/servers/tree/main/src/gdrive

AI增强工具

  • modelcontextprotocol/aws-kb-retrieval-server(向量数据库):官方向量检索方案,支持高维数据存储与相似性搜索。https://github.com/modelcontextprotocol/servers/tree/main/src/aws-kb-retrieval-server

2.第三方MCP Server

(由专业厂商/团队维护,具备行业领域深度集成能力)

数据库服务

  • Tinybird MCP Server(实时数据分析):针对时序数据优化,提供低延迟 SQL 查询接口。https://github.com/tinybirdco/mcp-tinybir

云服务

  • Qdrant MCP Server(向量搜索云服务):企业级向量检索云服务,支持混合搜索和分布式部署。https://github.com/qdrant/mcp-server-qdrant/

AI服务

  • LlamaCloud Server(大模型托管平台):提供多模态模型调用接口,支持模型微调和推理监控。https://github.com/run-llama/mcp-server-llamacloud

开发工具服务

  • Neo4j(图数据库):图数据库服务,支持Cypher查询与知识图谱构建。https://github.com/neo4j-contrib/mcp-neo4j/

拓展工具服务

  • Firecrawl (网页爬取):支持抓取、爬取、搜索、提取、深入研究和批量抓取。https://github.com/mendableai/firecrawl-mcp-server?tab=readme-ov-file#firecrawl-mcp-server

3.社区MCP Server

(由开发者社区贡献,覆盖长尾需求和实验性场景)

本地工具集成

  • punkpeye/mcp-obsidian(知识管理工具):支持双向同步 Obsidian 笔记库,Markdown 内容解析优化。https://github.com/punkpeye/mcp-obsidian

自动化工具

  • appcypher/mcp-playwright(浏览器自动化):基于 Playwright 的网页操作自动化,支持动态 JS 执行。https://github.com/appcypher/awesome-mcp-servers#browser-automation

垂直领域工具

  • r-huijts/mcp-aoai-web(艺术数据访问):可通过自然语言交互访问荷兰国立博物馆的藏品,提供艺术品元数据检索。https://github.com/r-huijts/rijksmuseum-mcp

开发者工具

  • sammcj/mcp-package-version(开发依赖管理):实时查询 npm/pypi 包版本,防止幻觉版本建议。https://github.com/sammcj/mcp-package-version

隐私增强工具

  • hannesrudolph/mcp-ragdocs(本地文档检索):基于本地向量库的隐私安全文档检索方案。https://github.com/hannesrudolph/mcp-ragdocs

4.分类对比

维度官方 Servers第三方 Servers社区 Servers
维护周期长期维护,版本迭代规律依赖厂商支持周期依赖个人开发者活跃度
协议兼容性100% 符合最新 MCP 规范通常支持核心规范可能存在实验性扩展
安全审计经过官方安全认证部分厂商提供商业级审计无强制审计机制
部署复杂度提供标准化安装包和文档需要配置厂商专用凭证常需手动调试依赖项
典型场景基础能力/关键业务场景行业垂直领域深度需求个性化/实验性需求

补充说明:远程 MCP 连接的支持

官方文档中关于传输方式的描述可能会让部分开发者误解,认为 Remote MCP Connections(远程 MCP 连接)已经实现。实际上,当前的客户端和服务端都是在本地运行的。(当前如果需要连接远程服务器,需要在客户端-服务端连接后,由本地服务端再次向远程服务器发起连接)

这一点在官方的 2025 年路线图中有所提及https://modelcontextprotocol.io/development/roadmap :

实现 Remote MCP Connections是当前MCP项目组的最高优先级,允许客户端通过互联网安全地连接到 MCP 服务端。关键举措包括:

  • 认证与授权 (Authentication & Authorization):增加标准化的认证能力,特别是专注于 OAuth 2.0 支持。
  • 服务发现 (Service Discovery):定义客户端如何发现并连接到远程 MCP 服务器。
  • 无状态操作 (Stateless Operations):探讨 MCP 是否可以支持无服务器环境(serverless environments),在这种环境中,操作需要尽可能无状态。

参考文章:

[1]https://www.anthropic.com/news/model-context-protocol
[2]https://modelcontextprotocol.io/development/roadmap
[3]https://github.com/modelcontextprotocol
[4]https://mcp.so/servers
[5]https://github.com/punkpeye/awesome-mcp-servers
[6]https://github.com/appcypher/awesome-mcp-servers
[7]https://github.com/modelcontextprotocol/python-sdk
[8]https://github.com/punkpeye/awesome-mcp-servers?tab=readme-ov-file#frameworks
[9]‍https://mp.weixin.qq.com/s/Toj2TudFNXx6_Z11zSRb2g