#MCP
共 17 篇文章
MCP的SSE连接成功,POST却报406:检查endpoint路由
GET事件流成功后,顺着endpoint核对实际POST路径,区分旧SSE路由与Streamable HTTP内容协商。
MCP 把 null 当成缺失
MCP 返回显式 null,旧客户端却按缺失结果报错。区分字段不存在与 null,核对 Python SDK 2.3.0 的输出 schema 验证和发送端边界。
MCP 订阅占住云函数
静态 MCP 服务的 subscriptions/listen 长流占住云函数。核对 Python SDK 2.3.0 的 subscriptions=False,让公布能力与处理入口一致,并验收真实客户端。
MCP 空服务报 KeyError
MCP 空服务通过 ClientSessionGroup 连接报 KeyError,或单独断开未关闭 transport。区分外部 session 与组内连接,核对空目录记账和当前版本边界。
MCP OAuth 授权地址多一个问号
MCP 授权地址已有 query,旧 Python 客户端又加问号,导致 response_type 丢失。保留租户或环境参数,核对 URL 合并、版本与回调清理。
MCP 旧会话收到 404,Python 客户端报 Session terminated
Python mcp 1.22.0 在旧会话请求收到 404 后报 Session terminated。区分路由错误与会话失效,结束旧连接后重新初始化,并限制工具动作重放。
MCP 拒绝请求后会话仍在增长
Python MCP 返回拒绝响应,会话记录却继续增长。区分旧有状态路径与正常长连接,选择兼容的清理修复版本,并保留 Host 和认证检查。
MCP 大结果报 SSE stream ended
MCP 小结果正常、大工具列表或结果报 SSE stream ended,核对单事件 1 MiB 限制,在支持的 Python SDK 中设置有限上限,并保留重试与版本边界。
MCP initialize 被空 _meta 拒绝
Python MCP 初始化被严格服务端拒绝,检查旧 2.x 是否发送空 _meta。核对 2.3.0 省略空元数据的修复,保留进度、追踪与协议所需字段。
MCP 登录后选成旧协议
MCP 首次浏览器登录后选成旧协议,缓存令牌又正常。核对 Python SDK 的 discovery 计时与 2.3.0 对人机等待的修复,保留自定义认证边界。
MCP Context 丢失请求状态
MCP 工具正常,prompt 或动态资源模板却报 Context is not available outside of a request,核对旧版泛型 Context 重建与 2.3.0 修复。
MCP 关闭连接时,Shutting 日志触发 JSON 解析错误
stdio 工具的退出日志进入 stdout,会被当成 MCP 消息解析。区分服务器日志与宿主输出,核对 SDK 1.29.0 的关闭路径、正确等待连接和错误处理。
Agent 关闭多个 MCP 连接,报 cancel scope 跨 Task 退出
多个 MCP 连接退出时报 cancel scope 跨 Task 错误,检查上下文的任务归属和反向关闭顺序。用同一 Task 的 AsyncExitStack 管理 transport 与 session。


