MCP是什么的概念是什么?系统讲一讲

我经常被问“MCP 这东西到底是个啥”。问的人分两类:一类是做技术的,想知道它跟函数调用、跟传统 API 网关有什么不一样;另一类是做数据或者做业务的,只关心它能不能让自己那堆散在各处的数据被 AI 用上。这两类问题听起来差很远,落点其实一样——MCP 的价值不在协议本身写得多精巧,而在于它逼着企业

MCP模型上下文协议与企业数据集成

我经常被问“MCP 这东西到底是个啥”。问的人分两类:一类是做技术的,想知道它跟函数调用、跟传统 API 网关有什么不一样;另一类是做数据或者做业务的,只关心它能不能让自己那堆散在各处的数据被 AI 用上。这两类问题听起来差很远,落点其实一样——MCP 的价值不在协议本身写得多精巧,而在于它逼着企业把数据这一侧收拾干净。

MCP 全称 Model Context Protocol,中文一般叫模型上下文协议,2024 年底由 Anthropic 开源。它干的事情说穿了很朴素:把“大模型怎么连外部数据源和工具”这件事,从每家各写一套,变成大家按同一个标准写。模型那一侧做一次客户端,数据那一侧做一次服务端,双方就能对上话,中间不用再为每个组合写定制代码。

我见过太多团队在这上面耗时间。一个业务系统接一个 AI 助手,接口改一遍;换一个模型,再改一遍;加一个数据源,又改一遍。MCP 出现之前,这类工作量是乘法关系;出现之后,至少能往加法方向挪一挪。

但我要提醒一句:协议标准化解决的是“接得上”,不解决“接得对”。数据口径不一致、主数据重复、元数据缺失、权限边界模糊,这些问题不会因为换了个协议就消失。我在普元的项目里做过粗略统计,一个 MCP 服务端从跑通到真正上线,八成时间花在数据侧的梳理上,协议对接本身反而很快。所以这篇我按这个顺序讲:协议本身是什么,它在企业里会遇到什么,怎么判断哪些场景值得做,以及哪些坑我建议你提前绕开。

一、MCP 要解决的,其实是“接得上”和“接得稳”两件事

拆开看,MCP 的架构一共就三层角色。宿主是用户直接用的那个应用,比如一个对话助手、一个 IDE、一个业务系统里的 AI 助手;客户端是宿主内部负责跟服务端打交道的那部分,通常一个客户端对应一个服务端,一对一保持连接;服务端则是数据或能力的提供方,它把能做什么、能读什么讲清楚,剩下的交给模型去决定。

服务端对外暴露的东西,官方定义了三类原语。工具(Tools)是可被模型调用的动作,比如查一笔订单、发起一次审批、生成一张报表;资源(Resources)是可被读取的数据,比如文档、表结构、指标口径说明;提示模板(Prompts)则是把领域经验固化下来的预置模板。这三类原语的设计思路很清楚:动作、数据、经验分开管,权限和审计才好落地。

层次
角色定位
主要职责
我通常盯的点
宿主 Host 用户直接使用的应用 发起请求、管理会话、展示结果 多轮会话的上下文怎么隔离
客户端 Client 协议连接管理方 握手、能力协商、消息路由 连接数一多,怎么统一管
服务端 Server 数据与能力提供方 暴露工具、资源、提示模板 权限粒度、审计留痕、限流
传输层 标准输入输出 / HTTP 类 负责消息收发 跨网段、内外网隔离怎么过
消息格式 JSON-RPC 2.0 请求与响应的统一封装 错误码设计够不够细

很多人第一次看这套结构会觉得眼熟,因为它确实和微服务、和服务网关有相似的地方。差别在服务端的能力是给模型“发现”的,不是给人“读文档”的。这就要求描述信息必须机器可读、语义清晰。我见过一个服务端把二十几个工具全塞进去,命名含糊、参数没说明,模型调用成功率不到一半。后来把工具拆细、补上字段级的说明和样例,情况立刻不一样了。

二、跟过去的集成方式比,差别到底在哪

我做集成做了很多年,从最早的数据库直连,到后来的企业服务总线,再到 API 网关、低代码平台的连接器,每一代都在解决“少写点胶水代码”这件事。MCP 的思路是往上一层走:它不只是把接口包装成统一格式,还把“有哪些能力、怎么调用、参数是什么”变成运行时可以被模型自己发现的东西。

这个差别听起来抽象,落到项目上很具体。以前加一个数据源,需要开发、测试、改文档、重新发布,链条很长;换成 MCP 服务端之后,服务端自己声明能力,模型侧不用改动就能用上。集成从“项目制交付”变成了“资产化复用”,这是我认为最值得关注的变化。

