96SEO 2026-08-02 19:22 13
在前面的文章中,我们写了ToolRegistry方法。现在再来读MCP SDK,不再是黑盒调用。按理说,这篇沿着call_tool追踪完整链路。回答一个主要问题:SDK比手写多做了什么?
call_tool
→ CallToolRequest // 构造请求对象
→ model_dump // 序列化成 JSON dict
→ JSONRPCDispatcher.send_raw_request
├─ 分配 request_id
├─ _pending = 内存流等待者 // 关键设计
├─ JSONRPCRequest 写入传输层
└─ receive.receive 挂起等响应
→ 响应按 id 反查 _pending → 唤醒 → CallToolResult
_pending关联表是客户端最值得学的设计。

在并发场景下同时发N个请求。响应乱序返回——没有这张表,无法把每个响应送回正确的等待者。_pending是“request_id → 等待者”的Map,响应到达时按JSON‑RPC响应的id字段反查。
前端类比:同时发多个fetch。每个都有自己的Promise在await——谁先返回谁先resolve,互不覆盖。_pending就是那个.
在前面文章中我的串行Agent用不到这个机制——但这就是MCP为生产并发预留的设计。
收到 JSON-RPC 请求
→ 第一层路由:method 字段
→ _request_handlers
→ 第二层路由:params.name
→ ToolManager._tools
→ Tool.run
\_request_handlers: {method: handler} 表;怎么说呢,\_tools: {name: Tool} 表。这跟之前手写的TolRegistry完全同构——只是多了一层协议路由,让SDK能同时支持 tools/resources/prompts 三类能力。
async def run:
# 校验
validate_arguments # jsonschema 校验
# 执行
if fn_is_async:
result = await fn # 异步函数直接 await
else这方面,result = anyio.to_thread.run_sync # 同步函数丢线程池
# 转换
if convert_result:
result = self.fn_metadata.convert_result # → CallToolResult
return result
except MCPError: raise # 协议级错误 → 原样抛 → JSON-RPC error 响应 except Exception as e: raise ToolError # 执行失败 → isError=True -->
| 痛点/需求 | 手写实现时遇到的问题 | MCP SDK 如何解决 |
|---|---|---|
| # 并发冲突 | 需要自行管理 requestid 与 Promise 的映射;易出错 导致某些工具调用结果被覆盖或丢失。 | |
| # 阻塞同步工具 | 同步函数会占用事件循环,导致整个 Agent 卡顿。其实, |
MCP 的生产级设计包含:
使用MCP SDK,你只需:
python
@mcp.tool def search_catalog: ...
result = await agent.call_tool print
通过上述几行代码。你即可获得:
©2026 MCP团队 • 这篇文章采用 MIT 开源许可证。<\/footer>
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback