MCP工具填写不可达地址后,无限重连

Blade 未结 1 141
lao
lao 2025-08-04 09:29

一、该问题的重现步骤是什么?

1. MCP输入一个不可达的地址,例如baidu:8888.com进行调试



二、你期待的结果是什么?实际看到的又是什么?

1.期待多次进行地址请求打到一定次数后,不要再请求了,实际是,死循环,一直不停请求


三、你正在使用的是什么产品,什么版本?在什么操作系统上?


四、请提供详细的错误堆栈信息,这很重要。

image.png


五、若有更多详细信息,请在下面提供。

1条回答
  •  admin
    admin (楼主)
    2025-08-04 10:39

    无限重连这是langchain4j底层的设定,如果要修改记数,你可以创建一个类继承 DefaultMcpClient , 新的类里进行reconnect的时候进行记数判断,超过10就终止。然后代码里通过 DefaultMcpClient 构建的类,用你新创建的构建就行了。他俩都实现了McpClient的接口,所以其他地方的代码都不需要修改。 


    CleanShot20250804110414@2x.png

    作者追问:2025-08-04 10:39

    针对这个回复有两个疑问

    (1)用我自己新的继承类,能停掉这个重连吗

    (2)然后提供的建议是(新的类里进行reconnect的时候进行记数判断,超过10就终止)终止的也只是主程序吧,无限重连的问题还是没有解决对吗?

    回答: 2025-08-04 10:39

    自定义的类里面的逻辑你想怎么写就可以怎么写,你代码里给他终止了就不会再重试了,比如最小改动,你把自定义类里拷贝过来的 transport.onFailure 方法重写一下,就不会无限重连了,不要调用 initialize 方法,直接log.err就可以

    0 讨论(0)
提交回复