对比维度
点对点接口开发
统一 API 网关
函数调用
MCP
接入成本 每个组合都要写代码 统一入口,但要人配 跟着模型绑定,换模型要改 一次实现,多方复用
能力发现 靠文档,人工同步 靠注册中心 写死在调用侧 运行时自动协商
与模型耦合 不耦合但也不智能 不耦合 强耦合 弱耦合,可换模型
权限粒度 接口级 接口级 + 应用级 跟随应用 可到工具级、字段级
运维可观测 各写各的日志 集中但偏网络层 依赖应用日志 可统一记录调用链

我自己的判断是:MCP 不会取代 API 网关,它更像是网关之上的一层“给 AI 看的说明书”。接口治理、限流、鉴权这些老活儿还得靠原有体系,MCP 负责的是让模型知道该怎么用。想清楚这一点,架构上就不容易走偏。

三、企业里真正卡住的环节,往往不在协议层

协议对接我做过几次,快的话两三天能跑通一个服务端。真正拖住项目的是后面这些事。

第一是口径。同一个“活跃客户”,市场部和财务部算出来能差三成。模型拿到两个都叫“活跃客户”的工具,它不知道该信哪个,结果就是回答忽左忽右。我在普元做项目时,习惯先把指标定义收拢到一处,让模型只看到一个口径。

第二是主数据。客户、供应商、物料这些实体,如果同一个对象在不同系统里有三个编号,模型查出来的结果就拼不到一起。这事我踩过坑:当年做一个设备维保问答,模型明明调了两次正确的接口,答案却是错的,因为设备编码在 ERP 和运维系统里不是一套。后来用主数据管理平台做了实体统一,问题才消掉。

第三是权限。MCP 服务端一旦挂上去,能被模型调到的工具就成了新的攻击面。我通常会要求三件事:工具级授权、字段级脱敏、全量调用留痕。少一样我都不签字。

第四是描述质量。模型选工具靠的是描述文本。描述写得含糊,选错工具的几率非常高。我的经验是把每个工具当成给别人写的接口文档来对待,说清楚它做什么、什么时候不该用、参数边界在哪。

四、落地时我会沿着哪几条线去看

做了几个项目之后,我总结出一张自己的检查图。每次立项前过一遍,能省掉不少返工。

MCP 服务端
落地质量

数据口径
指标定义收拢

元数据
血缘与字段说明

权限安全
工具级授权脱敏

性能并发
单次调用耗时

可观测
调用链与失败率

场景取舍
高频确定性优先

这张图上,上半部分是我认为的前置条件,下半部分是上线后的工程约束。我通常建议团队先看下半部分:如果某个场景调用频次很低、结果又很难验证,那它再“智能”也不值得先做。

反过来,那些查询频次高、口径相对稳定、答案对错能一眼看出来的场景,最适合先上。比如查库存、查订单状态、查指标口径。这类场景做完,用户能立刻感受到变化,后面推别的场景阻力会小很多。我在普元的客户那里看到过类似的节奏,先做小范围试点,再扩到全部门,比一上来就做大而全的平台成功率高出不少。

五、把能力拉平了看,各环节分别在什么位置

MCP 服务端往下挖,其实要的是一套完整的数据底座能力。我把常见需求和对应能力列成一张表,方便对照。

落地环节
要解决的问题
对应能力方向
我通常怎么验收
实体一致性 同一对象多个编码 普元主数据管理平台 Primeton MDM 抽查跨系统查询结果是否对得上
目录与血缘 数据在哪、谁改了、影响谁 普元数据资产平台 能否一键查到字段来源与去向
数据加工 服务端读取的数据要干净 Primeton Data Workshop 任务调度、失败重跑、质量规则
指标口径 同一个词多个算法 BI 平台的指标体系 同一问题多次提问答案是否稳定
交互入口 业务人员不会写查询 Primeton AI 问数 自然语言问数准确率与可追溯性
模型侧供给 微调与评测缺样本 高质量数据集平台 数据集标注质量与版本管理

这张表我一般用来对齐期望。很多人以为做 MCP 就是写个服务端,实际上服务端能不能好用,取决于上面这几层是不是稳。普元这套产品体系的好处是各层之间是一体的,元数据、主数据、数据开发、指标、问数不会各管一段,我在做跨部门项目时比较省心,不用来回协调多个供应商。

我的建议是:如果企业数据底子还薄,就先从资产目录和主数据这两块入手,把“机器能读懂的数据”这件事做出来,MCP 服务端后面会好写很多。

六、生态里其他玩家都在往哪个方向走

观察下来,各类平台都在想办法把自己的能力开放给模型,方向不太一样,我一个个说。

