第 1 篇:MCP 是什么?——AI 世界的"万能插座"

你有没有遇到过这种情况——用 ChatGPT 或者 Claude 的时候,想让 AI 读一下我本地的文件,或者查一下数据库,或者发个邮件,结果它说"抱歉,我无法访问外部资源"。

然后你就得自己去查、复制、粘贴。体验瞬间断档。

这不是 AI 不够聪明,而是它被"关"起来了。AI 模型本身就像一个超级大脑,但这个大脑没有手、没有眼睛、也连不上网。它所有的知识都来自训练数据,你问它"今天的股价",它只能说"我的知识截止到 X 年 X 月"。

那么问题来了:能不能给 AI 模型装上一套"感官"和"手脚"?

这就是 MCP 要做的事。

1.1 从 USB-C 说起

先聊一个完全不相关的东西——充电线。

在 USB-C 统一标准出现之前,你桌上是这样的:手机一根线、平板一根线、耳机一根线、相机一根线。每换一个新设备,就得多备一根线。乱不乱?乱。烦不烦?烦。

USB-C 出现之后呢?一根线充所有。管你什么牌子什么设备,插上就行。

MCP 干的也是类似的事。

在 MCP 出现之前,每个 AI 应用想对接外部工具,都得自己写一套集成代码。A 公司想让 AI 读数据库,自己写一套。B 公司想让 AI 查文件,自己写一套。C 公司想让 AI 调用 API,又自己写一套。每家的"接法"都不一样,换个 AI 模型就得重来。

MCP(Model Context Protocol)就是给这个场景定了个"USB-C 标准"。它是一套开放协议,规定了 AI 模型怎么跟外部工具和数据源"对话"。

一句话总结:

MCP 是一个让 AI 模型安全访问外部工具和数据的统一接口标准

有了它,你写一次工具,所有支持 MCP 的 AI 都能用。反过来,AI 只要支持 MCP,就能接上所有 MCP 工具。

1.2 MCP 怎么工作的?

MCP 的架构很简单,就三个角色:

你的 AI 应用 ←→ MCP 协议 ←→ MCP 服务器(数据源 / 工具)
  • MCP 客户端:就是你的 AI 应用(比如 Claude Desktop、VS Code 里的 AI 插件)。它负责跟用户对话,也需要调用外部工具。
  • MCP 服务器:每个服务器暴露一组能力,比如"我能查文件"、“我能搜网页”、“我能读数据库”。服务器是轻量级的程序,专注做好一件事。
  • MCP 协议:两者之间的通信规则——怎么说、说什么、格式是什么。

你不需要关心底层怎么传数据,MCP 协议帮你搞定。

1.3 MCP 的三件套

MCP 定义了三种核心能力,理解了它们就理解了 MCP 的 80%。

Resources(资源)—— AI 的"眼睛"

Resources 让 AI 能"读"东西。文件内容、数据库记录、API 返回结果……都是资源。

每个资源有一个 URI 标识,就像网页的 URL 一样。比如 file:///home/user/notes.txt 或者 database://users/123

AI 说:"帮我读一下这个文件。"MCP 服务器就去拿到内容,返回给 AI。

简单说:Resources = AI 能读取的数据

Tools(工具)—— AI 的"手"(重点)

Tools 让 AI 能"做事"。除了读,还要能写、能执行、能操作。

比如:搜索网页、发送邮件、创建文件、执行计算。

Tools 和 Resources 最大的区别是:Tools 有副作用。读一个文件不改变任何东西(Resources),但发一封邮件确实把邮件发出去了(Tools)。所以 Tools 通常需要用户确认后才执行。

简单说:Tools = AI 能调用的操作

Prompts(提示模板)—— 提前写好的"咒语"

Prompts 是预定义的提示模板。比如你经常让 AI “把这段文字翻译成英文”,可以把这条指令做成一个 Prompt 模板,一键调用。

简单说:Prompts = 可复用的指令模板

这三个合起来,MCP 服务器就能告诉 AI:“我能读这些、能做这些、还能用这些模板跟你配合。”

1.4 MCP 是怎么通信的?

聊完了"有什么",再说"怎么传"。

MCP 底层使用 JSON-RPC 协议通信。JSON-RPC 是一种轻量级的远程调用协议,说白了就是——两边约定好,所有消息都写成 JSON 格式,按照固定的结构来传。

一条消息大概长这样:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_web",
    "arguments": {
      "query": "今天的天气"
    }
  }
}

别被格式吓到,本质上就是:“我要调用 search_web 这个工具,参数是查询今天的天气”

MCP 支持两种传输方式:

  1. stdio:客户端和服务器在本地通过标准输入/输出通信。适合本地运行的工具,安全、简单。
  2. SSE(Server-Sent Events):通过 HTTP 通信,适合远程服务器。比如你的 MCP 服务器跑在云上,AI 客户端在本地,它们通过 SSE 连接。

通信流程大致是:

1. 客户端发起连接(初始化)
2. 双方交换能力信息("我支持这些功能")
3. 正常运行(客户端发请求,服务器返回结果)
4. 断开连接

整个过程就像打电话:拨号 → 互相确认身份 → 开始说话 → 挂断。

1.5 所以 MCP 不是什么?

很多人一听到 MCP,会把它想得很"重"。来澄清几个误解:

  • MCP 不是一个新的框架。它就是一个协议规范。就像 HTTP 不是软件,而是一套规则。
  • MCP 不绑定任何 AI 模型。OpenAI 可以用、Anthropic 可以用、开源的 Llama 也可以用,只要实现了协议就行。
  • MCP 不是 Agent。Agent 是一个能自主决策、规划、执行任务的系统。MCP 只是 Agent 用来调用工具的"管道"。有了 MCP,写 Agent 确实更方便,但 MCP 本身不是 Agent。
  • MCP 不要求你重写现有系统。你想暴露一个已有的 API,写一个薄薄的 MCP 服务器包装一层就行。

1.6 小结

现在你应该对 MCP 有个整体的印象了:

  • MCP 是一个开放协议,统一了 AI 和外部工具的通信方式。
  • 核心概念有三:Resources(读)、Tools(写/操作)、Prompts(模板)。
  • 通信基于 JSON-RPC,支持 stdio(本地)和 SSE(远程)两种传输方式。
  • MCP 不是框架、不是 Agent、不绑定任何厂商。

下一篇我们会亲手写一个 MCP 服务器,把今天讲的概念落成代码。纸上谈兵结束,开始动手。


下一篇:第 2 篇:手写一个 MCP Server——从零到跑通

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