Logo Ernie.SG
Model Context Protocol(MCP)小白指南

Model Context Protocol(MCP)小白指南

2025年4月9日
3 分钟阅读
Table of Contents

Model Context Protocol(MCP)小白指南,或者,为什么不只是 API?

如果你也和我一样想过:MCP 不就是 API 吗?这篇文章会说明为什么 MCP 对懒惰的开发者很有用。受 Gang Rui 在 Lorong AI 主办的 🎙️ Chop Chop Talk Shop (Chomp Edition): Model Context Protocol 分享启发,我把关键要点整理出来,也顺手写一写终端用户可以怎样使用 MCP。

TLDR

MCP 通过把业务逻辑(Host)和工具执行(Server)解耦,将“要做什么”和“如何去做”分离开来,而 Client 则作为二者之间的标准化桥梁。Host 负责用户交互和 AI 推理,Server 则把能力暴露为可复用接口。通过标准化,MCP 让智能体式 AI 能够在不同系统之间动态发现、编排并组合能力。

问题:开发工作量的组合爆炸

假设我们想在一个服务医院医生的 AI 应用中发送邮件。在 MCP 之前,你需要编写集成逻辑来调用邮件 API、处理响应、把它接到模型上,再粘合业务逻辑。现在想象一下,还要为病人电话中的预约提醒做这件事,以及为电商促销通知等其他应用做这件事,而它们都使用同一个邮件 API。没有 MCP,你就会在多个客户端和使用场景中反复实现同样的集成逻辑。邮件 API 一旦有破坏性变更?希望你喜欢到处重构。😤

MCP ✨ 是集成复杂性这个二次问题的线性解法。它有点像 React 组件之于 UI:模块化、声明式、可组合。

什么是 MCP?

就像 USB-C 消除了对多种线缆和端口的需求,MCP 为 AI 应用与外部工具和数据源沟通提供了一种通用方式。关键组件包括:

  • 💻 MCP Hosts:发起请求并处理用户交互的 AI 应用,例如 Claude Desktop。一个 host 可以通过 client 连接到多个 MCP server。
  • 🔌 MCP Clients:内置于 host 中,负责与 server 交互。每个 client 连接到一个 MCP server。
  • ⚙️ MCP Servers:暴露工具、提示词或资源供 client 使用。

任何人都可以编写自己的 host、client 或 server,也可以直接接入 Smithery.ai 上已有的 4200+ 种能力。

它如何运作

用户启动你的 AI 应用 → 发出请求(例如“提醒某某他的预约”)→ MCP client 检查自己是否有合适的 tool(如 send_email)以及足够的上下文 → 它通过 MCP server 调用该 tool,这个 server 可以是本地运行的小进程(通过 stdio),也可以是远程进程(通过 HTTP Streamable,甚至自定义方式)→ server 处理请求并返回结果 → AI 把结果纳入回复 → 用户看到最终回答。

想了解更多内部机制,可以查看架构规范

为什么是 MCP?

MCP 强制实现关注点分离,促进可复用性,并大幅简化维护

魔法:AI 医疗应用示例

在现实世界中,用户需求增长很快,我们需要支持的平台也一样。

假设你正在构建一个 AI 驱动的医疗应用,用邮件短信应用内门户消息发送预约提醒。

用 MCP 可以这样组织:

  • 每个平台 1 个 host(例如网页端、移动端)
  • 每个 host 内 3 个 clients - 每个渠道一个:邮件、短信、应用内消息
  • 每个 client 1:1 连接到一个 MCP server,由 server 处理实际逻辑

接下来想支持 WhatsApp?如果已有 server 就直接复用,否则写一个新的 server,它立刻对所有 hosts 可用,不需要重复劳动。

超越 API

与 MCP 相比,API 在两个关键方面有局限:

  1. 功能 vs. 架构 - API 在单一应用内部暴露功能。MCP 提供跨应用运作的架构。构建一次,到处使用。
  2. 固定 vs. 自适应 - API 使用硬编码触发器。MCP 允许 AI 根据上下文决定使用哪些工具,从而支持灵活、智能的工作流。

MCP 把 API 变成可供智能体调用的能力,让智能体能够在需要时自主推理并组合 API。它的区别,就像调用一个服务和在规模化环境中编排智能、灵活工作流的区别。正如 Web 开发者从静态 HTML 走向可复用组件,MCP 也帮助 AI 工程师从脆弱、固定的集成,走向动态、具备上下文意识、能够实时响应用户需求的智能体软件。🚀

超越 Anthropic

MCP 由 Anthropic 推出,目前在主要大语言模型厂商和社区贡献的支持下快速成长。

  • OpenAI 在其 Agents SDK 中正式支持 MCP,OpenAI API 和 ChatGPT 桌面应用也即将支持
  • Microsoft 开发了 MCP 的官方 C# SDK,并把该协议集成进 Copilot Studio、VS Code 的 GitHub Copilot 智能体模式和 Semantic Kernel
  • GitHubSlackCloudflare 等主要平台增加了官方 MCP 连接
  • 已有多种官方语言 SDK:Python(Anthropic)、TypeScript(Anthropic)、Java(Spring AI)、C#(Microsoft)、Kotlin(JetBrains)、Swift(Loopwork AI)和 Rust(Anthropic)
  • 使用 OAuth 2.1 的授权规范已于 3 月 26 日发布

这个生态系统还处在早期,最快试水的方式就是自己把一个 host 接到工具上。

局限与潜力

常见的大语言模型注意事项仍然适用。我安装一些服务器试用时,Obsidian 那个已经失败了。MCP 仍然是实验性的,而且大多仍在本地运行,但我把它看作一种正在浮现的未来蓝图。它是构建真正模块化、递归式、自我扩展的 AI 原生应用所缺失的那块拼图。

开始使用

我发现作为用户,最容易这样试用 MCP:

  1. 获取 client:下载 Claude Desktop:claude.ai/download,或任何现有 host

  2. 处理依赖:如果还没有安装 Node.js,先安装。

  3. 寻找 servers:浏览 smithery.ai,并使用它帮你完成设置。

你接下来会构建什么?👩🏻‍💻

借助 MCP,我可以把自己的博客写作工作流(目前分散在不同设备上的 Claude、Obsidian 和 ChatGPT 之间)整合成一个单一、连贯的体验,而不是不断切换上下文。

下次当你想再写一个 API 集成时,请记住:MCP 让你写一次,到处用,并把注意力放在真正重要的事上,也就是构建出色的 AI 应用。那么你接下来会构建什么?