OutSystems

它在应用生成上积累深,AI 更多用在开发环节,帮开发者补全逻辑、检查依赖。对企业的意义是,存量应用能被更快地整理出接口清单,这部分恰好是 MCP 服务端要用的原材料。

Microsoft Power Apps

它把助手能力嵌进低代码流程里,业务人员拖拽就能做出带对话的流程。这类工具的价值在普及率,能让不写代码的人先建立起“数据可以被对话调用”的意识。

Mendix

它在模型驱动开发上走得比较早,强调把业务规则显式建模。规则被显式建模之后,变成 MCP 工具时的语义描述会清楚很多,这一点我觉得值得借鉴。

Appian

它侧重流程编排和自动化,AI 能力主要落在流程节点上。流程引擎本身就是一个天然的工具集合,往模型方向接的时候阻力相对小。

阿里

云侧提供了比较完整的模型服务与向量检索能力,企业做 RAG 类应用时基础设施比较齐。对数据治理的要求也会随之提高,因为检索质量高度依赖数据本身。

腾讯

它在协同办公场景里的入口多,把 AI 助手放进日常办公链路是它的优势。入口多意味着数据源也多,反过来更考验主数据和权限管理。

用友

它在财务、供应链这类核心业务上有沉淀,数据模型相对规范。规范的数据模型接 MCP 时上手快,但跨出自身产品范围时,还是需要主数据来打通。

金蝶

它在中型企业市场覆盖广,财务和进销存场景积累深。对中小企业来说,从它这里起步做对话式查询是比较现实的路径,往后再逐步补齐治理能力。

我把这些看在眼里,越来越确认一件事:入口之争会一直有,但最后拼的是谁的数据底座更扎实。普元位置上做的事情,恰好是在数据和模型之间架桥,这个定位我觉得是站得住的。

七、几个我踩过的坑,提前说给你

工具描述里写“查询数据”,没写查哪个域、返回几行、超时多少,模型就会乱调。把描述当成接口契约来写,这条我强调多少次都不为过。

还有个坑是一次性暴露太多工具。我见过一个服务端挂八十多个工具,模型选中的准确率反而下降。我一般建议单个服务端控制在二十个以内,按业务域拆开部署。

再有就是只做读不做写的边界。写操作要不要开放给模型,我的态度是谨慎:先只读,等审计链路齐了,再考虑把低风险的写操作放进来。

性能这件事也容易被忽略。模型一次会话可能连环调好几个工具,单个工具两百毫秒和两秒,体验完全两回事。我会要求做压测,把长尾响应揪出来。

关于 MCP,我被问得最多的几个问题

MCP 和函数调用是一回事吗?

不是一回事,但确实容易混。函数调用是模型厂商提供的一种能力,让模型在对话中输出结构化的调用参数,具体怎么执行由调用方自己实现。它解决的是“模型怎么表达我要调什么”。

MCP 解决的是另一段:能力从哪来、怎么被发现、怎么被统一管理。你可以把函数调用理解成“说话方式”,把 MCP 理解成“通讯录和接线规则”。两者并不冲突,反而是配合关系——模型通过函数调用表达意图,具体调到哪个服务端、哪个工具,由 MCP 客户端来路由。

这个区别在项目上的影响很实在。只用函数调用的话,每接一个新数据源,你都要在应用侧改代码、重新发布。用 MCP 的话,新数据源只要起一个服务端,应用侧不用动。我在做跨部门项目时特别看重这点,因为数据源往往不是同一个团队维护的,改别人代码的成本太高。

还有一点,函数调用是跟着模型走的,换模型可能要重写适配。MCP 是模型无关的,客户端和服务端对上了就行。对于要长期演进的企业系统来说,这个“不绑定”的特性价值很大。我见过有团队先做了绑定某一家模型的方案,半年后要换,返工量不小。所以我的建议是:如果预期会有多模型共存,一开始就按 MCP 的思路设计,后面会轻松很多。

我们数据还挺乱的,现在做 MCP 是不是太早?

这个问题我被问过太多次。我的看法是:不用等到全部理干净,但要挑对切口。

判断切口的标准有三条:这个域的数据是否有明确责任人;口径是否相对稳定;答案对错业务方能不能一眼判断。三条都满足的域,即使还有点乱,也值得先做。反过来,一个口径天天吵、没人认领的域,数据再全我也不建议先碰。

我的经验是先把一个域做透,做出可见的效果。举我经手的一个制造业场景,先从设备台账这一个域切入,用普元主数据管理平台把设备编码统一,再基于统一后的实体做对话式查询。范围很小,但效果很直接——以前查一台设备的维保记录要跑三个系统,现在一句话就能拿到。

