目录
一、MCP介绍
1.1 MCP是什么
MCP(Model Context Protocol,译作:模型上下文协议)是由Anthropic公司(Claude大模型的母公司)于2024年11月25日发布的一种开放通信标准协议,旨在解决目前AI大模型因为数据孤岛限制而无法充分发挥潜力的问题,统一大模型语言(LLM)与外界数据源和工具之间的通信协议,它就像 USB-C 接口一样,提供了一种标准化的方法,将 AI 模型连接到各种数据源和工具,为 AI 应用提供了连接万物的接口。
1.2 MCP架构
MCP采用简单的客户端-服务器架构模式:
架构组件 | 描述 |
---|---|
MCP Host | 通过 MCP 访问数据的 Claude Desktop、IDE 、 AI 工具或自己开发应用等程序 |
MCP Clients | 与服务器保持 1:1 连接的协议客户端 |
MCP Servers | 轻量级程序,每个程序都通过标准化的 Model Context Protocol 公开特定功能 |
Local Data Sources | MCP 服务器可以安全访问的计算机文件、数据库和服务 |
Remote Services | MCP 服务器可以连接到的 Internet 上可用的外部系统(例如,通过 API) |
MCP
大概的工作方式:MCP Host
,比如 Claude Desktop、Cursor
这些工具,在内部实现了 MCP Client
,然后MCP Client
通过标准的 MCP 协议和 MCP Server
进行交互,由各种三方开发者提供的 MCP Server
负责实现各种和三方资源交互的逻辑,比如访问数据库、浏览器、本地文件,最终再通过 标准的 MCP 协议返回给 MCP Client
,最终在 MCP Host
上展示。
开发者按照 MCP 协议进行开发,无需为每个模型与不同资源的对接重复编写适配代码,可以大大节省开发工作量,另外已经开发出的 MCP Server,因为协议是通用的,能够直接开放出来给大家使用,这也大幅减少了开发者的重复劳动。
官网:Introduction - Model Context Protocol
1.3 MCP的通信模式
MCP
协议中的 STDIO
和 SSE
其实就是是两种不同的(MCP Server
与 MCP Client
)通信模式:
-
STDIO(标准输入输出):像「面对面对话」:客户端和服务器通过本地进程的标准输入和标准输出直接通信。例如:本地开发时,你的代码脚本通过命令行启动,直接与 MCP 服务器交换数据,无需网络连接。
-
SSE(服务器推送事件):像「电话热线」:客户端通过 HTTP 协议连接到远程服务器,服务器可以主动推送数据(如实时消息)。例如:AI 助手通过网页请求调用远程天气 API,服务器持续推送最新的天气信息。
简单理解,STDIO 调用方式是将一个 MCP Server
下载到你的本地,直接调用这个工具,而 SSE 则是通过 HTTP 服务调用托管在远程服务器上的 MCP Server
。
1.4 MCP服务
mcp发布后已经有大量的 McpServer提供使用,整个生态发展非常迅速,因此我们在掌握如何编写MCP的同时,也需要了解如何介入大量的第三方MCPServers帮助我们快速拓展AI业务。
MCP 服务如雨后春笋般一下都涌了出来,MCP 市场也一下多了起。
MCP平台 | 地址 |
---|---|
ModelContextProtocol | GitHub - modelcontextprotocol/servers: Model Context Protocol Servers |
MCP Market | MCP Market | Discover Top MCP Servers |
MCP.so | MCP Server(MCP 服务器) |
SmitheryAI | Smithery - Model Context Protocol Registry |
PulseMCP | PulseMCP | Keep up-to-date with MCP |
GlamaAI | MCP servers | Glama |
cursor.directory | MCP Servers for Cursor |
Awesome MCP servers | GitHub - punkpeye/awesome-mcp-servers: A collection of MCP servers. |
MCP Servers | Awesome MCP Servers |
OpenTools | OpenTools | The API |