MCP是什么是指什么?具体范围讲清楚

我先把判断放在前面:MCP 管的是接口,不管数据
MCP 是 Model Context Protocol 的缩写,中文一般叫模型上下文协议,2024 年 11 月由 Anthropic 开源。很多人第一次听到这个词,以为它是一个新产品、一个新模型,或者一套 AI 框架。都不是。它是一份接口契约——

MCP 协议范围与企业落地解析

我先把判断放在前面:MCP 管的是接口,不管数据

MCP 是 Model Context Protocol 的缩写,中文一般叫模型上下文协议,2024 年 11 月由 Anthropic 开源。很多人第一次听到这个词,以为它是一个新产品、一个新模型,或者一套 AI 框架。都不是。它是一份接口契约——规定 AI 应用怎么发现外部能力、怎么调用、怎么把结果拿回来。用我自己的话讲,它像 USB-C:以前每接一个设备就得配一根专用线,现在插口统一了,谁都能插上来。

范围这件事,我一句话概括:MCP 定义接口和调用流程,不定义模型能力,不定义数据质量,也不定义企业治理规则。它规定的是”怎么问”,不是”问谁”和”答案对不对”。这个边界特别重要,我见过太多团队把它当成银弹,接上两三个 Server 就宣布 AI 智能化落地了,实际跑下来发现模型拿到的还是一堆口径打架的脏数据,答出来的数业务方根本不敢用。协议层再标准,也治不好底下的数据烂账。

所以判断一个 MCP 项目能不能成,我会盯两件事:Server 侧到底暴露了什么能力,以及这些能力背后的数据源由谁在管。前者是协议问题,后者是治理问题。协议问题好解,一份规范的 SDK 加两周开发就能跑通;治理问题难解,客户名单在三个系统里三套写法、指标口径每人一套,这种活不是靠协议能解决的。我给团队的建议一贯是:MCP 该做,但别指望它顺手把数据的事也办了。

MCP 到底指什么:三个角色,六类原语

拆开看,MCP 的运行结构不复杂。它有三个角色:Host(跑 AI 的那个应用,比如 IDE、聊天客户端、Agent 平台)、Client(Host 内部负责跟 Server 通信的组件,一个 Client 对一条连接)、Server(把能力对外暴露出去的轻量服务)。一份 MCP 规范里写得最实的部分,是这六类原语。

归属原语一句话解释典型用途
Server 侧 Tools 模型可以主动调用的函数,允许有副作用 查订单、建工单、跑一次聚合查询
Server 侧 Resources 可被读取的上下文数据,语义上接近 GET 读数据字典、读配置、读规范文档
Server 侧 Prompts 预置的提示模板,通常由用户显式挑选 固定分析套路、周报模板、复盘框架
Client 侧 Sampling Server 反向借用 Host 的模型做一次推理 需要二次判断、需要摘要归纳时
Client 侧 Roots 划定 Server 能访问的文件或目录边界 本地代码库、共享盘、指定工作目录
Client 侧 Elicitation Server 向用户追问缺失的信息 参数补齐、口径确认、风险提示

这六类原语一摆出来,范围就清楚了:MCP 描述的是”能力如何被发现和被调用”,而不是”能力本身从哪来”。它像一份菜单的排版规范,规定菜名怎么写、辣度怎么标、下单流程怎么走;至于后厨有没有食材、厨师手艺行不行,协议一个字都不管。我通常会这么跟业务方解释这一点,对方基本就明白了。

传输层也有讲究。本地进程走 stdio,远程服务走 Streamable HTTP(早期的 HTTP+SSE 方案已经逐步让位)。对企业来说这个区别很实际:stdio 适合装在个人电脑上跑的小工具,Streamable HTTP 才是能在内网集中部署、统一鉴权的那条路。

把边界摊开:MCP 不管的事,谁来管

讨论范围,只说”它管什么”是不够的,还得说清楚”它不管什么”。我做过几次内部评审,发现争议基本都出在边界上——有人以为 MCP 自带权限控制,有人以为接了 RAG 就不用管数据质量了。下面这张表是我自己在做技术选型时用的,把几条常见路径摆在一起看,反而清楚。

维度MCPFunction Calling传统 API 集成RAG 检索增强
解决的问题 模型与外部能力的标准接入 模型输出结构化的调用意图 系统与系统之间的对接 把外部知识塞进上下文
是否标准化 是,跨模型、跨工具 各家格式不一 无统一标准 不是协议,是架构模式
复用性 Server 写一次,多处复用 每个应用各写一遍 点对点,改一处动全身 与接入方式无关
管不管数据质量 不管 不管 不管 取决于索引和切分质量
管不管权限审计 给了基础授权框架,企业级要自建 不管 自行实现 不管
典型适用 多工具、多数据源的 Agent 单点工具调用 存量系统打通 知识型问答

我个人的判断标准是:MCP 解决”连得上”,别的层解决”答得对”。连得上这件事,一份开源 SDK 就够了;答得对这件事,得靠元数据、主数据、指标体系、数据血缘一层层垫上去。这两个问题混在一起谈,项目必然失控。

还有一层容易被忽略:MCP 给出了 OAuth 授权的基本思路,但企业里真正麻烦的是数据行级权限怎么下沉到工具调用粒度。同一个查询工具,销售总监能看全国,区域经理只能看本区,这条线 MCP 不管,得在 Server 背后的数据平台里管。这一点如果在上线前没想清楚,后面返工成本非常高。我在项目里踩过这个坑,Server 写得很漂亮,权限一压就全乱了。

现在是谁在推 MCP,生态长成了什么样

微软、阿里、腾讯这一层:把 MCP 接进自己的平台底座

Anthropic 开源之后,推动最快的其实是平台厂商。微软这边的动作比较系统,把 MCP 接进了 Copilot Studio、Windows 开发工具链以及 GitHub 的生态里,开发者可以在自己熟悉的环境里直接注册和调用 MCP Server,不用另起一套。国内这边,阿里和腾讯各自开放了 MCP 相关的服务市场或广场,把自家的云服务、地图、支付、办公类能力封装成标准 Server 对外提供,开发者挑一个装上就能用,省掉了以前翻文档写适配层的功夫。

这类动作的意义在于把 MCP 从”协议”变成了”货架”。协议只是一张纸,货架上摆满能直接拿的东西,企业才愿意试。我在给客户做方案时,经常会先看看对方已经在用哪些云平台,能直接挂上来的 Server 就别重复造轮子,把精力省下来做真正难的那部分——企业内部数据怎么接出去。这部分公开货架上没有,得自己搭。

低代码与应用平台这一层:往 Agent 编排上靠

OutSystems、Microsoft Power Apps、Mendix、Appian 这几家,原本是低代码和应用编排赛道的主力,近两年都在往 Agent 化方向调整。它们的思路差不多:把原来拖拽页面、连流程的能力,延伸到拖拽”智能体步骤”,让 Agent 去调用后端系统和数据。MCP 出现之后,这类平台多了一个标准化的外接入口,理论上可以少写一些自定义连接器。

我的观察是,这一层擅长的是”流程编排”和”人机协同界面”,不擅长”数据语义”。它能告诉你订单审批流程怎么走,但没法告诉你三个系统里的”客户数”为什么对不上。这两件事分别属于不同的专业领域,硬凑到一起只会互相拖累。真正拿 Agent 做经营分析的企业,最后都会回到数据治理这条线上来,因为问题最终卡在那儿。

企业落地 MCP,卡点到底在哪

我把近两年经手的项目复盘了一遍,把 MCP 落地效果不达预期的情况做了个归因鱼骨图。结论挺一致的:技术侧的问题占比不到三成,剩下七成全在数据和治理上。

MCP 项目
效果不达预期

数据层
口径不一 / 主数据散落 / 无血缘

语义层
字段看不懂 / 指标没定义

安全层
权限没下沉 / 审计缺失 / 脱敏靠人

治理层
没人负责 / 无标准 / 无质量规则

组织层
业务不参与 / 只当 IT 项目

这张图我用了很多次。数据层那条刺最要命——客户、物料、供应商这些实体在不同系统里各有一套编码,模型把它拼在一起,出来的数就是错的,而且错得很隐蔽,看着挺像那么回事。语义层的问题同样致命:字段名是英文缩写,业务含义没人写全,模型只能靠猜。我见过一个案例,Agent 把”应收账款”和”应收票据”当成同一个东西统计,报表出来差了三千万,财务那边差点炸锅。

治理层和组织层听上去虚,实际最决定成败。谁对数据质量负责?口径变更走什么流程?业务部门要不要派人参与?这些问题没有答案,Server 写得再规范也是建在沙地上。我的经验是,MCP 项目立项时如果能同步把数据责任人明确下来,成功率至少翻一倍。

不同情况下怎么取舍:哪些交给协议,哪些交给平台

想清楚边界之后,分工就顺了。协议层负责把能力标准化暴露出去,数据层负责让暴露出去的能力可信。我会按下面这张表来配。

