什么是 MCP 本节摘要:MCP(Model Context Protocol,模型上下文协议)是 Anthropic 于 2024 年底提出的开放标准,目标是解决 AI 编程的一个根本痛点:模型再聪明,也只能「看到」你喂给它的文本。想让 AI 读本地文件、查数据库、调 API、搜网页?过去每个工具都要单独写集成代码。MCP 把这件事标准化了——一个协议,任意 AI 客户端都能即插即用地连接任意外部工具和数据源。本节从痛点出发,讲清 MCP 的设计动机、核心概念(Tool / Resource / Prompt 三原语),以及它与 OpenAI Function Calling 的本质区别。
本节摘要:MCP(Model Context Protocol,模型上下文协议)是 Anthropic 于 2024 年底提出的开放标准,目标是解决 AI 编程的一个根本痛点:模型再聪明,也只能「看到」你喂给它的文本。想让 AI 读本地文件、查数据库、调 API、搜网页?过去每个工具都要单独写集成代码。MCP 把这件事标准化了——一个协议,任意 AI 客户端都能即插即用地连接任意外部工具和数据源。本节从痛点出发,讲清 MCP 的设计动机、核心概念(Tool / Resource / Prompt 三原语),以及它与 OpenAI Function Calling 的本质区别。
想象一个场景:你在 Cursor 里跟 AI 说「帮我看看 /var/log/app/error.log 里最近的报错」。
没有 MCP 时,AI 会说:「我无法访问你的文件系统。请把日志内容复制粘贴给我。」
于是你:打开终端 → tail -100 /var/log/app/error.log → 复制输出 → 粘贴到对话框 → AI 分析 → 给你修复建议 → 你再手动去改。
这个「人肉中转」的过程,每天可能重复十几次:查文档、读配置、看日志、搜 Stack Overflow。AI 明明有能力理解这些信息,但它「够不着」——它被锁在一个纯文本的对话框里。
MCP 的设计动机就是:给 AI 装上标准化的「手和脚」,让它能安全、可控地触达外部世界。
MCP 定义了三种「原语」(primitive),是 AI 与外部世界交互的基本方式:
AI 主动调用的函数。比如:
read_file(path) — 读取文件内容search_web(query) — 搜索互联网run_query(sql) — 执行数据库查询Tool 是「AI 决定什么时候用、怎么用」的。AI 根据你的问题,判断需要调用哪个 Tool、传什么参数。
AI 可以读取的数据源。比如:
Resource 更像「背景材料」——AI 可以在需要时读取,但不像 Tool 那样有「执行」的含义。
预定义的交互模板。比如:
Prompt 是 Server 提供给 Client 的「快捷方式」,简化重复性交互。
关键概念:对大多数使用者来说,Tool 是最重要的原语。90% 的 MCP 使用场景都是「AI 调用一个 Tool 来获取信息或执行操作」。Resource 和 Prompt 是锦上添花。
很多人会问:「OpenAI 的 Function Calling 不也是让 AI 调用外部函数吗?MCP 跟它有什么区别?」
| 维度 | Function Calling | MCP |
|---|---|---|
| 层级 | 厂商 API 级别 | 开放协议级别 |
| 绑定 | 绑定特定模型厂商(OpenAI) | 模型无关(任何 LLM 都能用) |
| 方向 | 单向(AI 调用 → 返回结果) | 双向(Client ↔ Server 持续通信) |
| 生态 | 每个应用自己实现 | 共享生态(一个 Server 所有客户端通用) |
| 发现 | 开发者硬编码函数列表 | Server 启动时自动声明能力 |
| 传输 | HTTP API 调用 | stdio / SSE(支持本地进程) |
类比:Function Calling 像是「每个电器配一个专用充电器」,MCP 像是「USB-C 统一接口」。
实际意义:你写了一个 MCP Server(比如「查询公司内部知识库」),它可以同时被 Cursor、VS Code、Windsurf、Claude Desktop 使用——不需要为每个客户端单独写集成代码。
截至 2025 年中,MCP 生态已经相当活跃:
官方/社区维护的常见 Server:
支持 MCP 的客户端(Host):
💡 技巧:如果你需要的功能已有现成 Server(如文件读取、搜索),直接用现成的,不需要自己开发。只有在需要连接公司内部系统或特定业务逻辑时,才需要自己写 Server(第 05 节讲)。
MCP 的设计充分考虑了安全性:
⚠️ 注意:虽然 MCP 有安全机制,但你仍然需要审查 AI 的 Tool 调用。特别是涉及写操作(写文件、执行命令、修改数据库)的 Tool,建议保持「调用前确认」开启。
理解了 MCP「是什么」和「为什么」之后,下一节我们拆解它的技术架构:Host / Client / Server 三层是如何通信的。