什么是MCP?

MCP即模型上下文协议(Model Context Protocol),是一种开放的通信协议,是人工智能领域的 “USB 接口”。

MCP在大模型和外部数据源之间建立了双向且更加安全的连接,

使用单一的标准协议取代碎片化的集成方式。

简单来说,MCP 是一套标准协议,允许像 ChatGPT、Claude 这样的AI助手与外部工具、数据源和系统进行安全、可控的交互。

你可以把它想象成 AI 的“USB 标准”或“应用商店协议”。

核心组件

MCP 的工作机制建立在三个核心组件之上:

  1. 客户端 (Client)

    • 角色:AI 助手本身,或者集成AI助手的应用程序(如 Claude 桌面应用、Cursor IDE、一个定制的AI应用)。

    • 职责:发起请求。它根据用户的提示或自身的推理过程,决定需要调用哪个外部资源或工具,并通过 MCP 协议向服务器发送结构化请求。

  2. 服务器 (Server)

    • 角色:提供资源或工具的一方。这是一个独立的进程,负责管理特定的数据源或工具。

    • 职责:响应请求。它监听来自客户端的请求,执行必要的操作(如查询数据库、调用API、运行代码),然后将结果格式化后返回给客户端。

    • 示例:一个专用于查询公司PostgreSQL数据库的服务器、一个提供实时天气API的服务器、一个可以执行Python代码的服务器。

  3. 传输层 (Transport)

    • 角色:客户端和服务器之间通信的桥梁。

    • 实现:通常使用 标准输入/输出 (stdin/stdout) 或 套接字 (Socket)。这使得任何能够读写标准IO或网络套接字的编程语言都可以用来实现 MCP 的客户端和服务器,具有极高的语言无关性。

通信协议:SSE 与 JSON-RPC

MCP 的通信基于两种成熟的技术:

  • SSE (Server-Sent Events):用于客户端和服务器之间建立单向(服务器->客户端)事件流。这里是双向使用的,即客户端和服务器各开一个SSE连接,用于相互发送事件(请求和通知)。

  • JSON-RPC 2.0:一个轻量级的远程过程调用协议。MCP 中的所有请求和响应都遵循 JSON-RPC 的格式,这使得通信变得结构化、可预测且易于解析。

核心设计理念与优势

  1. 权限分离与安全(Security):AI助手(客户端)没有直接访问文件系统、数据库或API的权限。所有访问都必须通过独立的服务器进行,而服务器的权限是由系统管理员或用户自己控制的。这极大地减少了AI滥用权限的风险。

  2. 动态上下文(Dynamic Context):外部数据是按需、动态地插入到AI的上下文窗口中的,而不是一次性全部加载。这非常高效,避免了浪费宝贵的上下文长度。

  3. 模块化与生态(Modularity & Ecosystem):开发者可以为任何数据源或工具编写MCP服务器(例如:GitHub服务器、JIRA服务器、计算器服务器)。AI助手只需遵循协议就可以调用所有这些工具,无需为每个工具单独开发集成功能,从而形成了一个强大的工具生态。

  4. 语言无关性(Language-Agnostic):只要能用任何编程语言编写一个可以读写stdin/stdout并处理JSON的程序,就能实现MCP的客户端或服务器。

总而言之,MCP的工作原理可以比点餐:客户(Client) 看菜单(服务器声明的capabilities)下单(发送request),厨房(Server) 根据订单做菜并出品(返回result),客户再把菜端给朋友(将结果融入上下文并生成最终回答)。餐厅经理(用户)完全控制厨房能做什么菜(服务器的权限),而不是让客户(AI)直接闯进厨房胡乱操作。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