惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 意犹未尽

VsCode AI生态开源项目 掌握Redis集群通信,解决数据存取难题 jvm堆外内存-direct buffer spring-boot-actuator-Health原理 服务治理 - 意犹未尽 maven-antrun-plugin插件 Spring AI-MCP源码整理 java响应式编程基础 压测实践案例之网关 elasticseach-分页搜索 sentinel增加ip来源限流后占用服务高内存问题分析 spring-boot-actuator - 意犹未尽 elasticseach-head插件安装及使用 设计模式之美学习-代码命名规范 ES-Client-api-easy es sentinel-ProcessorSlot sentinel-SPI初始化时机 记录一次内存泄漏排查 设计思路之系统做深能力的思维方式
概念、架构、协议格式到裸协议实现,彻底搞懂 MCP 的本质
意犹未尽 · 2025-08-21 · via 博客园 - 意犹未尽

一、MCP 是什么?

 一句话概括:
MCP 定义了一套统一的接口规范,让 AI 模型能以标准化的方式发现并调用外部能力。

二、为什么需要 MCP?

MCP 被比作 "AI 的 USB-C 接口" —— USB-C 让所有设备用同一种接口连接外设,MCP 让所有 AI 应用用同一种协议连接工具。

image

三、MCP 架构:三个核心角色

image

四、三大核心能力

image

  提示:Tools 是最常用的,大多数 MCP Server 只实现 Tools 就够了。

五、完整交互流程:三个阶段

image

image

image

六、协议格式:一个端点 + JSON-RPC

image

通用信封格式

{ "jsonrpc": "2.0", // 固定版本 "id": 1, // 请求 ID(通知无 id) "method": "xxx", // 方法名 "params": {} // 参数 / result: 结果 }

核心协议消息示例

initialize

// 请求 { "jsonrpc": "2.0", "id": 1, "method": "initialize", "params": { "protocolVersion": "2025-03-26", "capabilities": {}, "clientInfo": {"name": "my-client", "version": "1.0"} } } // 响应 { "jsonrpc": "2.0", "id": 1, "result": { "protocolVersion": "2025-03-26", "capabilities": {"tools": {}}, "serverInfo": {"name": "my-server", "version": "1.0"} } }

tools/list

// 请求 { "jsonrpc": "2.0", "id": 2, "method": "tools/list", "params": {} } // 响应 { "jsonrpc": "2.0", "id": 2, "result": { "tools": [{ "name": "get_weather", "description": "获取指定城市的天气", "inputSchema": { "type": "object", "properties": { "city": {"type": "string", "description": "城市名称"} }, "required": ["city"] } }] } }

tools/call

// 请求 { "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "get_weather", "arguments": {"city": "北京"} } } // 响应 { "jsonrpc": "2.0", "id": 3, "result": { "content": [{"type": "text", "text": "晴天 25°C"}] } }

七、补充:JSON-RPC 2.0 标准

 JSON-RPC 2.0 是一个已有的开放标准,和 MCP 无关。
MCP 聪明地借用了这个成熟标准,只需要定义具体的 method 有哪些,以及它们的 params 和 result 格式。

八、总结回顾

image

image

九、调试工具

通过调试工具抓包可以方便了解协议

1、安装:pnpm 

npm install -g pnpm

2、安装并启动官方调试工具

pnpm dlx @modelcontextprotocol/inspector

3、复制启动

image

image

十、常见问题

偶发超时

MCP工具请求超时

超时的问题有可能是因为 配的ingress地址,ingress也是一个反向代理,代理可能针对SSE长连接有超时时间,代理层直接推送超时响应。目前dify统一改为走k8s 直连的方式。我dify测试了几轮没发现超时

企业微信截图_17557683705364

404问题

MCP客户端通信 mcp/message?sessionId=770f849c-4ef9-4a8b-8032-d3ffc7cfb4a6 404

MCP客户端配置的是Ingrees地址,上线后未能评估出一期只支持1台MCP服务

由于MCP通信是采用SSE 加JSON RPC,当在服务A建立SSE后链接后, JSON RPC请求到服务B

导致找不到Session