#326·fastmcp

client.set_roots 和 send_roots_list_changed 没有更新根目录

作者: xxzero12创建于 2025年5月5日更新于 2026年9月16日
标签bug

说明

嗨,正在尝试测试根功能, 有点是客户端设置了根, 但服务器仍然返回旧的

示例代码

zz
实例:

客户端.py

客户端=客户端( C)
"http://localhost:9000/sse","互联网档案馆的存檔,存档日期2013-12-02.
采样   handler=采样  handler,
log handler=log handler, 页面存档备份,存于互联网档案馆
根=[
"档案:home/project/broot-example/frontend" (中文(简体) ).
[
消息( H)

async def 主线( ):
# 连接在这里建立
与客户端同步 :
等待客户端.call tool("get forecast",{"纬度":47.6101,"经度":-122.2015})
客户端. set  froot([
"文件:home/project/backend" 页面存档备份,存于互联网档案馆" (中文(简体) ).
) )
等待客户端. send  broot list changed ()
等待客户端.call tool("get forecast",{"纬度":47.6101,"经度":-122.2015})

如果... 名字... "... main...":
ayncio.run(主要())


服务器.py

looking.basicConfig (level=logb.DEBUG) (英语).
mcp = fastMCP(名称为"图文服务器").


@ mcp.tool () (中文(简体) ).
aync def 获得 forecast(纬度:浮出水面,经度:浮出水面,ctx:上下文) - > str:
""获得一个位置的天气预报.

参数 :
纬度:位置的纬度
经度:位置经度
"" "" ""
root = 等待 ctx.list  froot()
等待 ctx.info( f"{ froot}" )
等待 ctx.info(f)"信息消息:处理坐标:{纬度},{经度}").

如果... 名字... "... main...":
mcp.run(运输="sse",主机="127.0.0.1",端口=900.


一些结果就像下面

第一通电话
DEBUG:mcp.server.sse:通过SSE发送消息:root=JSONRPC request(方法='root/list',params=None,jsonrpc='2.0',id=1)
DEBUG:mcp.server.sse:收到JSON:b'{"jsonrpc":"2.0""id":0"结果":{"根":[{"uri":"file://home/projects/broot-example/frontend"}}====
第二次调用( 设置根后应返回后端)
DEBUG:mcp.server.sse:收到JSON:b'{"方法":"通知/基础/列表已更改","jsonrpc":"2.0"}"
DEBUG:mcp.server.sse:通过SSE发送消息:root=JSONRPC request(方法='root/list',params=None,jsonrpc='2.0',id=1)
DEBUG:mcp.server.sse:收到JSON:b'{"jsonrpc":"2.0""id":1"结果":{"根":[{"uri":"file://home/projects/broot-example/frontend"}} }}'

QQ 版本信息

文本 FastMCP版本: 2.2.7 MCP版本: 1.7.1 Python版本: 3.13.3 平台:Windows-11-10.0.26100-SP0


++ 附加上下文

无回复( N)

内容来源: PrefectHQ/fastmcp