在 AI 领域里,MCP 就是 Model Context Protocol。
这个名字听起来很抽象,但底层问题其实很具体: 几乎每一套 agent 系统都想把模型连接到工具、文件、API、提示模板和外部资源上,可大家的接法都不一样。一个框架把一切包成 function calling,另一个框架发明自己的 tool schema,还有的系统把文件访问、prompt 模板和资源检索塞进一堆自定义插件。
当系统还只有一个 demo 时,这种差异不明显。一旦你开始同时维护多个 agent、多个 runtime、多个团队或多个环境,集成层就会迅速变成最难维护的部分。
官方的 Model Context Protocol introduction 说得很直接: MCP 是一个让模型连接所需上下文的开放协议。它的意义不是再发明一种“更聪明的模型接口”,而是给 host 和外部能力之间建立一个更稳定的协议表面。
这也是为什么 MCP 对 AI 智能体比对一次性聊天机器人更重要。聊天机器人主要是“读然后答”,而智能体会“读、计划、调用、交接、重试、行动”。步骤一多,临时拼出来的适配层就会越来越昂贵。
MCP 的价值不在于“把一切都变新”,而在于把最容易分裂的几个集成面标准化了下来:
| 问题 | 没有 MCP 时 | 有了 MCP 后 |
|---|---|---|
| 能力发现 | 每套系统都用不同方式描述工具和数据 | host 可以通过统一协议发现能力 |
| 工具调用 | 大量项目私有包装层和胶水代码 | 工具调用边界更可预测 |
| 资源访问 | 文件、文档、数据暴露方式完全不统一 | resources 成为第一类协议对象 |
| Prompt 打包 | 模板散落在应用代码里 | prompts 可以作为结构化对象暴露 |
| 可迁移性 | 换 host 常常要重写一遍集成 | 在 MCP-aware host 之间复用更现实 |
这意味着工程团队可以少花时间处理“这个 runtime 的工具定义跟另一个为什么不一样”,把更多精力放在真正重要的问题上: 这个 agent 到底应该被允许做什么。
官方规范把这套结构拆成 hosts、clients、servers,再加上 tools、resources、prompts 这些一等公民能力。Anthropic 最初发布 MCP 时表达的重点也类似: 它不是为了让模型突然更聪明,而是为了让 AI 系统连接外部上下文和能力时,不必每次都重新发明接口。可参考官方的 Anthropic announcement 和 MCP specification。
这部分往往最容易在热度里被忽略。
MCP 标准化的是协议边界,但它并不会自动给你这些东西:
这点很关键,因为很多被归咎于“模型不靠谱”的生产事故,真正坏掉的其实是上下文装配和能力控制。
比如:
更准确的理解方式是:
MCP 是协议层,而生产级上下文系统仍然是一个完整系统。
大多数 agent 系统的第一版其实都能跑起来,因为它们通常只有三样东西:
这是最幸福的阶段。
真正的复杂度会在下面这些条件出现后迅速冒出来:
这时隐藏成本会全部浮出水面。
一个团队把时间字段叫 start_time,另一个叫 startAt,第三个叫 begin。模型有时能凑合理解,但人类维护者最终会不再相信“日历工具”到底意味着什么。
这个 agent 到底只能读 ticket,还是还能关闭 ticket?它能读取合同,还是也能修改合同?如果接口本身没有把边界写清楚,策略含义就会泄漏到注释、prompt 和口口相传里。
一个 host 里能跑通的东西,换到另一个 host 常常要重做一遍。实验变慢,安全审查也会更痛苦,因为每一种自定义 transport 和 wrapper 都要重新解释。
一个真正可用的 agent 平台,通常至少有五层:
| 层 | 作用 |
|---|---|
| 数据与文档层 | 原始文件、ticket、记录、API |
| 上下文整形层 | 标准化、schema 映射、索引、版本化 |
| 协议交付层 | MCP、API 或其他交付面 |
| runtime 控制层 | 规划、重试、预算、fallback、审批 |
| 治理层 | 权限控制、日志、评测、回滚 |
MCP 处在第三层。
这其实给了一个很重要的设计提示: 协议可以很干净,但如果底层上下文本来就是混乱的,MCP 只会把这份混乱更稳定地暴露出来,不会替你把混乱变整洁。
聊天机器人在很长时间里都能带着不少集成混乱继续工作,因为它们大多数场景只是在“读取然后回答”。
智能体不一样。它们会:
在这种系统里,协议一致性不只是“架构洁癖”,而是降低复杂度最划算的做法之一。
planner 可以先发现能力。
worker 可以只调用需要的工具。
reviewer 可以回看链路,而不必逐层扒开自定义胶水代码。
它当然不能替代好的 runtime 设计,但它能显著减少那些本来不该存在的隐形集成决定。
puppyone 更适合放在协议边界的下面和旁边。
实际做法通常是:
换句话说,MCP 帮助 agent 以更标准的方式接入外部世界,puppyone 则帮助你确保它接到的是结构化、受治理、适合生产使用的上下文。
如果你刚接触 MCP,最值得记住的一句话其实很朴素:
MCP 不会直接让 AI 智能体变得更聪明。
它真正带来的变化,是让智能体的集成层不再那么 bespoke。
这个价值听起来没有 hype 里那么夸张,但在生产系统里却非常重要。因为当工具访问不再埋在框架私有 glue 里,系统就会更容易解释、更容易迁移,也更容易审查。
最能从中获益的团队,往往正是那些已经开始感到这些痛点的人:
这些团队,正是最该认真理解协议边界的人。
用 puppyone 把 MCP 架构落到受治理的上下文之上Get started不完全一样。tool calling 指的是模型或 runtime 调用外部能力的通用行为,而 MCP 是一种把这些能力以标准化方式暴露和发现出来的协议。
不会。很多 MCP server 底层依然是普通 API。MCP 做的是给 agent host 提供统一接口,而不是消灭原有系统。
还远远不够。你仍然需要治理、上下文质量控制、重试、审批、日志和回滚。MCP 非常有价值,但它只是生产栈中的一层。