[AI 架构] 什么是 MCP?------ 大模型时代的"USB 接口"
自 2024 年底起,Anthropic(Claude 的母公司)推出的 MCP (Model Context Protocol) 逐渐成为连接 AI 与数据/工具的开放标准之一。如果你正在关注 AI 应用架构,或者正在探索如何让 AI 接入本地数据,那么 MCP 是你必须了解的核心概念。
一句话总结:MCP 是 AI 模型连接数据与工具的通用标准,就像计算机领域的 USB 接口。
1. 为什么我们需要 MCP?(痛点)
在 MCP 出现之前,让 LLM(大语言模型)连接本地数据或第三方工具是一件非常痛苦的事,存在严重的**"点对点耦合"**问题:
-
以前的困境:
如果你想让 Claude 访问你的 Postgres 数据库,你需要写一套适配代码;如果你想让 ChatGPT 访问同一个数据库,你又要重写一套;如果你换了 IDE(比如从 VS Code 换到 Cursor),可能又要折腾一遍。
结果:开发者在做大量重复的"胶水代码"工作,数据孤岛严重。
-
MCP 的解决方案:
MCP 定义了一套通用标准。你只需要为你的数据源(比如数据库、Git 仓库)写 一次 MCP Server。然后,任何支持 MCP 的客户端(Claude Desktop, Cursor, JetBrains IDE 等)都可以直接"插"上使用。
核心价值:Write once, connect any AI.
2. 核心架构:本质是 RPC
抛开复杂的文档术语,从开发者的视角来看,MCP 的架构本质上就是 客户端-服务器(Client-Server) 模式。
- 通信协议 :底层基于 JSON-RPC 2.0。
- 传输方式 :常见的有 stdio (用于本地进程通信,如 IDE 调用本地脚本)和 HTTP/SSE(用于远程服务调用)。
整个生态由三部分组成:
- MCP Host (宿主程序) :
- 这是用户直接交互的"大脑/前端"。比如:Claude Desktop App 、VS Code。
- 它负责运行 AI 模型,并发起调用请求。
- MCP Client (客户端) :
- Host 内部的连接器,负责通过协议与 Server 对话。
- MCP Server (服务端) :
- 这是开发者(你)主要编写的部分。
- 它可以是一个简单的 Python 脚本,也可以是一个复杂的 Java Spring Boot 应用。它相当于一个**"远程函数库"**,通过标准协议暴露 API 给 AI 调用。
3. 三大核心能力 (Primitives)
MCP 将 AI 与世界的交互抽象为三个核心概念,非常符合 CRUD 的直觉:
① Resources (资源) ------ "让 AI 读取"
- 类比 :文件读取 /
GET请求。 - 作用:将数据暴露为 AI 可读的文本。
- 例子 :
postgres://db/users/schema(示意 URI)。AI 读取这个资源,就能知道你的数据库表结构。
② Tools (工具) ------ "让 AI 执行"
- 类比 :函数调用 (Function Calling) /
POST请求。 - 作用:让 AI 执行具体操作。
- 例子 :你定义一个
query_db(sql)的工具。AI 生成 SQL 语句作为参数传入,你的 Server 执行查询并返回结果。
③ Prompts (提示词) ------ "让 AI 复用"
- 类比:预设模版。
- 作用:将最佳实践固化下来。
- 例子:Server 内置一个 "Code Review 标准"的 Prompt,用户一键调用,AI 就会严格按照团队规范检查代码。
4. 总结:协议优先,语言自由
作为开发者,你可以这样理解 MCP 的意义:
- 以前:你需要把数据"喂"给 AI(手动 Copy-Paste 或写死在 Prompt 里)。
- 现在 :你只需要构建一个 MCP Server ,把它变成一个标准的 API 服务。
AI 就像一个全能的程序员,而 MCP Server 就是你给它提供的 SDK / 依赖库。通过这个协议,大模型终于不再是一个只会在云端聊天的机器人,而是真正能接入你本地系统、操作业务逻辑的"全栈工程师"。