11.大模型系统软件2:MCP和API区别
API(应用程序接口)定义了“怎么请求数据”,而 MCP(Model Context Protocol,模型上下文协议)定义了“AI怎么使用工具”(底层为调用各种API)。
一句话说明:机器人(AI)通过说明书(MCP 协议)了解如何使用工具箱中的工具(API)
1.1 概念对比
| 特性 | 传统 API | MCP (模型上下文协议) |
|---|---|---|
| 核心驱动力 | 开发者驱动:程序员写代码调用接口 | AI 模型驱动:AI 自主决策调用什么 |
| 调用方式 | 预定义函数、硬编码,直接调用 | 动态发现、自然语言触发,MCP Server 内部调用 API |
| 数据流向 | 单向请求-响应 | 双向、支持流式、状态保持 |
| 上下文感知 | 无状态,每次调用需全量传参 | 有状态,可维护会话上下文 |
| 工具发现 | 需阅读文档,手动集成,开发者写代码 | AI 模型决策:实时获取可用工具列表 |
| 主要目的 | 系统间数据交换(底层接口) | AI Agent 能力扩展(上层协议) |
MCP 在底层实现上依赖 API ,它是在 API 之上构建的更高级的抽象层。MCP是 对 API 的增强,MCP组合多个 API 成为复合工具(单一 API 功能有限)。

1.2 使用方式
1.2.1 API
# 传统 API:人工写代码定义每一步
def get_weather(city):
# 1. 固定 URL
url = f"api.weather.com?city={city}"
# 2. 发起请求
response = requests.get(url)
# 3. 解析数据
return response.json()
# 代码逻辑:用户说“北京天气”,必须先匹配这个函数
if "天气" in query:
result = get_weather("北京")
1.2.2 MCP
开发者已经提前写好了 API 调用逻辑。MCP Server 自动转换为 API 调用。
1)AI应用加载工具列表
tools = [ {
"name": "get_weather",
"description": "获取指定城市的天气"
} ]
2) MCP 工具定义
{
"name": "get_weather",
"description": "获取天气信息",
"parameters": {
"city": "string"
} }
3)AI 模型生成调用
{
"tool": "get_weather",
"parameters": {
"city": "北京"
} }
1.3 交互模式

1.4 使用总结
| 传统 API | MCP | |
|---|---|---|
| 工具查找 | 查文档,手动写代码调用 | 服务器启动时自动发送工具列表(只需配置 JSON 文件) |
| 新增工具 | 修改代码,重新部署 | 添加 MCP Server,AI 自动识别 |
| 灵活性 | 低,代码与工具强耦合 | 高,可插拔式架构 |
核心价值:MCP 让 AI 模型能够像人使用工具一样,智能地调用底层 API
MCP 并不完全替代 API,而是建立在 API 之上的一层“AI 友好”的抽象。
1)API 负责执行:真正的数据读写、计算还是通过底层 API 完成。
2)MCP 负责决策:MCP Server 像一个“翻译官”,把 API 包装成 AI 能理解的工具。AI 决定调用后,Server 再去调用底层的API(REST、gRPC、本地 API 等)来执行。
MCP 不是替代 API,而是API 的"包装器"、"编排层"、"AI 适配层"(让 AI 能够理解和使用 API),开发者写一次封装,所有 AI 应用都能用。
在实际开发中,你可以把一个现成的 API “封装” 成一个 MCP Server,从而让 AI 模型能够智能地调用它。
更多推荐

所有评论(0)