Meta把内部设计系统开源了:支撑内部13000+应用:专为Agent调优
2026-07-03
2026-07-07 0
你有没有想过,为什么现在的 AI 虽然能写诗作画、对答如流,但一旦让它帮你订个机票、改个本地文件,它就无能为力了?

传统的大模型就像一个博学的“书呆子”——脑子里装满了互联网上的海量知识,但对外面的世界(你的本地文件、邮件、日历)一无所知,更无法动手操作。它和外部世界之间,似乎隔了一堵无形的墙。
为了让 AI 能调用外部工具,开发者们做过各种尝试:RAG(检索增强生成)、Function Calling(函数调用)、各种 SDK 和插件……但每一次接入,都需要为不同的模型写不同的适配代码,繁琐且重复。
直到 MCP(Model Context Protocol,模型上下文协议) 的出现,这堵墙开始崩塌了。
MCP 是 Anthropic 公司于 2024 年 11 月 25 日 推出的开放协议。你完全可以把它理解为 AI 应用领域的 “USB-C 接口” 。
回想一下 USB-C 接口给数码产品带来的革命:
| 场景 | USB-C 的作用 | MCP 的作用 |
|---|---|---|
| 统一接口 | 一个接口搞定充电、数据传输、视频输出 | 一个协议搞定文件读写、API 调用、工具执行 |
| 即插即用 | 任何设备只要支持 USB-C 就能互联 | 任何 AI 客户端只要支持 MCP 就能调用任意 MCP Server |
| 生态开放 | 无数外设厂商基于 USB-C 开发配件 | 无数开发者可以基于 MCP 开发 Server |
有了 MCP,AI 模型不需要再为不同的数据源写定制代码,它能以统一的方式访问任何接入了 MCP 标准的资源和工具。
很多人第一次接触 MCP 会困惑它到底是什么。这里给出一个清晰的定义边界:
在 MCP 诞生之前,想让 AI 接入外部工具和数据,开发者面临的是“碎片化地狱”:
我的笔记里有这样一段话:
有了 MCP 之后:
要深入理解 MCP,我们需要先搞清楚它的核心架构。整个 MCP 体系由三个关键角色构成:
text
复制代码┌─────────────────────────────────────────────────────────────┐
│ MCP Host(宿主) │
│ Cursor / Trae / Claude Code / Codex │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ MCP Client(客户端) │ │
│ │ 负责与 MCP Server 通信的中间层 │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ │ MCP 协议通信 │
│ ▼ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ MCP Server(服务端) │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 本地文件 │ │ 数据库 │ │ 邮件服务 │ │ 高德地图 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
1. MCP Host(宿主)
这是运行 AI 模型的环境,是你与 AI 交互的前端界面。比如你电脑上的 Cursor、Trae、Claude Code 等 IDE 或 AI 客户端。
2. MCP Client(客户端)
它运行在 Host 内部,是 Host 和 Server 之间的“通信兵”。当用户提出的任务需要外部数据或工具时,Client 会向 Server 发起请求。一个 Host 可以配置一推的 MCP Client,就像浏览器可以安装多个插件一样。
3. MCP Server(服务端)
这是整个架构中的关键角色。它提供了大模型想要使用的各种“上下文”:
Server 定义了如何与 Client 交互(通信方式),将这些资源和服务“标准化”地提供给大模型。
理论说再多,不如动手实践。接下来,我们通过一个完整的案例,搭建一个 MCP 官方文件系统服务端,让 AI 能够安全读写我们电脑上的指定目录文件。
我们要实现的目标:让 AI 能够读取、修改我们电脑上 mcp-test 文件夹里的文件。
整个流程分为三步:安装 → 配置 → 使用。
打开你的终端(命令行工具),输入以下命令,将 MCP 的文件系统服务包全局安装到你的电脑上:
bash
复制代码npm i -g @modelcontextprotocol/server-filesystem
在你的项目根目录下,找到或创建一个 .mcp.json 配置文件(有些 IDE 也支持 {}.mcp.json 的命名方式),添加如下配置:
json
复制代码{
"mcpServers": {
"filesystem": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"C:Users24502Desktopworkspacehhaiaimcpmcp-test"
]
}
}
}
配置参数解析:
| 参数 | 含义 |
|---|---|
"type": "stdio" | 通信方式,通过标准输入输出来通信 |
"command": "npx" | 使用 npx 来运行 Node.js 包 |
"-y" | 自动确认安装,无需手动输入 yes |
"@modelcontextprotocol/server-filesystem" | 要运行的 MCP 服务包名 |
"C:...mcp-test" | 服务允许访问的目录路径(只限定这个目录) |
配置完成后,打开你的 IDE(比如 Trae 或 Cursor),查看 MCP 服务是否已经成功连接。
你可以在 AI 对话中提问:“请帮我查看 mcp-test 目录下有哪些文件?”
如果配置正确,AI 会通过 MCP 协议调用 filesystem 服务,列出目录下的文件列表。在我的笔记中,mcp-test 目录下就包含了 .claude 文件夹、settings.json、JS test.js 等文件。
接下来,我们来做一个真正的实战操作:让 AI 通过 MCP 修改一个 JS 文件。
假设 mcp-test 目录下有一个 JS test.js 文件,内容如下:
javascript
复制代码Let i = 1;
var b = 2;
var c = 3;
现在,我们通过 AI 对话让它修改这个文件:
用户提问:请把 JS test.js 中的 Let i = 1; 改成 let i = 10;,并且把 var 都改成 const。
AI 的思考过程(来自笔记中的 Agent 思考记录):
text
复制代码Thought: 在工作区搜索 '**/test.js'
Thought: hhaiaimcpmcp-testtest.js
Thought: filesystem/edit_file
Thought: 已通过 MCP filesystem 工具的 edit_file 方法完成修改
最终,AI 通过 MCP 调用了 filesystem/edit_file 工具,成功完成了文件的修改。整个过程 AI 自主完成了:
很多人第一次接触 MCP 时,会觉得它只是一个“增强版的插件系统”。但我的笔记里有一句非常重要的话:
传统的 AI(Chatbot):
Agentic AI(智能体 AI):
笔记里有一段话概括得很好:
MCP 通过标准化的方式,把这两类内容开放给大模型:
| 类别 | 具体内容 | 让 AI 能做什么 |
|---|---|---|
| 资源(Resources) | 数据库、API、本地文件、SaaS(飞书、高德地图、Gmail) | 获取实时数据、读取私人文档、查询企业信息 |
| 工具(Tools) | 创建日历、发邮件、执行命令、远程控制 | 执行实际操作、改变外部状态、完成具体任务 |
这两者结合起来,大模型就从一个“纸上谈兵”的顾问,变成了一个“能打能抗”的执行者。
MCP 的交互不是简单的“收到指令→执行指令”,而是基于推理的:
这就像你遇到了一个专业问题,先自己思考,发现知识不够,然后去翻阅工具箱里的各种参考资料和工具,最终完成任务。
很多人会把 MCP 理解为“AI 的插件系统”,但实际上有本质区别:
| 维度 | 传统插件 | MCP |
|---|---|---|
| 标准化程度 | 每个平台各自定义 | 统一标准,跨平台通用 |
| 接入方式 | 为每个模型单独开发 | 一次开发,所有 MCP Client 可用 |
| 通信协议 | 各不相同 | 统一的 MCP 协议 |
| 生态模式 | 封闭或半封闭 | 完全开放 |
MCP 就像古代的“通用文字”——秦朝统一六国文字后,各地之间才能高效沟通。MCP 为 AI 生态提供了统一的“通用语言”。
MCP 的出现,标志着 AI 不再是孤立的“大脑”,而是开始长出能够感知和改变世界的“手和脚”。