导语:
除了整理网络上基本的概念原理,还会增加一些有深度的代码解析,帮助读者进一步了解MCP。
一、什么是MCP
MCP(Model Context Protocol)是由Anthropic于2024年底提出并开源的一种协议,旨在为AI系统(如AI编程助手、Agent等)提供安全、标准化的数据访问方式。它采用客户端-服务器架构,使AI工具(如Claude Desktop、IDE插件等)能够通过MCP客户端与MCP服务端交互,访问本地或远程数据源。
官方文档:MCP Quickstart
https://modelcontextprotocol.io/quickstart/server
MCP的核心特点包括:
模块化:每个模块专注于一个概念、任务或技能。
组合性:多个模块可按需组合,处理复杂任务。
动态路由:主控制器根据上下文动态调用合适模块。
可解释性:每一步推理过程清晰可追踪。

二、为什么需要MCP
MCP 则提供了一种新的范式,让模型能像人类一样“拆分任务”、“调动知识”、“有条理地思考”。它就像一个“转接头”或“通用插座”,它的核心作用是统一不同外部服务(如 Google Drive、GitHub、Slack、本地文件系统等),通过标准化接口与 AI 模型对接。
这样,开发者只需基于 MCP 规范开发一次“接口适配器”(MCP 服务器),就能让所有兼容 MCP 的模型(MCP 客户端)无缝接入,无需针对每个模型单独适配,大幅提升兼容性与开发效率。
MCP可以标准化地连接AI系统与各类外部工具和数据源:

传统的 API 就像不同的门和特定的钥匙:
三、MCP的架构
MCP遵循客户端 - 服务器架构,包含以下几个核心部分:
MCP 主机(MCP Hosts):
发起请求的 AI 应用程序,比如聊天机器人、AI 驱动的 IDE 等。
MCP 客户端(MCP Clients):
在主机程序内部,与 MCP 服务器保持 1:1 的连接。
MCP 服务器(MCP Servers):
为 MCP 客户端提供上下文、工具和提示信息。
本地资源(Local Resources):
本地计算机中可供 MCP 服务器安全访问的资源,如文件、数据库。
远程资源(Remote Resources):
MCP 服务器可以连接到的远程资源,如通过 API 提供的数据。

这个图比较直观的展现了一个样例交互流程。
协议层与传输层

协议层(Protocol Layer)
负责消息封装(framing)、请求/响应关联、高级通信模式管理。
传输层(Transport Layer)
支持两种通信方式:
1.Stdio传输(标准输入/输出)
- 适用于本地进程间通信。
2.HTTP + SSE传输
-
服务端→客户端:Server-Sent Events(SSE)
-
客户端→服务端:HTTP POST
-
适用于远程网络通信。
所有传输均采用JSON-RPC 2.0进行消息交换。
消息类型
MCP 拥有多种类型的消息来处理不同的场景
请求(Request)(期望获得响应)
interface Request {
method: string;
params?: {
... };
}
成功响应(Result)
interface Result {
[key: string]: unknown;
}
错误响应(Error)
interface Error {
code: number;
message: string;
data?: unknown;
}
通知(Notification)(单向,无需响应)
interface Notification {
method: string;
params?: {
... };
<

最低0.47元/天 解锁文章
987

被折叠的 条评论
为什么被折叠?