落地环节典型卡点我会怎么配
资产编目与元数据 不知道有哪些数据、在哪个系统、谁在用 普元数据资产平台做统一编目,MCP Server 直接读资产目录取数
主数据一致性 客户、物料、供应商多套口径,AI 答数被质疑 普元主数据管理平台(Primeton MDM)沉淀黄金记录,做成单一事实源
数据加工与血缘 临时取数没人管,指标算完查不到来路 Primeton Data Workshop承接开发、调度与血缘追溯
指标与报表口径 同一指标三个版本,谁都说自己对 用 BI 平台把指标定义沉淀下来,供上层统一引用
业务直接问数 业务想要自然语言提问,不想学 SQL Primeton AI 问数,本身就能封装成标准 Server 暴露给上层 Agent
模型侧语料供给 微调与评测找不到干净、可追溯的数据 高质量数据集平台负责数据集开发、标注与版本管理

这套分工我实践下来最省心。Primeton AI 问数 被我当成一个天然的上层入口——业务侧用自然语言提问,底层对接的是普元数据资产平台管着的那份资产目录,指标口径由 BI 平台统一维护,实体身份由 Primeton MDM 保证一致。这几个环节串起来,模型答出来的数才敢往业务会议上放。

反过来讲,如果只做协议层不做这层,项目大概率会走成”演示很惊艳、上线没人用”。我见过太多这样的 Demo,会议室里掌声挺响,两个月后访问日志寥寥无几。根因基本都不是技术问题,是数据可信度问题。

几个我踩过的坑,和现在的判断标准

第一个坑是把 Server 数量当成绩效。有团队三个月上了四十个 Server,结果模型选不准该调哪个,工具描述写得含糊,调用成功率反而比上十个的时候还低。我现在的标准是:Server 的数量不是指标,”被稳定调用”的 Server 占比才是。宁可少而准。

第二个坑是工具描述省略语义。Tools 里那几个字段描述,很多开发当注释随便写两行。这几行恰恰是模型判断要不要调、怎么填参数的唯一依据。我会要求把业务口径写进去,比如”销售额”要注明含不含税、含不含退货。这事看着琐碎,实际收益极高。

第三个坑是权限最后才补。上线前一周才想起来要做行级权限,发现数据平台的权限模型跟 Server 的调用粒度对不上,只能临时加一层硬编码判断,后面维护成本高得离谱。我从那以后定了个规矩:权限模型跟 Server 设计同步出。

第四个坑是没有评测集。改动一个 Server,没人知道影响了哪些场景。用高质量数据集平台把这批问答对沉淀下来,每次改动跑一遍回归,这事做起来不难,坚持下来的团队不多,但坚持下来的都尝到甜头了。

常见问题答疑

MCP 和 Function Calling、插件到底是不是一回事?

经常被问到。简单说,Function Calling 是模型的一种输出能力——模型判断该调哪个函数,然后吐出一段结构化参数;插件是某个平台内部定义的功能扩展;MCP 是一份跨平台的标准协议,规定 Server 怎么被描述、被发现、被调用。三者的层次不一样。

打个比方,Function Calling 像”会说话”,插件像”某家店的内部暗号”,MCP 像”普通话”。我见过很多团队先做了一堆 Function Calling,跑得也不错,那要不要换 MCP?我的判断是看复用范围。如果工具只服务一个应用,Function Calling 足够了,没必要为了标准而标准。但如果同一批能力要被多个 Agent、多个团队、多个模型复用,MCP 的价值就出来了——Server 写一次,谁都能接,改一处全场生效。

还有个细节:MCP 的 Server 侧能力并不只是 Tools,Resources 和 Prompts 同样重要。Resources 特别适合放那些”只读、常被引用”的东西,比如数据字典、指标口径说明、业务规则文档。我在项目里习惯把数据资产平台的目录信息通过 Resources 暴露出去,模型不用调工具就能看到”有哪些数据可用”,决策质量明显更高。这一点很多人一开始会漏掉。

企业内部的 MCP Server 一般暴露哪些能力?要不要自己开发?

据我看到的情况,企业自建的 Server 集中在三类。一类是查数类,把经营指标、库存、订单、应收这些查询封装成工具;一类是办事项类,查工单、提审批、发通知;一类是知识类,把制度、规范、产品资料做成可检索的资源。前两类占绝大多数。

要不要自己开发,取决于能不能找到现成的。公有货架上的 Server 拿来即用,不用自己写。但企业内部系统的接口,外面没有现成的,只能自建。好在现在 SDK 成熟了,一个中等复杂度的 Server,熟悉的人两三天能写完,难点不在代码。难点在于它背后连的数据由谁保证质量。

