📧MCP

type
status
date
slug
summary
category
tags
icon
password
AI summary
Blocked by
Blocking
Category

MCP是什么

MCP 是一个基于 JSON-RPC 2.0 的协议,用来规范Agent如何以“统一、可扩展、可编程”的方式调用外部能力(Tools / Resources / Prompts)。
所以可以把MCP理解为 LLM世界的grpc+OpenAI+插拔系统的超体
MCP解决了
  • 模型如何发现能力
  • 模型如何调用能力
  • 能力的输出内容如何以标准化的方式返回
  • 多个工具如何在一个session中被协调
 

MCP Server & MCP Client

MCP Server是能力的提供方,它不关注对话的逻辑是什么,而关注
  1. 描述自己能干什么(shema)
  1. 接受MCP client请求
  1. 返回结构化或错误
MCP Client是请求的发起方,它负责
  1. 维护session
  1. 调用list_tools method
  1. 根据模型决策,选择调用哪些tools
  1. 把tools 的结果再返回给模型,当作决策的上下文
 

JSON-RPC 2.0

握手流程

MCP Client请求

  • jsonrpc
    • 规定值,表示这是JSON-RPC 2.0
  • id
    • 标识一次RPC调用,Server返回结果必须带一个id,client用它来做请求-响应配对
  • method
    • initialize 建立会话
    • tools/list 列出工具
    • tools/call 调用工具
    • resource/read 读资源
  • params标识真正的业务参数
例如
其中name表示要调用的tool名称,arguments表示tool 的输入参数

MCP Server响应

成功响应
失败的请求
 

SSE场景

在 SSE 模式下,Client 与 Server 之间存在“两条逻辑通道”:
  • 控制 / 请求通道:/messages(Client → Server)
  • 数据 / 响应通道:/sse(Server → Client)
二者通过 session 强绑定。
notion image
  1. Client端发起一个 GET 请求,建立SSE长连接。(Connection1)
  1. Server端回复event:endpoint类型的事件,将sessionId信息放入data中返回。(Connection1)
  1. Client端使用第2步返回的sessionId信息发起首个HTTP POST 请求。(Connection2)
  1. Server端迅速响应202,但无内容。(Connection2)
  1. Server端返回第3步请求的实际消息。(Connection1)
  1. Client端使用第2步返回的sessionId发起HTTP POST请求initialized作为确认。(Connection3)
  1. Server端迅速响应202,无内容。(Connection3)
  1. Client端使用第2步返回的sessionId发起HTTP POST请求list tools(Connection4)
  1. Server端迅速响应202,无内容。(Connection4)
  1. Server端返回第8步请求的实际消息,即工具列表。(Connection1)
  1. Client端使用第2步返回的sessionId发起HTTP POST请求call tool(Connection5)
  1. Server端迅速响应202,无内容。(Connection5)
  1. Server端返回第11步请求的实际消息,即工具调用结果。(Connection1)
/messag 可以理解为往session 的事件循环里添加一条任务
在 SSE 模式下,一个 MCP Server 内部通常是这样:
 
所有 /messages 请求,最终都会进入某个 session 的执行上下文。

Streamable场景

一次请求 = 一次完整的“请求 + 多段响应”生命周期
 
 
 
 
 

不同版本下MCP 的区别 TODO

 
 
 

不同版本的MCP的代码(client+server | agent adk调用MCP server)示例TODO

 

Repo

 
 
 
 
 
Prev
2025年终总结
Next
Knative Architecture
Loading...
Article List
如果去做,还有一丝希望;但是不去做,就毫无希望
技术分享
个人总结
转发