乐于分享
好东西不私藏

那么多的AI聊天的app,为什么还要有MCP Agent?

那么多的AI聊天的app,为什么还要有MCP Agent?

现在各种大模型频繁刷屏,像聊天一样的AI软件,基本是年轻人的标配了,但是为什么又出现了MCP agent?

为什么

我们可以把普通的对话式大模型想象成一位被关在玻璃房里的“超级大脑专家”。

这位专家无所不知,你问他任何问题,他都能给出完美的文字建议。

但是,他被困在玻璃房里,无法直接帮你去现实中办事。他只会聊天。比如,你让他帮你订一张机票,他只能给你发一段详细的订票步骤,或者给你几个订票网站的链接,最终还是得你自己去操作。

这就好比专家只能“动口”,却不能“动手”。

后来,人们为了让专家能办事,给他配了一些工具(比如直接连接订票系统)。但麻烦来了,每个工具的“插头”都不一样,接口标准各不相同。专家每想用一个新工具,就得重新学一套复杂的对接规则,费时费力,还经常出错。

MCP就像是AI世界里的“USB-C接口”或“万能插座”。有了它,不管是订票系统、办公软件还是家里的智能灯泡,只要符合这个统一的插座标准,超级大脑就能“即插即用”,不需要再为每个工具单独学规矩了。

有了万能插座,这位超级大脑专家不仅有了能听懂你话的“大脑”,还真正长出了能去执行操作的“手脚”。

简单来说

云端用一个文字大模型,经过prompt约束输出的格式

本地解析这个特定的格式,并执行

这就是是一个简易的MCPagent

从底层思路看,就是让大模型只负责“思考”和“输出指令”,让本地程序负责“干活”和“接触现实”。

如果不

既然已经理解了“云端大脑 + 本地执行”这个核心流程,那我们就从这个流程出发,看看如果不使用 MCP,我们会遇到哪些让人头疼的“至暗时刻”。

MCP 的出现,就是为了解决这三个核心痛点:

“脑子换不得”、“手写累死人”、“方言听不懂”。

大脑的“适配地狱”

比如:你用你的“简易方案”写了一个 Prompt,让大模型输出 action: light_off 来控制家里的灯。你在 Prompt 里写得很细:“请输出 JSON,字段名是 action…”。

问题来了:

  1. 今天你用的是 GPT-4,它很听话,输出很标准。
  2. 明天你想换成 Claude 3.5,或者 DeepSeek,甚至是一个本地跑的小模型(比如 Qwen)。
  3. 崩溃的事情发生了:
    不同模型对 Prompt 的遵从能力不同。有的模型喜欢说话前带个“好的”,有的模型喜欢用单引号,有的模型甚至会忽略你的 JSON 格式要求,直接给你回一句人话。

结果:你的本地解析器瞬间崩溃。为了适配新模型,你得重写 Prompt,甚至得重写解析逻辑。

MCP 解决了什么?MCP 把“工具怎么用”变成了标准化的说明书以前是你求着模型“请你一定要输出这个格式”,现在是模型(Host)主动问 MCP Server:“你支持什么格式?”。模型和工具之间通过标准接口对话,不管你是 GPT 还是 Claude,只要懂 MCP 标准,就能无缝切换,不用改一行代码。

你在 Prompt 里写了“强制约束”,但为什么还是挡不住大模型“调皮”?

根本原因在于:在 Prompt 里的“强制约束”,本质上只是“礼貌的请求”,而不是“代码级的强制”。

大模型那一边:本身就分“普通聊天”和“工具模式”

我们要理解大模型的工作原理,才能明白为什么 Prompt 的约束力是有限的。

1. 大模型的本质:它是“对话者”,不是“执行机器”

当你给大模型发一个 Prompt 说:“请输出 JSON 格式,不要有多余字符”时,在大模型看来,这只是对话的一部分

大模型的核心训练目标是:预测下一个最合理的文本

  • 情况 A(运气好):
     模型“看懂”了你的要求,它预测下一个最合理的文本确实是 JSON。于是它输出 {"action": "light_off"}
  • 情况 B(运气不好):
     模型虽然看到了你的要求,但它的训练数据里,回答问题前常会有礼貌的开场白。它预测下一个最合理的文本是“好的,这是您的指令…”。于是它输出了:

    “好的,帮您关灯。{"action": "light_off"}

这时候,你的本地解析器就崩了。 因为解析器只认 JSON,它不会自动跳过前面的“好的”。

Prompt 只是试图影响模型的“预测概率”,但不能 100% 锁死输出。模型依然保留着“自由意志”(生成文本的概率分布)。

2. 为什么 Function Calling / MCP 就不会乱?

回到你刚才问的 MCP,为什么它就能解决“格式错乱”?

因为 MCP 依托于 Function Calling(函数调用)机制,这和普通的 Prompt 完全是两套底层逻辑。

A. 机制不同:从“生成文本”变为“填写表格”

  • 普通 Prompt:
     是在一张白纸上写字。模型想写什么写什么,你想让它只写 JSON,得靠“哄”。
  • Function Calling / MCP:
     是直接给模型一个填空题

