什么是MCP协议
更新: 7/2/2026字数: 0 字 时长: 0 分钟
你有没有遇到过这种场景:
你跟 AI 说"帮我查一下数据库里这个用户的订单",它说"抱歉,我没法直接访问数据库"。
你说"帮我把这段代码提交到 GitHub",它说"抱歉,我操作不了你的 Git"。
你不禁想问:你那么聪明,怎么连这么简单的事都做不了?
问题不在于模型笨,而在于它被隔离在一个沙箱里,碰不到外部世界。它能思考、能推理、能生成,但数据库、文件系统、GitHub、企业内部 API——这些它统统够不着。
MCP(Model Context Protocol)就是给这个问题设计的一把"万能插头"。
MCP 到底是个啥?
MCP 是 Anthropic 在 2024 年底推出的一个协议标准。一句话解释:
让 AI 以统一、安全的方式调用外部工具和数据。
你可以把它理解成 AI 世界的"USB-C 接口"——不管后面接的是数据库、GitHub、本地文件还是企业内部系统,前面这套交互方式是一样的。
没有 MCP 的时候有多痛苦?
在 MCP 出现之前,想让 AI 接入外部系统也不是不行,但基本是各路神仙各显神通:
- 每个工具写一套整合逻辑,API 格式五花八门
- 安全问题全靠开发者自己兜底
- 换一个模型或者换一个工具,推倒重来
- 想加一个新能力?改代码改到怀疑人生
MCP 干的事很简单:把这些乱七八糟的对接方式统一成一套标准。就像 HTTP 统一了网页访问一样,MCP 想统一 AI 跟外部世界的交互。
架构长什么样?
不复杂,五层:
你(用户)
↓
大模型(LLM)—— 负责理解意图、决定要不要调工具
↓
MCP Client —— 发起请求、管理上下文
↓
MCP Server —— 提供具体能力、执行真实逻辑
↓
外部系统 —— 数据库、GitHub、文件、企业 API工作流程也很直观
1. 你说"帮我查一下上个月的销售数据"
2. LLM 理解了:需要查数据库
3. 通过 MCP Client 发请求给 MCP Server
4. MCP Server 执行 SQL 查询
5. 数据返回给 LLM
6. LLM 整理成你想要的格式输出整个过程你不需要关心中间怎么接的,对用户来说就是"问了就答了"。
MCP 能干什么?
1. 统一工具调用
以前调个工具,每个工具的格式、鉴权方式、返回结构都不一样。MCP 把这个标准化了:
{
"tool": "get_user",
"input": { "id": 123 }
}模型输出这种结构化指令,MCP Server 负责执行。你不用关心 Server 后面是 MySQL 还是 PostgreSQL。
2. 上下文管理
不是所有数据都适合拼进 prompt 里。MCP 支持:
- 结构化传入上下文(用户信息、项目信息、权限等)
- 数据隔离(该谁看谁看)
- 按需加载(不用把所有数据一次性灌进去)
3. 随便扩展
任何东西都可以封装成 MCP Server:
- 文件系统操作
- Git 操作
- 命令行执行
- 数据库查询
- 第三方 API(飞书、企业微信、Jira...)
加一个新能力 = 接入一个新的 MCP Server,不用动其他部分的代码。
两个实际的例子
场景一:让 AI 帮你管 GitHub
你说:帮我建一个项目仓库,初始化代码,提交上去AI 背后做的事:
- 调用 GitHub MCP Server → 创建 repo
- 生成代码
- 通过 MCP → 提交到仓库
- 创建 PR
全程你就在对话窗口里看着它干完。
场景二:IDE 里修 bug
你说:帮我修这个 bugAI 在 IDE 里做的事:
- 通过文件系统 MCP → 读取项目文件
- 分析问题
- 修改代码
- 生成 diff
- 通过 Git MCP → 提交
本质上和你自己改代码的流程一模一样,只是执行的人换成了 AI。
两个场景底层逻辑是一致的:
AI 做决策 → MCP 做连接 → 工具做执行 → 返回结果MCP 和 Function Calling 是什么关系?
经常有人把这两个搞混,其实很好区分:
| Function Calling | MCP | |
|---|---|---|
| 工具调用 | ✅ | ✅ |
| 协议标准化 | ❌(各搞各的) | ✅(统一标准) |
| 跨系统 | ❌ | ✅ |
| 安全控制 | 靠开发者自己 | 协议层内置 |
一句话说明白:
Function Calling 是模型的一种能力——它能输出"我要调这个函数"。
MCP 是一套体系——定义了模型怎么发现工具、怎么调、怎么管权限、怎么处理结果。
Function Calling 相当于"会开车",MCP 相当于"交通规则 + 驾校考核标准"。你会开车不代表路上不会出事,有了规则和标准才能规模化上路。
为什么这件事重要?
MCP 在解决一个根本问题:AI 不能永远活在对话框里。
你让 AI 写代码,它写完了,然后呢?你手动复制粘贴到 IDE?手动跑测试?手动部署?
MCP 让 AI 从"能说"变成"能做"。这个转变的意义,可能比模型本身参数翻一倍还要大。
MCP 就是 AI 通向现实世界的那根数据线。插上了,它就不只是个聊天的,而是个能干活的。
延伸阅读