首頁

/

專題

/

AI 與大模型

/

MCP(模型上下文协议)是什么?大模型连接外部工具的新标准

MCP(模型上下文协议)是什么?大模型连接外部工具的新标准

MCP(模型上下文协议)是什么?大模型连接外部工具的新标准

A

AnBoWork 編輯部

·

2026/8/24

·

約 9 分鐘閱讀

MCP(模型上下文协议,Model Context Protocol)

術語解釋

MCP(模型上下文协议)是一套标准化协议,用来规范AI应用与外部工具、数据源之间的连接方式:工具或数据源只需实现一次MCP Server,即可被任何支持MCP的AI应用复用,不必为每一对"应用-工具"组合单独开发适配代码。

核心摘要

MCP(模型上下文协议)让工具和数据源只需实现一次MCP Server就能被任何AI应用复用,不必为每对应用-工具单独开发适配代码。本文讲清楚MCP和Function Calling的层级关系。

MCP(模型上下文协议)是什么?

MCP(模型上下文协议)是一套标准化协议,用来规范AI应用与外部工具、数据源之间的连接方式。在MCP出现之前,每一对"应用-工具"组合通常都要单独开发适配代码;有了MCP,工具或数据源只需实现一次"MCP Server",就能被任何支持MCP的应用直接复用,不必逐个重新对接。

MCP出现之前,AI应用接入外部工具会遇到什么麻烦?

什么是接入工具时的"组合爆炸"问题?

假设一个团队要维护M个AI应用,每个应用都需要接入N个不同的外部工具或数据源——某个内部数据库、某个SaaS服务的API、某个文件存储系统。如果每一对"应用-工具"都单独写一套适配代码,理论上限就是M乘以N套集成逻辑:应用数量和工具数量任何一边增长,总的适配工作量都会跟着变大,而不是简单地线性叠加。

不同团队各自适配同一个工具,代价体现在哪里?

更常见的情况是,不同团队针对同一个数据源各自实现一遍身份验证、分页、错误重试和结果格式转换逻辑,本质上是重复劳动,而且各自的实现细节还可能不一致。一旦这个工具的接口发生变化,所有单独对接过它的应用都要各自排查、各自修改,没有一个统一的地方能一次性完成升级。

MCP用什么方式把这套接入流程标准化?

MCP Client和MCP Server分别承担什么角色?

MCP采用客户端-服务器架构:运行AI应用的一方(称为Host)内部维护一个或多个MCP Client,每个Client与一个MCP Server建立一对一连接;工具或数据源一方则实现一个MCP Server,通过统一的消息格式对外暴露自己能提供的能力。双方只需要遵循同一套协议规范通信,不需要关心对方具体用什么语言、什么框架实现。

一次实现的MCP Server,如何被不同应用复用?

关键在于MCP Server对外暴露的是标准化协议接口,而不是为某个特定应用定制的私有接口。任何遵循MCP规范的AI应用连接这个Server时,走的都是同一套"发现工具列表、读取参数说明、发起调用"流程。工具或数据源的提供方只需要维护一份Server实现,后续再有新的AI应用要接入,不需要工具侧再为这个新应用单独改代码。

MCP Server可以对外暴露哪几类标准化能力?

MCP协议定义了几种标准化的能力类型,方便Server和Client之间用统一的方式沟通"我能提供什么":

  • Tools(工具):可以被模型调用执行的具体动作,比如查询一条数据库记录或调用某个SaaS接口,对应的正是Function Calling里模型会发起调用的那一类能力
  • Resources(资源):可以被应用读取的类文件数据,比如一份文档内容或一次查询结果,通常作为上下文提供给模型,不需要模型主动"调用"
  • Prompts(提示模板):Server预先定义好的、面向特定任务的提示词模板,帮助用户或应用更高效地完成某类操作
  • Sampling(采样):Server在执行过程中可以反过来请求Client一侧的模型生成一段内容,通常需要经过用户批准后才会执行

MCP标准化前后的工具接入方式对比
MCP标准化前后的工具接入方式对比

MCP和Function Calling到底是什么关系?

Function Calling本身解决的是哪一层问题?

Function Calling是大模型自身的一项能力:模型在推理过程中判断当前任务需要借助外部函数完成,于是输出一段结构化内容(通常是函数名加参数的JSON),交由调用方的应用代码去执行,再把执行结果送回模型继续生成回答。它解决的是"模型如何表达调用工具的意图、应用代码如何解析这个意图"这一层问题,发生在模型和应用代码之间。