当开启 Function Calling 模式时,大模型内部的机制发生了变化:它不再预测“下一个字是什么”,而是预测“我该调用哪个函数?参数填什么?”

它会输出一个严格的数据结构对象:

{"name":"light_off","arguments":"{}"}

这个输出过程是被屏蔽的,不经过“聊天”通道。模型被强行限制了:你只能在 name 和 arguments 这两个框框里填东西,不能在外面多写一个字。

B. 强制校验:Schema 的硬约束

  • Prompt 方式:
     就像你在纸条上写“请不要乱写”。如果模型乱写,你的解析器只能报错,无法挽回。
  • MCP 方式:
     就像有一个严格的考官。

MCP 的工具定义里包含一个 JSON Schema(这就是“标准化的说明书”):

{"name":"light_off","parameters":{"type":"object","properties":{}}}

大模型输出时,系统底层会强制做校验:

  1. 如果模型输出的参数类型不对(比如该填数字它填了文字),直接拦截,报错,让模型重写。
  2. 如果模型想输出多余的废话,系统直接丢弃,因为那些废话不属于 arguments 字段。

3. 形象的比喻

想象你要让一个员工(大模型)帮你签合同。

  • Prompt 约束(简易方案):你口头嘱咐:“请直接在纸上写‘同意’,不要写别的!结果:员工很有主见,写道:“经过我的思考,我认为应该…所以我写‘同意’。-> 结果:格式乱了,你得去扣字眼。

  • MCP / Function Calling:你直接把一张只有签名栏的表格拍在他面前,把笔递给他。除了签名栏,其他地方都是锁死的、涂黑的,他只能在格子里签字。-> 结果:无论他多啰嗦,出来的永远是标准的签名格式。

因为 Prompt 只是“口头命令”,模型有权“不听”。 它的底层逻辑依然是生成文本,随时可能被“礼貌性”、“解释性”的训练数据带偏。

为什么 MCP 能统一?因为 MCP 利用的是大模型的“函数调用层”这是“填表机制”它把生成文本的“自由意志”关掉了,只剩下了填空的“执行力”,并且有 Schema(数据结构)做硬性校验。

这就是为什么“简易方案”容易崩,而 MCP 能成为工业标准的核心技术差异。

工具的“孤岛效应”(N x M 问题)

比如:你是一个程序员,你用“简易方案”做了三个工具:

  1. 一个查询数据库的工具。
  2. 一个读取本地文件的工具。
  3. 一个搜索网页的工具。

问题来了:你发现现在的 AI 应用太多了:ChatGPT 官网、Claude 官网、Cursor 编辑器、讯飞星火、通义千问……你想让这些所有的 AI 应用都能用你写的这三个工具。

按照简易方案:你需要给 ChatGPT 写一套解析插件,给 Claude 写一套,给 Cursor 写一套……如果有 10 个 AI 应用,3 个工具,你需要写 10 x 3 = 30 次 集成代码。

MCP 解决了什么?MCP 创造了一个“万能插座”你只需要把你的工具写成一个 MCP Server(插头)。无论是 Claude、Cursor 还是其他支持 MCP 的 AI 应用(插座),只要插上就能用。你写 1 次,到处运行。 这就是著名的 “Build Once, Run Everywhere”。

Prompt 的“无限膨胀”

场景:你的“简易方案”随着功能越来越多,Prompt 开始变得巨无霸:

“你是一个助手…如果要关灯输出A…如果要查天气输出B…如果要读文件输出C…注意格式必须是JSON…不要有多余字符…”

问题来了:

  1. Token 爆炸:
     每次对话都要先发这一大坨 Prompt,费钱费时。
  2. 注意力涣散:
     模型的上下文窗口是有限的,工具越多,模型越容易“看花眼”,导致格式输出错误。
  3. 动态调整困难:
     用户如果临时不需要“查天气”了,你还得动态修改 Prompt 把那段删掉,逻辑极其复杂。

MCP 解决了什么?MCP 引入了“动态发现机制”不需要在 Prompt 里写死所有工具。AI 在需要用的时候,才会去问 MCP Server:“你现在有哪些工具?”这就好比你不需要把整本字典背在背上,遇到不认识的字,查一下字典就行。这让大脑更轻松,反应更敏捷。

想象你是一个老板(AI模型),你想指挥员工(本地工具)干活。

  • 没有 MCP(你的简易方案):你每次招新员工(写新工具),都得专门花半天教他一套只有你懂的“老板方言”(自定义 Prompt 格式)。一旦你换个助理(换模型),新助理听不懂方言,所有员工都得重新培训一遍。累不累?

  • 有了 MCP:公司规定所有人必须讲普通话(标准协议)不管是你亲自上,还是你换个助理,还是招新员工,大家见面直接用普通话交流,立刻就能开工。

MCP 就是为了让 AI 模型和本地工具之间,不再需要每次都“重新发明语言”,而是统一说“普通话”,实现即插即用