大模型要调用外部能力,路子不止一条:直接调 REST API 、封装成 SDK 、或者走 MCP(Model Context Protocol,模型上下文协议)。 MCP 这两年很热,但它不是「更先进的 API 」,而是解决特定问题的另一种抽象。本文帮你建立一套决策框架:什么时候 MCP 是真解,什么时候它只是给你的架构多套一层壳,避免为了赶时髦把简单的事搞复杂。
MCP 到底解决了什么
传统 API 调用要人写死:拼 URL 、处理鉴权、解析返回、再把结果喂回模型。换一个工具就得重写一套胶水代码。 MCP 的价值在于把「工具怎么被模型用」标准化:服务端声明自己提供哪些能力(工具、资源、提示),客户端(智能体/IDE)按统一协议发现并调用,模型自己决定何时用哪个。它解决的是「多工具、多客户端的重复对接」问题,而不是「单次调用更快」。
和 API/SDK 的本质区别
API 是能力的端点,SDK 是调用端点的封装,二者解决「怎么连」。 MCP 解决的是「连上之后模型怎么发现、怎么选、怎么组合」。所以 MCP 通常架在 API 之上:一个 MCP server 背后往往就是若干 REST 接口。它不替代 API,而是给 API 加了一层「对模型友好」的编排面。和 MCP 封装 OpenAPI/REST 的思路一致——先把已有接口接进协议,再让模型自由调用。
该用 MCP 的信号
- 多个客户端要接同一批工具:IDE 、智能体框架、聊天产品都要用你的能力,MCP 一次声明、处处可用,省下 N 套适配。
- 工具数量多且常变:几十个能力、还在持续新增,让模型动态发现比硬编码更稳。
- 要让模型自主编排:需要模型在运行时决定调哪个、调几次、怎么串,MCP 的标准化描述正好喂给规划器。
- 跨团队/跨厂商复用:你提供的能力想被别人现成接入,标准协议降低对接成本。
不该用 MCP 的信号
- 只有一两个固定调用:直接调 API 或封个函数最省事,套 MCP 是过度设计。
- 延迟和可控性优先:MCP 多一层协议与发现开销,对毫秒级、强确定性链路反而是负担。
- 调用方不是模型:如果是传统后端服务间通信,MCP 并不比 gRPC/REST 更合适。
- 团队没有智能体场景:没有「让模型自主选工具」的需求,MCP 的收益就落不了地。
落地时的现实考量
决定用 MCP 后,真正的工作量在两端:服务端把能力描述清楚(工具的参数 schema 、资源的含义),客户端做权限与隔离。生产环境尤其要管好「模型能调什么、不能调什么」,可参考 MCP 生产部署 与 MCP 网关代理 的实战,把鉴权、审计、限流前置,而不是等出事再补。
- 问客户端:是否有多个客户端(IDE/智能体/产品)要接同一批工具?是则 MCP 省适配。
- 问规模:工具是否多且常变、需要模型动态发现?是则硬编码会迅速失控。
- 问场景:是否要模型在运行时自主编排调用?是则 MCP 的标准化描述正合适。
- 问必要性:若只是固定一两次调用、延迟敏感、或非模型调用方,直接用 API/SDK 更省。
常见问题
MCP 会让我的 API 变快吗?
小项目也有必要上 MCP 吗?
MCP server 和 REST 接口是什么关系?
上生产最该防什么?










评论 (0)