MCP在Function Calling之上补上了哪一层?

MCP要处理的是Function Calling没有覆盖的另一层问题——工具和数据源本身如何被发现、如何用统一方式描述参数和用途、应用又该怎么连接到提供这些工具的服务。可以理解为:Function Calling是模型表达调用意图的机制,MCP是把"有哪些工具可用、每个工具怎么调"整理成标准化目录并提供统一接入方式的协议层,两者作用在不同层级,不是彼此替代的关系。

两者在一次真实调用链路里是怎么配合的?

实际运行时,MCP Client先连接一个或多个MCP Server,拉取每个Server提供的工具列表和参数说明,把这些描述转换成模型的Function Calling接口能识别的格式,一并提供给模型;模型基于这些描述判断是否需要调用某个工具,并按Function Calling的格式给出调用请求;应用把这个请求经MCP协议转发给对应的Server执行,执行结果再沿原路径返回给模型,继续生成最终回答。

维度Function CallingMCP
所处层级模型与应用代码之间的调用机制应用与外部工具、数据源之间的接入协议
解决的问题模型如何表达"要调用某个函数"的意图工具、数据源如何被发现、标准化描述并接入
由谁定义模型厂商在训练和推理接口层面定义独立于具体模型厂商的开放协议规范
典型产物一段带函数名和参数的结构化输出一个可被任意MCP Client连接的MCP Server

MCP从提出到现在经历了哪些关键节点?

MCP最初是什么时候、由谁发布的?

MCP由Anthropic于2024年11月发布并开源,最初的定位就是解决AI应用接入外部工具和数据源时反复造轮子的问题。协议开源之后,规范本身以及配套SDK一直在持续迭代。

MCP如何从单一厂商项目转向跨厂商共同治理?

2025年12月,Anthropic将MCP捐赠给新成立的Agentic AI Foundation(隶属Linux Foundation旗下),由Anthropic、Block、OpenAI共同担任创始成员,Google、Microsoft、AWS、Cloudflare、GitHub、Bloomberg等作为支持成员参与——这类似于Kubernetes、PyTorch等项目采用过的中立治理模式,目的是确保协议不被单一厂商主导。根据当时官方公布的数据,MCP SDK月下载量已超过9700万次,线上可用的MCP Server数量超过1万个,ChatGPT、Claude、Cursor、Gemini、Microsoft Copilot、VS Code等产品均已提供客户端支持。

2026年的规范更新主要改了什么?

2026年7月发布的新版规范是协议开源以来改动较大的一次修订,核心变化是把协议核心改成无状态(stateless)——去掉了此前基于会话的握手机制,让同一个请求可以被后端任意一台服务器实例处理,更贴近普通HTTP基础设施的运作方式;同时新增了面向长时间运行任务的Tasks扩展(由AWS贡献)和正式的Extensions框架,便于协议后续按模块扩展而不必每次都改核心规范。

MCP从发布到成为跨厂商协议的关键节点
MCP从发布到成为跨厂商协议的关键节点

对正在接入大模型API的开发者来说,MCP意味着什么?

搭建AI应用时,MCP处在架构的哪个位置?

MCP位于应用代码与外部工具、数据源之间,和应用后端具体调用哪一家的模型API是相对独立的两件事。不管后端接的是单一模型厂商的原生接口,还是像PioModel这样以统一OpenAI兼容接口转售Claude、GPT、Gemini等多个模型的网关,只要当前调用的模型支持Function Calling,应用里的MCP Client都可以按同一套逻辑,把MCP Server提供的工具描述转换成对应的调用格式——模型切换和工具接入是可以分层解耦的两件事。

什么情况下值得在自己的应用里引入MCP?

如果应用需要接入的外部工具或数据源数量本来就少、也比较固定,直接手写适配代码往往更简单,没必要为了标准化引入额外的协议开销。但如果工具数量会持续增长,或者希望自己开发的工具、数据源未来能被其他AI应用复用而不只服务于当前这一个项目,MCP这类标准化协议带来的复用价值会更明显——这本质上是用"现在多花一点接入成本"换"未来少花重复对接成本"的权衡。

总结

MCP把工具、数据源的发现与标准化接入,从各应用自行解决变成协议层面的统一约定,与表达调用意图的Function Calling互为补充。可按工具数量的增长趋势,判断是否值得引入MCP。

開始使用 AnBoWork

一組 Key 串接 Claude / GPT / Gemini 等主流大型模型,按量計費,不需分別開戶。