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

推荐订阅源

Schneier on Security
Schneier on Security
N
Netflix TechBlog - Medium
IT之家
IT之家
MongoDB | Blog
MongoDB | Blog
博客园_首页
S
SegmentFault 最新的问题
H
Help Net Security
P
Proofpoint News Feed
云风的 BLOG
云风的 BLOG
T
The Blog of Author Tim Ferriss
量子位
GbyAI
GbyAI
M
MIT News - Artificial intelligence
Recorded Future
Recorded Future
P
Privacy & Cybersecurity Law Blog
B
Blog
月光博客
月光博客
博客园 - 聂微东
Vercel News
Vercel News
罗磊的独立博客
腾讯CDC
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
A
Arctic Wolf
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Stack Overflow Blog
Stack Overflow Blog
T
Threat Research - Cisco Blogs
Blog — PlanetScale
Blog — PlanetScale
L
Lohrmann on Cybersecurity
I
Intezer
小众软件
小众软件
T
The Exploit Database - CXSecurity.com
Jina AI
Jina AI
C
Check Point Blog
AWS News Blog
AWS News Blog
C
Cisco Blogs
Martin Fowler
Martin Fowler
The Last Watchdog
The Last Watchdog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
宝玉的分享
宝玉的分享
S
Security Affairs
大猫的无限游戏
大猫的无限游戏
N
News and Events Feed by Topic
雷峰网
雷峰网
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
H
Hacker News: Front Page
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
F
Full Disclosure
P
Proofpoint News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Security Blog
Microsoft Security Blog

博客园 - 意犹未尽

从提示词工程到 Harness 设计范式 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