MCP协议
·
1 MCP格式
https://www.runoob.com/np/mcp-protocol.html
MCP(Model Context Protocol)是一种通信协议,通过MCP协议可以像电脑一样挂载一些“外设”,扩展大模型的能力,提升效率。
2 如何使用MCP
2.1 核心对象

MCP:用于MCP Server和MCP Client之间传输消息
| 角色 | 形象比喻 | 职责 |
|---|---|---|
| MCP Host (主机) | “大脑”所在的应用。大模型 | 运行大模型的应用程序(如 Claude Desktop、Cursor、ChatGPT)。它负责发起请求,展示结果。应用层 |
| MCP Client (客户端) | “翻译官”/插头。 | 嵌入在 Host 内部。它负责把大模型的想法(意图)翻译成标准的 MCP 协议指令,发给服务器。接口层 |
| MCP Server (服务器) | “手脚”/外设 | 外部能力的提供者(如文件读取器、数据库连接器)。它封装了具体的工具和数据,等待 Client 的调用。服务层 |
2.2 流程

如果不使用agent时,直接将mcp的回复转到LLM,可能需要格式转换为prompts,遵循OpenAI协议标准。
3 MCP 的3种消息格式
请求、响应、通知。消息通过JsonRPC2.0进行封装。
3.1 请求消息
{
"jsonrpc": "2.0",
"id": "string | number",
"method": "string",
"params": {
"[key: string]": "unknown"
}
}
jsonrpc:协议版本,固定为"2.0"。
id:请求的唯一标识符,可以是字符串或数字。
method:要调用的方法名称,是一个字符串。
params:方法的参数,是一个可选的键值对对象,其中键是字符串,值可以是任意类型。
3.2 响应消息
{
"jsonrpc": "2.0",
"id": "string | number",
"result": {
"[key: string]": "unknown"
},
"error": {
"code": "number",
"message": "string",
"data": "unknown"
}
}
jsonrpc:协议版本,固定为"2.0"。
id:与请求中的id相对应,用于标识响应所对应的请求。
result:如果请求成功,result字段包含操作的结果,是一个键值对对象。
error:如果请求失败,error字段包含错误信息,其中:
code:错误代码,是一个数字。
message:错误描述,是一个字符串。
data:可选的附加错误信息,可以是任意类型。
3.3 通知消息
通知消息是一种单向消息,不需要接收方回复。
{
"jsonrpc": "2.0",
"method": "string",
"params": {
"[key: string]": "unknown"
}
}
jsonrpc:协议版本,固定为"2.0"。
method:要调用的方法名称,是一个字符串。
params:方法的参数,是一个可选的键值对对象,其中键是字符串,值可以是任意类型。
4 demo
https://github.com/Azure-Samples/python-mcp-demos/blob/main/agents/langchainv1_http.py

更多推荐
所有评论(0)