去年底开始,AI圈子里的技术更新就像开了倍速,每几天就能冒出一个新概念。最近实践完MCP(模型上下文协议)之后,看着自己折腾出来的那一套东西,愣是沉默了老半天——这玩意儿真有那么香吗?
翻翻几个核心技术社区的讨论,发现带着同样困惑的不只一个人。下面这几个疑问,估计也是不少从业者心里打转的坎儿:
疑问1:真的非得靠工具不可吗?不用工具单纯跟大模型对话,难道就走不通?
疑问2:所谓的工具不就是封装好的API接口吗?既然大模型能理解接口描述,直接用Swagger那一套不就全解决了?
疑问3:MCP这个概念,说白了不就是注册表套了个新壳吗?跟Nacos、Eureka那些服务注册发现框架本质上差不了太多,有必要搞得这么复杂,客户端、服务端、资源端三件套全上吗?
果然,多上网还是能捞到好东西的。有不少网友给出的回答,直接把问题点透了,也让很多困惑落到了实处。
说穿了,MCP说到底其实就是一种设计思想的具象化,跟设计模式是一个道理。它本质上是一套经验沉淀下来的最佳实践——你不用它,业务照样跑得四平八稳;你用了它,也不一定能立竿见影地降本增效,因为起不起作用,全看场景合不合适。
那么问题来了:MCP和直接用Swagger描述接口,到底差在哪?
事实上,无论MCP协议怎么包装,底层的核心逻辑都是去适配不同模型function call的入参和返回格式,在这一层上,Swagger规范反而更直给一些。Swagger天然就提供了接口描述、入参、出参这些信息,只需要把这些信息直接喂给大模型,让模型自己去选择一个匹配的接口来调用就行了,而且接口数量一大,Swagger还能通过可视化页面做统一管理。相比之下,MCP就得多搞一整套客户端、服务端、资源端的协作流程。
再细看一下,客户端和资源端在很多场景下其实天然就是绑在一起的。如果它们本就在一个进程或同一个服务里,硬上MCP反而画蛇添足。即便拆开了,普通的微服务调用也能够搞定。那MCP的本质价值在哪里?
如果你非要用MCP,就必须建立一个专门的MCP服务端,负责工具的定义、匹配和执行调度。这事你可以单独拉一个工程来做,也可以直接用Dify这块拼图来充当MCP Server。但需要认清的是,这些工具的执行逻辑跟普通接口本质上没有区别——无论是通过HTTP调用、Ja va反射,还是其他编程语言的特性来执行,底层都没啥新花样。从这个角度看,MCP好像确实有点多余。
说到这,得重新理解一下MCP到底是要解决什么问题。MCP提供的是一个大模型调用本地工具、数据库、外部服务的一种标准化协议。从目前市场上的实践来看,MCP调用的无非是搜索引擎、小红书内容、微信公众号、支付宝支付页面这些通用场景下的工具。这些工具的适用面很广,天然的就需要在不同平台间移植。
但在企业应用里,一个高度定制化的、独一无二的业务流程,如果硬要给它包装成工具,结果反而显得很蠢——坦白说,现在就在干这种蠢事。直到跟公司一位资深架构师聊过一次,才发现少做了一步:对业务系统中可工具化内容的系统梳理。比如数据治理场景下的数据库连接能力,在多个数据链路中反复用到,那它就适合作为MCP工具。但如果是数据采集中特有的一个逻辑,除了这个采集流程再也没有别的地方用得上它,硬做成工具就非常鸡肋,反而增加了大模型产生幻觉的概率。
绕了一大圈,MCP感觉哪哪都不太行,那为什么还要用?整理下来,核心原因其实挺实在的:
(1)AI技术迭代快得惊人,如果不尽快上手、快速了解这些新能力,在产品赛道上很容易就被甩开。
(2)AI既是技术驱动,也是产品亮点的锚点。对客户来说,能不能解决实际问题永远是第一位的。退一步说,即便暂时解决不了大问题,AI也是当前产品不可缺少的加分项。
(3)任何一种AI技术都有它的前置条件。比如直接把文档丢给知识库做查询,十有八九不准;只有把数据处理好、结构化好,结果的可靠性才会大幅提升。同理,不提前梳理清楚哪些业务功能适合工具化,直接上MCP,不自我怀疑才怪。
(4)AI在业务流程里始终是辅助角色,但即便业务流程一丁点都没变,用大模型的推理能力和MCP的工具调用来驱动流程执行,本身就是一种全新的交互方式。这一点对于产品迭代至关重要。
所以,用或不用MCP这样的技术,归根结底取决于业务场景的实际情况:
(1)如果你的产品需要AI作为噱头或亮点来吸引关注,那无脑上,先把声量做起来。
(2)如果用户或客户明确提出了对话式交互的需求,或者产品需要用一种新的驱动方式来升级体验,那可以针对性地选点用。
(3)但如果既有业务系统运行平稳老练,而且没有明显的重构动力,那就别硬上MCP——除非你已经准备好走一次大重构。
