Код: Выделить всё
io.modelcontextprotocol.sdk:mcp:0.11.0Проблема: Инициализация клиента не выполняет приведенную выше ошибку при использовании транспорта HTTPS. The same server works perfectly with VS Code (which also uses HTTPS) and with SSE transport from our Java client.
Context:
- The MCP server is an internal implementation that works perfectly with VS Code via HTTPS
- SSE transport connects successfully with the same server from our Java client
- Only HTTPS transport is failing during the initialization phase in Java SDK
- Server definitely supports MCP-over-HTTP since VS Code connects successfully
Код: Выделить всё
if ("http".equalsIgnoreCase(transportType)) { // Note: actually using HTTPS URL
HttpClientStreamableHttpTransport.Builder builder = HttpClientStreamableHttpTransport.builder(mcpUrl)
.customizeRequest(requestBuilder -> {
System.out.println("Customizing request for HTTP MCP client: " + mcpUrl);
// Add authentication headers, if available
if (authHeader != null && !authHeader.isEmpty()) {
authHeader.forEach((key, value) -> {
requestBuilder.setHeader(key, value);
});
}
})
.endpoint(URI.create(mcpUrl).getRawPath());
client = McpClient.async(builder.build()).requestTimeout(Duration.ofSeconds(60)).build();
}
client.initialize().block();
< /code>
Основная трассировка стека: < /p>
java.lang.RuntimeException: Failed to send message: DummyEvent[responseInfo=jdk.internal.net.http.ResponseInfoImpl@fbe869d]
at io.modelcontextprotocol.client.transport.HttpClientStreamableHttpTransport.lambda$sendMessage$27(HttpClientStreamableHttpTransport.java:512)
...
at io.modelcontextprotocol.client.transport.ResponseSubscribers$BodilessResponseLineSubscriber.hookOnComplete(ResponseSubscribers.java:287)
- Ошибка возникает во время инициализации клиента с помощью client.initialize (). block ()
- Вовлекат BodiLessResponseLinesubScriber.hookonComplete Предложение HTTP -обработки. VS -код через HTTPS - поэтому реализация сервера должна быть правильной
- Тот же сервер работает с SSE Transport от Java - поэтому аутентификация/подключение в порядке
- инициализировал Code/Code
java client → server через HTTPS (сбои с ошибкой инициализации) < /li>
< /ul>
Это говорит о том, что проблема конкретно связана с тем, как транспортная транспорта Java SDK обрабатывает инициализацию по инициализации VS. ценят!>
Подробнее здесь: https://stackoverflow.com/questions/797 ... explicit-a