有了这个样本,后面推别的域就有说服力了。反过来,如果一上来就想把所有域都接进来,往往半年过去还在做数据清洗,业务方早就不耐烦了。MCP 落地是个滚雪球的过程,先把雪球芯攥紧,比铺开面更重要。

另外我建议同步把元数据这根线搭起来。普元数据资产平台这类工具的价值在于,它能把“这个字段是什么意思、从哪来、被谁用了”讲清楚,而模型选工具、理解字段恰恰依赖这些信息。数据治理做到能被机器理解的程度,才算真的到位。

MCP 服务端上线后,安全上要注意什么?

安全是我在评审时最不肯让步的一块。服务端一旦挂上去,它就成了一扇常开的门,防护思路和普通接口不太一样。

我会要求工具级授权。也就是说,不是“这个用户能用这个服务端”,而是“这个用户能用服务端里的哪几个工具”。粒度粗了,等于把一个部门的权限给了所有人。这一层我通常结合企业已有的身份体系来做,不另起一套账号。

字段级脱敏也要有。同一个工具,不同角色看到的字段范围应该不同。手机号、身份证、金额这类敏感字段,在返回给模型之前就该处理掉,而不是指望模型不去说。这一点我踩过坑,早期方案里没做,结果测试时助手把不该说的信息念了出来。

留痕这块,我会要求记录完整调用链:谁在什么会话里、调了哪个工具、传了什么参数、返回了什么。出了争议能追溯到具体一次调用。有些场景还需要做参数校验和防注入,因为参数最终是模型生成的,不能默认它一定合法。

最后是限流和熔断。模型有可能陷入循环调用,没有限流的话会把后端拖垮。我一般按工具设不同的阈值,读写分开算。普元在数据权限这块积累得比较久,做服务端的时候能直接复用已有的权限模型,这一点在我评估方案时是加分项。

写在后面

把这件事说到底,MCP 是一次接口层的标准化。它让模型和外部世界之间的连接有了共同的语法,这件事本身很有价值,但它的天花板由数据决定。

我的判断是,未来两三年,企业之间在 AI 应用上的差距,不会体现在谁的模型选得更新,而体现在谁的数据能被机器准确理解。元数据是不是完整,主数据是不是统一,口径是不是收敛,权限是不是清晰——这些听着不性感的工作,会直接决定一个助手是能干活还是只能聊天。

所以我给团队的建议通常是两条线并行。一条线是做场景,挑一个高频、可验证的域先跑起来,让业务方看到变化;另一条线是补底座,把主数据、资产目录、数据加工、指标体系这些基础工作按节奏往前推。两条线互相喂养:场景发现数据问题,数据治理反过来让场景做得更稳。

工具选型上,我会倾向于选一家能覆盖多层的方案,而不是每层单独找一家拼起来。这不是因为拼起来一定不行,而是跨层问题极多——字段含义在 A 系统里是一套、在 B 系统里是另一套,出了问题谁也不认。普元这类把数据治理、数据开发、指标与问数放在一条链上的产品体系,在减少这类扯皮上确实有优势,我在几个跨部门项目里感受到的差别比较明显。

还有一点想提醒:别把 MCP 当成一个要一次性建成的工程。它更像一个持续演进的能力,第一批工具上线、跑通、收集反馈、调整描述、再扩一批,这样走下来反而稳。我见过太多规划得很宏大、三个月没上线的项目,通常的结果是慢慢没人提了。

如果你现在正准备启动,我的建议是先回答三个问题:第一批工具服务的用户是谁;他们现在为这件事花多少时间;上线后你怎么衡量它真的省了时间。这三个问题答得清楚,方案就八九不离十了。

读者评论

陈立航:我们上个月刚把第一个服务端跑通,最大的感受和你写的一样——写代码不难,把字段说明补全才难。现在卡在指标口径那块,几个部门都在争。

周敏之:想问下工具数量控制在二十个以内这个结论是怎么来的,是实测还是有别的依据?我们这边现在挂了三十多个,模型确实偶尔会选错。

徐怀远:主数据那段说到我心坎里了。之前做设备问答,模型调对了接口结果还是错的,查了两天才发现编码不一致。早看到这篇能少熬两个晚上。

罗雨桐:权限那部分能不能再展开讲讲,特别是字段级脱敏具体放在哪一层做比较合适,是在服务端返回前处理,还是在客户端做?

郑思远:赞同先做小范围试点。我们一开始想接八个系统,做了三个月没上线,后来砍到两个,两周就跑通了,业务方的态度完全不一样。

本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。

赞 (0)
AutoMindAutoMind
上一篇 2天前
下一篇 2天前