协议

MCP

Model Context Protocol 模型上下文协议

让模型与外部工具 数据源 文件系统等交互的统一协议

MCP架构

MCP 分为 ServerClient

           +------------------------------+
           |          Client              |
           | (如 ChatGPT / 本地应用 )       |
           +---------------+--------------+
                           |
                           | MCP JSON Messages
                           v
           +---------------+--------------+
           |              Server           |
           |  提供工具、资源、Prompt 模板     |
           +---------------+--------------+
                           |
                +----------+-----------+
                |     Tools / Resources |
                +-----------------------+

下面是一个流程的例子

首先我的Emacs的MCP Client先连接MCP Server 获取它的工具 资源prompt模板列表

假设我使用emacs的MCP Client 向它发出指令

请你创建一个macro来批量注释文件

Emacs将我的prompt包装为MCP的user_message

{
  "type": "message",
  "role": "user",
  "content": "请你使用 Emacs 创建一个宏"
}

然后模型会通过我发送的user_message和从MCP Server得到的工具 资源和prompt模板来推断需要调用的工具

然后Client将模型推断的执行操作消息call_tool发送给MCP Server

Server执行操作

Server

Server在MCP中是提供能力的一方 告诉MCP Client可以执行的操作的集合

同时执行操作

Client

Client在MCP中向Server和模型发送请求

Cursor就是一个Client 它负责连接多个Server