一、背景
1、大模型应用中两个互联领域的重大挑战
第一、Agent 与 Tools(工具)的交互===》 MCP
Agent 需要调用外部工具和API、访问数据库、执行代码等。
第二、Agent 与 Agent(其他智能体或用户)的交互 ===》A2A
Agent 需要理解其他 Agent 的意图、协同完成任务、与用户进行自然的对话。
MP解决第一个挑战,A2A解决第二个挑战。MCP就是大模型连接世界的标准、桥梁!

二、核心概念
1、核心价值
- 统一连接标准,使 LLM 能便捷调用数据库、API、文件系统等工具,突破 “只能对话” 的局限。
- 类比 “AI 的 USB-C 端口”,通过标准化协议打通 LLM 与外部世界的交互壁垒。

官网:
https://modelcontextprotocol.io/introduction
github:
https://github.com/modelcontextprotocol
各个 clients 对 MCP 的支持情况
https://modelcontextprotocol.io/clients
2、如何理解LLM与MCP?
看到这张图,大概可以联想到前端时间特别火的Manus智能体,掌握了MCP,感觉自己也可以轻松做出一个Manus了。
借助 MCP,只要支持了该协议,就能轻松将各种数据源和工具连接到 LLM。
3、 MCP的理解
传统AI集成的问题:这种为每个数据源构建独立连接的方式,可以被视为一个M*N问题。
问题:架构碎片化,难以扩展,限制了AI获取必要上下文信息的能力
MCP解决方案:提供统一且可靠的方式来访问所需数据,克服了以往集成方法的局限性。
MCP 作为一种标准化协议,极大地简化了大语言模型与外部世界的交互方式,使开发者能够以统一的方式为 AI 应用添加各种能力。
4、哪些平台支持MCP查询
github查看:
- MCP官方资源:https://github.com/modelcontextprotocol/servers
- MCP热门资源:https://github.com/punkpeye/awesome-mcp-servers
其它平台:
- Glama:https://glama.ai/mcp/servers
- Smithery:https://smithery.ai
- cursor:https://cursor.directory
- MCP.so:https://mcp.so/zh
- 阿里云百炼:https://bailian.console.aliyun.com/?tab=mcp#/mcp-market
注意:
- 第1,随着越来越多的Server接入MCP协议,未来AI能够直接调用的工具将呈现指数级增长,这能从根源上打开Agent能力的天花板。未来 AI 生态系统将变得更加开放和强大。
- 第2,目前社区的 MCP Server 还是比较混乱,有很多缺少教程和文档,很多的代码功能也有问题,大家只能凭经验和参考官方文档了。
5、MCP应用场景
三、MCP的通信机制
根据 MCP 的规范,当前支持两种通信机制(传输方式):
- Stdio(标准输入输出):主要用在本地服务上,操作你本地的软件或者本地的文件。比如 Blender 这种就只能用 Stdio 因为他没有在线服务。 MCP默认通信方式。
- SSE(Server-Sent Events):主要用在远程通信服务上,这个服务本身就有在线的 API,比如访问你的谷歌邮件,天气情况等。
1、Stdio方式
优点
- 这种方式适用于客户端和服务器在同一台机器上运行的场景,简单。
- stdio模式无需外部网络依赖,通信速度快,适合快速响应的本地应用。
- 可靠性高,且易于调试。
缺点
- Stdio 的配置比较复杂,我们需要做些准备工作,你需要提前安装需要的命令行工具。
- stdio模式为单进程通信,无法并行处理多个客户端请求,同时由于进程资源开销较大,不适合
- 在本地运行大量服务。(限制了其在更复杂分布式场景中的使用)。
可能大家还有一个疑问,Stdio方式是一种典型的C/S架构, 我们使用大模型基本都是直接使用在线(API)方式,为啥还需要用到Stdio方式呢?这种方式重要吗?
答:联想上面的一个机器人的图,MCP的Server端就是机器人的 机械臂、眼睛等设备,Client在机器人的大脑里靠近LLM大模型,Server与Client必须在一个设备里(机器人)。
再联系下,让LLM操作自己电脑里的文件(比如打开某个目录打开某个文件)、执行本机的cmd命令,连接内网的数据库等(Server端)操作,都需要Server端放在本地电脑里,Client端需要桥接LLM与Server端,所以也要放本地电脑里,LLM可以不在本地电脑里。
因此,Stdio是非常重要的MCP通信机制。本文也大都基于Stdio方式讲解。
2、SSE方式
场景
- SSE方式适用于客户端和服务器位于不同物理位置的场景。
- 适用于实时数据更新、消息推送、轻量级监控和实时日志流等场景
- 对于分布式或远程部署的场景,基于 HTTP 和 SSE 的传输方式则更为合适。
优点
- 配置方式非常简单,基本上就一个链接就行,直接复制他的链接填上就行。
3、 stdio的本地环境安装
stdio的本地环境有两种:Python 编写的服务和TypeScript 编写的服务。分别对应着uvx 和npx 两种指令,这两种指令一般都需要安装。
(1)安装uvx
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex”
验证:重启终端并运行以下命令检查是否正常:
uv --version
uvx --help
(2)安装npx
只需要安装node.js即可,安装包从官网下载。
https://nodejs.org/zh-cn
四、Stdio方式的架构
1、5个核心概念
MCP 遵循客户端-服务器架构(client-server),其中包含以下几个核心概念:
- MCP 主机(MCP Hosts)
- MCP 客户端( MCP Clients )
- MCP 服务器( MCP Servers )
- 本地资源( Local Resources )
- 远程资源( Remote Resources )
(1)MCP Host
作为运行MCP 的主应用程序,例如Claude Desktop、Cursor、Cline或AI 工具。为用户提供与LLM交互的接口,同时集成MCP Client 以连接MCP Server。
(2)MCP Client
MCP client 充当 LLM 和 MCP server 之间的桥梁,嵌入在主机程序中,主要负责:
- 接收来自LLM的请求;
- 将请求转发到相应的 MCP server
- 将 MCP server 的结果返回给 LLM
有哪些常用的Clients?
MCP 官网(https://modelcontextprotocol.io/clients) 列出来一些支持 MCP 的 Clients。
分为两类:
- AI编程IDE:Cursor、Cline、Continue、Sourcegraph、Windsurf 等
- 聊天客户端:Cherry Studio、Claude、Librechat、Chatwise等
更多的Client参考这里:
MCP Clients:https://www.pulsemcp.com/clients
Awesome MCP Clients:https://github.com/punkpeye/awesome-mcp-clients/
(3)MCP Server
每个 MCP 服务器都提供了一组特定的工具,负责从本地数据或远程服务中检索信息。是 MCP 架构中的关键组件。
与传统的远程 API 服务器不同,MCP 服务器既可以作为本地应用程序在用户设备上运行(Stdio方式),也可部署至远程服务器(SSE方式)。
MCP Server 的本质
- 使用 TypeScript 编写的 MCP server 可以通过 npx 命令来运行
- 使用 Python 编写的 MCP server 可以通过 uvx 命令来运行。
2、工作流程
API 主要有两个
- tools/list:列出 Server 支持的所有工具
- tools/call:Client 请求 Server 去执行某个工具,并将结果返回
数据流向图
若还有看不懂MCP的,可以看尚硅谷的b站视频教程: