1 为什么需要MCP?
现在 AI 大行其道,就像以前的"互联网 + 世间万物"一样,AI 也要和世间万物交互。以前是 互联网 + 医疗,互联网 + 购物,现在是 AI + 医疗,AI + 购物。
但 LLM 本质上只能"生成文本",不能直接执行动作。它就像是一个聪明的大脑,但没有其他硬件,我们自然就希望它能接入其他工具。
但现在有一个麻烦事:我们有很多个 AI(如 ChatGPT、Gemini、Claude 等大语言模型(LLM)),也有无数个应用(如 MySQL、GitHub、IDE)。AI 怎么和应用交互呢?如果逐一适配,那太麻烦了。软件设计中有句名言:"没有什么是加一层解决不了的问题。"我们可以设计一个 AI 与应用程序的交互协议,只要兼容该协议的 AI 和应用都可以直接交互。MCP 就是这样一个协议。
2 MCP 是什么?
MCP 好比一本使用说明书,用来告诉 LLM 如何调用工具 。简单来说,我们想让 AI 有手有脚,但工具千千万,AI 需要知道每个工具能做什么、怎么用。MCP 通过三个概念解决了这个问题:Tools、Resources 和 Prompts,分别对应能做什么、有什么数据、怎么用。 就好比你新买一个相机,不会用,得先看看说明书,了解这个相机能做什么(Tools)、配置都有什么(Resources)、怎么操作(Prompts)。
规范地说,MCP 解决的是 LLM 如何安全、标准化地调用外部能力。好比是为 AI 打造了一个通用的 USB 接口,是给AI和各类工具建的一座桥梁。
3 实际使用中 MCP 是如何运行的?
这里我通过最常见的代码生成来介绍 MCP :
- 假设你用Cursor(Trae/通义灵码)写代码,模型用的是 ChatGPT,并安装好了MySQL 这类 MCP 工具。
- 现在你告诉Cursor:"查询数据库里
Student表结构,并据此创建实体类Student.java"。
整个生成代码的流程如下:

- Cursor 收到你的指令后,会转发给 LLM(ChatGPT)
- ChatGPT 收到指令后,开始思考
-
- 然后拆解出流程:
-
-
- "要获取 Student 表结构"
- "要创建 Java 实体类 Student.java"
-
-
- 虽然 LLM 还不能执行这些动作,但它会判断:
-
-
- "查表结构" = 需要外部工具(SQL)
- "创建实体类文件" = 需要文件系统或 IDE 工具
-
- 然后ChatGPT 开始执行流程,第一步就是调用 MCP Tool,他会生成一个标准的 mcp tool call, 格式是JSON,其内容本质就是函数名加参数,和你调用API的内容一样,比如
MySQL.run_sql("DESCRIBE Student")。 - ChatGPT 把请求的JSON 发给 Cursor,Cursor 就会找到内部对应的 MCP Client,MCP Client 就会和 MCP Server 通信,拿到结果,然后返回给 ChatGPT。
- ChatGPT 拿到表结构后就可以生成 Java代码了,后面可以再调用其他的 Tool ,比如
write_file来生成文件。
4 MCP 中各参与者的介绍
看完这个流程后,现在再介绍下出场选手:

- Host(Cursor) :运行 LLM + MCP Client + UI
- LLM(ChatGPT) :决策者,决定用哪个工具
- MCP Client(Cursor 内部) :调度者,负责:
-
- 接收 LLM 的工具调用请求
- 找到对应 Server
- 发送调用
- 把结果返回给 LLM
- MCP Server(MySQL) :能力提供方(执行 SQL)
- Tools / Resources:具体能力接口,如 run_sql