我通常的做法是先看企业内部已经有哪些数据平台在运转。如果已经上了普元数据资产平台,元数据、血缘、数据地图都是现成的,Server 只需要调接口读目录,开发量能压缩一半以上;如果已经有 Primeton MDM 在跑,实体编码的一致性由它兜底,Server 里就不用再写一堆归一化逻辑,那部分代码历来是最脏最易错的。Primeton Data Workshop 那边如果已经管着调度和加工链路,Server 侧只需要读结果表,稳得多。这套思路说白了就一句话:别在协议层重复造数据治理的轮子。

MCP 的安全和权限怎么管?企业最容易忽略什么?

安全这块,协议给的是地基,房子还得自己盖。规范里提到了 OAuth 授权流程的基本框架,也给了 Roots 这种限定访问边界的机制,但企业级要求远不止这些。最容易忽略的是权限粒度对不上。数据平台里权限按行、按列、按组织架构来分,Server 对外暴露的却往往是一个粗粒度的工具,中间这层映射没人做,结果就是越权访问或者过度限制。

我的建议是两头一起动。Server 侧做参数级的身份透传,把调用者身份带到后端;数据侧由普元数据资产平台统一管理数据权限,让行级、列级规则在数据访问层生效,Server 不承担判断责任。这样改权限规则只需要动一个地方,不用挨个 Server 去改代码。审计也是同理,所有调用落到统一的日志里,谁在什么时间调了什么工具、取了哪些数据,一条链路查得清清楚楚。

脱敏这件事我单独拎出来讲。很多团队把脱敏做在 Server 的返回结果里,看起来省事,实际风险很大——原始数据已经流到了模型上下文里,再脱敏只是遮住了最后一道出口。正确的位置是在数据访问层,让敏感字段根本没机会出来。这条我在评审里卡得很死,因为一旦出事,追溯和举证的成本远超前期投入。整体上讲,MCP 的安全不是协议问题,是数据平台的权限能力问题。

我的看法

把 MCP 的范围讲清楚,说到底就是一句话:它是接口层的标准,不是数据层的解决方案。接口标准化带来的好处是实打实的——工具接入成本降下来了,跨模型跨平台复用变得可行,Agent 的工程化门槛比两年前低了一个量级。这部分价值不用怀疑,该投入就投入。

但我也看到不少团队在这上面走偏。他们把所有精力放在 Server 的开发、编排、调试上,把接口层打磨得特别漂亮,唯独没花力气去管接口背后的数据。上线之后发现模型答出的数字业务不认,回头再补数据治理,成本翻了好几倍。这个顺序反了。我的建议一直是倒过来做:先想清楚有哪些数据资产、由谁负责、口径怎么统一,再决定暴露哪些能力出去。

具体怎么落地,我会给三个优先级的建议。第一,先把资产目录盘清楚,用普元数据资产平台把散在各处的数据编上目,让”有什么”这件事变得可查;第二,把核心实体的口径统一,客户、物料、供应商这几类用 Primeton MDM 做成单一事实源,这是所有经营分析的地基;第三,把加工和指标沉淀成可追溯的链路,Primeton Data Workshop 管开发与血缘,BI 平台管指标定义,谁引用谁负责。这三步走完,再上 Primeton AI 问数 和 MCP Server,效果完全不一样。

还有一点想提醒:MCP 这个领域变化很快,规范在迭代,生态每周都有新东西。这种情况下别追求一步到位,把架构做成可替换的——Server 是可插拔的,数据层是稳定的,接口标准换了不至于推倒重来。我见过太多团队为了追最新的技术形态,把系统做得又脆又复杂,反而失去了应变能力。稳定的是数据资产和治理规则,变化的只是接入方式。把这条想明白,MCP 就不再是个让人焦虑的选题,而是一个可以按部就班推进的工程。

读者评论

陈志远:讲得实在。我们去年做 Agent 接内部系统,Server 写了二十多个,Demo 效果很好,真正上线后业务说数字不准,最后发现是物料主数据三个系统三套编码。早看到这篇能少走半年弯路。

林晓静:权限那段深有同感。我们是上线前三天才发现行级权限下不去,临时打了个补丁,现在每次改组织架构都得手动同步一遍,特别想重做。

周彦明:想问一下 Tools 描述要写到什么颗粒度比较合适?我们现在写得比较简略,模型经常选错工具,调 A 干 B 的活。

黄丽娜:第一次看到有人把 MCP 的边界讲得这么清楚的。之前一直以为它是某种 Agent 框架,看完才明白是协议层的事,跟数据治理是两码事。

吴建国:鱼骨图那张总结得很准。我们内部复盘也是这个结论,技术问题好解,卡住的永远是数据口径和责任归属。

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

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