📧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是能力的提供方,它不关注对话的逻辑是什么,而关注
- 描述自己能干什么(shema)
- 接受MCP client请求
- 返回结构化或错误
MCP Client是请求的发起方,它负责
- 维护session
- 调用list_tools method
- 根据模型决策,选择调用哪些tools
- 把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 强绑定。

- Client端发起一个 GET 请求,建立SSE长连接。(Connection1)
- Server端回复
event:endpoint类型的事件,将sessionId信息放入data中返回。(Connection1)
- Client端使用第2步返回的sessionId信息发起首个HTTP POST 请求。(Connection2)
- Server端迅速响应202,但无内容。(Connection2)
- Server端返回第3步请求的实际消息。(Connection1)
- Client端使用第2步返回的sessionId发起HTTP POST请求
initialized作为确认。(Connection3)
- Server端迅速响应202,无内容。(Connection3)
- Client端使用第2步返回的sessionId发起HTTP POST请求
list tools。(Connection4)
- Server端迅速响应202,无内容。(Connection4)
- Server端返回第8步请求的实际消息,即工具列表。(Connection1)
- Client端使用第2步返回的sessionId发起HTTP POST请求
call tool。(Connection5)
- Server端迅速响应202,无内容。(Connection5)
- 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...
