
MCP 是什么?Model Context Protocol 入门指南
MCP 是 Anthropic 在 2024 年开源的协议,定义了 AI 应用如何连接外部工具和数据源。本文讲解 MCP 的工作原理、服务器与客户端的区别,以及它在 2026 年对 AI Agent 的意义。
MCP(Model Context Protocol,模型上下文协议) 是 Anthropic 于 2024 年底开源的一套标准,定义了 AI 应用如何连接外部工具、数据源和服务。你可以把它理解成 AI 界的 USB 标准:不需要为每个工具单独写一套对接代码,而是通过同一个协议连接,模型会自动发现可用工具。
MCP 之所以重要,是因为它解决了构建实用 AI Agent 最难的一环——让模型可靠地访问实时数据和执行真实操作。在 MCP 出现之前,每个团队都要自己搭一套脆弱的集成;有了 MCP,Agent 可以通过一个标准接口去查询数据库、读取文件、搜索网页或调用 API。
本文将解释 MCP 是什么、协议如何运作、MCP 服务器和客户端分别是什么,以及如何开始为自己的 AI Agent 接入工具。
MCP 是什么的缩写,为什么需要它
MCP 全称是 Model Context Protocol。Anthropic 在 2024 年 11 月开源了这套协议,目的是解决一个反复出现的痛点:每个 AI 应用都要为访问外部数据写自己的临时连接器,而这些连接器在不同客户端之间完全无法复用。
协议定义了一套标准的客户端-服务器架构:
- MCP 客户端是 AI 应用本身(Claude Desktop、Cursor、Claude Code 或任何自定义 Agent)。
- MCP 服务器是一个小程序,负责暴露某种具体能力——读取文件、查询数据库、调用 API。
- 两者通过 JSON-RPC 2.0 通信,交换带有类型定义的请求与响应。
在 MCP 出现之前,要把 AI 模型接入公司内部工具,意味着要为每个客户端单独写一套集成。有了 MCP,你只要写一次服务器,任何兼容的客户端都能使用它。
MCP 的工作原理:客户端、服务器与工具
MCP 建立在 JSON-RPC 之上,采用简单的请求-响应模型。整个流程是这样的:
- AI 应用启动(或连接到)一个 MCP 服务器。
- 客户端向服务器询问"你提供什么能力"——这就是**发现(discovery)**步骤。
- 服务器返回一组工具(Tools)、资源(Resources)和提示(Prompts)。
- 当模型判断某个工具与用户请求相关时,客户端就调用该工具,并把结果送回对话。
MCP 暴露的三种核心原语:
| 原语 | 是什么 | 示例 |
|---|---|---|
| Tools(工具) | 带有类型化输入/输出 Schema 的可执行函数 | query_database(sql)、read_file(path)、search_web(query) |
| Resources(资源) | 模型可以读取的静态或动态数据 | 一个文件、一行数据库记录、一个 API 响应 |
| Prompts(提示) | 可复用的提示模板 | 团队统一使用的代码审查提示 |
2026 年大家谈论 MCP 时,多半指的是 Tools——也就是 Agent 能执行的实在动作。Resources 是只读数据。Prompts 则是模板化的指令,用来规范模型处理任务的方式。
MCP 服务器是什么
MCP 服务器是一个小程序——通常是一个 Node.js 或 Python 脚本——它实现了 MCP 协议并暴露一种或多种能力。常见的例子包括:
- filesystem——让 Agent 读写磁盘上的文件。
- github——让 Agent 搜索仓库、查看 issue、创建 PR。
- postgres——让 Agent 查询 Postgres 数据库。
- puppeteer——让 Agent 驱动无头浏览器。
- slack——让 Agent 读取和发送消息。
每个服务器都作为独立进程运行。当 MCP 客户端连接时,它会启动服务器、发现可用工具,并把工具的 Schema 注入模型的上下文窗口,让模型知道自己能调用什么。
MCP 客户端是什么
MCP 客户端就是 AI 应用本身——任何能说 MCP 协议、并托管语言模型的东西。2026 年常见的客户端包括:
- Claude Desktop——Anthropic 的桌面应用。
- Claude Code——Anthropic 的终端编码 Agent。
- Cursor——AI 代码编辑器。
- 自定义 Agent——任何基于大模型构建、并接入了 MCP 的应用。
从客户端的角度看,MCP 只是扩展模型能力范围的一种方式。你在一个 JSON 文件里配置要连接哪些服务器,剩下的由客户端处理。
MCP 的传输方式:stdio、SSE 与 HTTP
MCP 支持三种传输机制,选择哪种会影响部署方式:
| 传输方式 | 工作原理 | 适用场景 |
|---|---|---|
| stdio | 客户端把服务器作为子进程启动,通过 stdin/stdout 通信 | 本地开发、单机场景 |
| SSE(Server-Sent Events) | 服务器远程运行,客户端通过 HTTP 长连接接入 | 远程服务器、共享部署 |
| Streamable HTTP | 无状态 HTTP 传输,每个请求独立 | 生产环境、横向扩展、Serverless |
大多数本地场景用 stdio,因为它最简单——客户端直接管理服务器的生命周期。远程和团队场景则倾向 SSE 或 Streamable HTTP,这样多个客户端可以共享同一个服务器实例。
一个最小的 MCP 配置示例
下面是一个典型的 MCP 客户端配置(Claude Desktop 和 Claude Code 使用的格式):
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/projects"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
}
}
}
}mcpServers 下的每一项定义一个服务器:启动命令、参数以及所需的环境变量。配置完成后,客户端会自动发现工具——无需改动任何代码。
MCP 没有解决的问题:工具过载
MCP 让接入工具变得简单,这也意味着团队会接入大量工具。由此产生了一个新问题,称为 MCP tool overload(MCP 工具过载),也叫上下文膨胀。
你连接的每一个 MCP 服务器,都会在 Agent 做任何事之前,把完整的工具 Schema 推入模型的上下文窗口。光是 GitHub MCP 服务器就暴露了大约 80 个工具。再加上文件系统、浏览器、数据库服务器,你很容易在模型根本用不到的定义上烧掉 10 万以上的 Token。Anthropic 自己的基准测试显示,这部分开销会拖慢工具选择的准确率,并推高每次调用的延迟。
这时候 MCP 和 Skills 的区分就变得关键。MCP2Skill 是一款桌面工具,它把原始的 MCP 工具集合转换成按需加载的 Skills——一层封装,让上下文里只保留一段简短描述,完整的指令只有在任务真正匹配时才会加载。结果是同样的能力、几分之一的 Token 消耗,外加跨所有 MCP 服务器的集中化配置和可观测性。
如果你已经跨过"连几个服务器试试"的阶段,开始感受到过载了,那这就是值得在 MCP 之上叠加的一层。
值得了解的常见 MCP 服务器
生态发展很快,以下是大多数团队最终会用到的服务器:
- @modelcontextprotocol/server-filesystem——文件读写。
- @modelcontextprotocol/server-github——GitHub 仓库、issue、PR。
- @modelcontextprotocol/server-postgres——Postgres 查询。
- @modelcontextprotocol/server-puppeteer——无头浏览器自动化。
- @modelcontextprotocol/server-slack——Slack 消息。
- @modelcontextprotocol/server-memory——持久化键值记忆。
完整列表可以在 MCP servers 仓库 里浏览。
如何开始使用 MCP
- 选一个客户端。 Claude Desktop 或 Cursor 是最简单的入口——都原生支持 MCP。
- 加一个服务器。 从 filesystem 开始,它最容易验证。编辑客户端的
mcp.json(或claude_desktop_config.json),加入上文示例的配置。 - 重启客户端,然后问模型一个需要用到工具的问题——"列出我 projects 文件夹下的文件"。
- 逐步增加服务器。 别一上来就连二十个,工具过载是真实且可量化的。
- 管理规模。 当服务器数量超过五六个,可以考虑用 MCP2Skill 这样的工具来集中配置、按 Agent 过滤可见工具,并把高频工具转换成按需加载的 Skills。
常见问题
MCP 是免费的吗?
是的。MCP 是基于 MIT 协议开源的。规范、参考实现以及大多数社区服务器都免费。你只为 Agent 调用大模型 API 的费用买单——协议本身不产生任何成本。
MCP 是谁做的?
Anthropic 在 2024 年 11 月创建并开源了 MCP。此后它被 Claude Desktop、Cursor、Claude Code 以及越来越多的第三方客户端和服务器采用。规范在 GitHub 上公开维护。
使用 MCP 需要写代码吗?
对大多数服务器来说不需要。你在 JSON 文件里配置好,客户端会处理其余部分。只有当你想构建自定义 MCP 服务器来暴露自己的内部工具或 API 时才需要写代码——即便如此,官方 SDK(TypeScript 和 Python)已经帮你处理好了协议细节。
MCP 和普通 API 有什么区别?
普通 API 是面向具体应用的——每一个都有自己的鉴权、请求格式和错误处理。MCP 是一套标准化协议:每个服务器都说同样的 JSON-RPC 接口,所以 AI 客户端无需提前了解细节就能连接任何 MCP 服务器。你可以把它理解成"AI 工具的 USB",而不是"又一个 API"。
###我应该连接多少个 MCP 服务器?
没有硬性上限,但社区共识是把单个 Agent 会话的实用上限放在5 到 7 个服务器左右。超过这个数量,工具 Schema 会挤占上下文窗口,工具选择的准确率下降。如果你需要更多,把稳定的高频工具转换成 Skills,让它们按需加载而不是一开始就全部塞进上下文。
MCP 服务器能访问互联网吗?
能。MCP 服务器能做任何普通程序能做的事——发 HTTP 请求、查询数据库、读文件、调其他 API。协议本身不限制服务器做什么,它只定义客户端和服务器之间如何对话。正因如此,你只应该运行自己信任的 MCP 服务器。
更多文章

如何用 Skills 减少 MCP 的 Token 浪费
MCP 工具会将大量 Token 注入上下文窗口。了解为什么将 MCP 工具转换为 Skills 可以减少高达 98% 的 Token 消耗,以及如何用 MCP2Skill 实现这一转换。


集中化 MCP 网关:在一个地方管理多个 MCP 服务器
将 AI Agent 连接到多个 MCP 服务器会带来配置混乱、安全漏洞和零可见性。了解集中化 MCP 网关如何解决这些问题,以及 MCP2Skill 如何通过工作区和工具过滤实现这一架构。


如何构建 AI Agent:实用指南(2026)
2026 年从零构建 AI Agent 的完整指南 — 从选择框架、通过 MCP 接入工具,到在生产环境中部署和观测你的 Agent。

邮件列表
加入我们的社区
订阅邮件列表,及时获取最新消息和更新