Description
Bug description
SSE方式接入高德MCP报错,同样的SSE配置在cursor里面运行是没有问题的
高德SSE参考文档:https://lbs.amap.com/api/mcp-server/gettingstarted#s2
application.properties配置:
spring.ai.mcp.client.enabled=true
spring.ai.mcp.client.request-timeout=20s
spring.ai.mcp.client.sse.connections.server1.url=https://mcp.amap.com/sse?key=xxx
报错信息:
[alsc.sales_data_center^^A47F9B75ACA3410330606ECA34F91A86|1744771227656][1] -2025-04-16 10:40:27.656 ERROR 16815 --- [HttpClient-1-Worker-2] i.m.c.t.WebFluxSseClientTransport : Fatal SSE error, not retrying: 200 OK from GET https://mcp.amap.com/sse, but response failed with cause: java.io.IOException: http1_0 content, bytes received: 81,[traceId:]
[alsc.sales_data_center^^A47F9B75ACA3410330606ECA34F91A86|1744771227656][1] -2025-04-16 10:40:27.659 ERROR 16815 --- [HttpClient-1-Worker-2] reactor.core.publisher.Operators : Operator called default onErrorDropped
reactor.core.Exceptions$ErrorCallbackNotImplemented: org.springframework.web.reactive.function.client.WebClientResponseException: 200 OK from GET https://mcp.amap.com/sse, but response failed with cause: java.io.IOException: http1_0 content, bytes received: 81
Caused by: org.springframework.web.reactive.function.client.WebClientResponseException: 200 OK from GET https://mcp.amap.com/sse, but response failed with cause: java.io.IOException: http1_0 content, bytes received: 81
at org.springframework.web.reactive.function.client.WebClientResponseException.create(WebClientResponseException.java:337) ~[spring-webflux-6.2.5.jar:6.2.5]
at org.springframework.web.reactive.function.client.DefaultClientResponse.lambda$createException$1(DefaultClientResponse.java:214) ~[spring-webflux-6.2.5.jar:6.2.5]
Caused by: java.io.IOException: http1_0 content, bytes received: 81
at java.net.http/jdk.internal.net.http.common.Utils.wrapWithExtraDetail(Utils.java:391) ~[java.net.http:na]
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
*__checkpoint ⇢ Body from GET https://mcp.amap.com/sse [DefaultClientResponse]
Original Stack Trace:
at java.net.http/jdk.internal.net.http.common.Utils.wrapWithExtraDetail(Utils.java:391) ~[java.net.http:na]
at java.net.http/jdk.internal.net.http.Http1Response$BodyReader.onReadError(Http1Response.java:676) ~[java.net.http:na]
at java.net.http/jdk.internal.net.http.Http1AsyncReceiver.checkForErrors(Http1AsyncReceiver.java:302) ~[java.net.http:na]
at java.net.http/jdk.internal.net.http.Http1AsyncReceiver.flush(Http1AsyncReceiver.java:268) ~[java.net.http:na]
at java.net.http/jdk.internal.net.http.common.SequentialScheduler$LockingRestartableTask.run(SequentialScheduler.java:182) ~[java.net.http:na]
at java.net.http/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:149) ~[java.net.http:na]
at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:207) ~[java.net.http:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
Caused by: java.net.SocketException: Connection reset
at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401) ~[na:na]
at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434) ~[na:na]