You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FastMCP代理转发请求至sequential-thinking时出现StreamableHTTPSessionManager任务组未初始化的RuntimeError问题排查

FastMCP代理转发请求至sequential-thinking时出现StreamableHTTPSessionManager任务组未初始化的RuntimeError问题排查

这个错误的核心原因是带HTTP支持的sequential-thinking MCP实例没有正确初始化StreamableHTTPSessionManager依赖的任务组,而任务组的初始化是和ASGI应用的生命周期(lifespan)绑定的。结合你描述的场景,我来拆解原因和对应的解决办法:

为什么会出现这个错误?

直接用mcp.run()运行你改造后的sequential-thinking MCP实例时,run()方法可能没有正确触发FastMCP HTTP应用的lifespan启动事件——而这个事件正是用来初始化StreamableHTTPSessionManager任务组的。相比之下,你的自定义服务器用run_async()能正常工作,是因为run_async()更适配异步ASGI应用的生命周期管理流程,能正确触发lifespan的启动/关闭逻辑。

具体解决办法

办法1:改用run_async()运行sequential-thinking的MCP实例

既然你的自定义服务器用run_async()没问题,那sequential-thinking的MCP实例也可以直接沿用这个方式,它能更可靠地处理异步ASGI应用的生命周期,自动初始化任务组。

示例代码:

import asyncio
from your_sequential_mcp_module import mcp  # 替换成你改造后的sequential-thinking MCP实例

async def main():
    await mcp.run_async(host="127.0.0.1", port=8001)  # 用你需要的host和port

if __name__ == "__main__":
    asyncio.run(main())

办法2:用FastAPI/Starlette包裹MCP应用,显式传递lifespan

如果办法1不生效,可以按照错误提示里的ASGI集成方式,把sequential-thinking的MCP HTTP应用挂载到FastAPI/Starlette父应用中,并显式指定lifespan,让父应用管理MCP的生命周期,确保任务组被正确初始化。

示例代码:

from fastapi import FastAPI
from your_sequential_mcp_module import mcp  # 替换成你改造后的sequential-thinking MCP实例

# 获取FastMCP的HTTP ASGI应用
mcp_http_app = mcp.http_app(path="/mcp")

# 创建父FastAPI应用,必须指定lifespan为MCP应用的lifespan
parent_app = FastAPI(lifespan=mcp_http_app.lifespan)

# 把MCP的HTTP应用挂载到父应用的指定路径下
parent_app.mount("/sequential-thinking", mcp_http_app)

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(parent_app, host="127.0.0.1", port=8001)

办法3:检查你自定义的HTTP实现是否合规

因为你是自己给sequential-thinking加的HTTP支持,要确认你没有绕过FastMCP的内置HTTP应用逻辑:

  • 确保你是通过mcp.http_app()来生成ASGI应用,而不是自己手动写独立的HTTP路由/处理函数
  • 检查你的HTTP实现中,有没有遗漏对MCP应用lifespan事件的关联,比如是否正确继承了FastMCP的生命周期钩子

总结

优先尝试办法1,因为它和你已验证的自定义服务器运行方式一致,改动最小;如果不行再尝试办法2,严格按照ASGI集成规范来管理生命周期;最后检查你自己的HTTP实现是否有逻辑疏漏。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 10:19:28