MCP协议(Model Context Protocol,模型上下文协议)是由人工智能公司Anthropic于2024年11月推出的开放标准协议,旨在为大型语言模型(LLM)与外部数据源、工具及服务提供统一的通信框架。其核心目标是打破数据孤岛限制,通过标准化接口实现AI模型与多源数据的无缝集成,可类比为”AI领域的USB-C接口”。

在MCP协议出现之前,AI大模型与外部世界的交互的模式十分有限,我们只能通过对话的方式从大模型中获取信息,这无法完全发挥AI大模型的能力。而MCP的出现打破了这种限制,它使AI大模型能够统一访问本地数据库、文件系统及远程API等,打破数据孤岛限制。

MCP协议架构概览

MCP主机(Host)

是运行MCP的主应用程序(如Cursor 、Cline或其他AI工具),为用户提供与LLM交互的接口,同时集成MCP Client链接MCP Server。

MCP客户端(Client)

作为LLM和MCP Server之间的桥梁,嵌入在主机程序中,主要负责以下几个工作:

  • 接收来自LLM的请求。
  • 将请求转发到相应的MCP Server。
  • 将MCP Server的结果返回给LLM。

MCP服务(Server)

提供了特定的工具集,负责从本地数据或者远程服务中检索信息,是MCP架构中的关键组件。本质是运行在电脑上的一个node.js或python程序,可以理解为客户端用命令调用了这些程序。

本地资源(Resources)

本地计算机中可供MCP server安全访问的资源(例如文件、数据库)。

远程资源(Resources)

可供MCP Server远程连接的资源(如API的调用)。

MCP协议架构图

工作流程

  1. 用户发起对话:Host接收用户输入,并生成LLM请求。
  2. LLM识别意图:模型输出触发工具调用的指令。
  3. MCP客户端发送请求:Client将根据通信协议把请求转发到Server。
  4. Server执行工具:执行对应插件,访问本地/远程资源。
  5. 返回结果:Server将执行结果通过通信协议返回给Client。
  6. LLM生成最终回复:Host将结果注入模型上下文,继续对话并返回给用户。

MCP资源网站

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

参考链接