IO.ModelContextProtocol.spec.mcPerror: Client konnte nicht durch explizite API -Aufruf initialisierenJava

Java-Forum
Anonymous
 IO.ModelContextProtocol.spec.mcPerror: Client konnte nicht durch explizite API -Aufruf initialisieren

Post by Anonymous »

Ich arbeite mit dem MCP Java SDK an einem Chat-basierten Plugin (MCP Java SDK (

Code: Select all

io.modelcontextprotocol.sdk:mcp:0.11.0
) und das Erhalten des Fehlers IO.ModelContextProtocol.spec.mcPerror: Client konnte bei Verwendung von HTTPS -Transport bei Verwendung des HTTPS -Transports bei Verwendung des oben genannten Fehlers bei Verwendung des HTTPS -Transports durch explizite API -Aufruf nicht initialisiert werden. Der gleiche Server funktioniert perfekt mit VS -Code (der auch HTTPS verwendet) und mit dem SSE -Transport von unserem Java -Client. Client < /li>
[*] Nur der HTTPS-Transport fällt während der Initialisierungsphase in Java SDK < /li>
Server definitiv unterstützt MCP-Over-HTTP, da mit VS-Code erfolgreich eine erfolgreiche < /li>
< /ul>
Code Snippet: < /p>

Code: Select all

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>
Liegende Stapelverfolgung: < /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)
Schlüsselbeobachtungen:
  • Fehler auftritt während der Client -Initialisierung mit client.initialize (). block ()
  • Beinhaltet bodilessReSelinesubscriber. VS -Code über https - So sollte die Server -Implementierung korrekt sein
  • Der gleiche Server funktioniert mit SSE -Transport aus Java - daher ist die Authentifizierung/Konnektivität fein
Fragen:

. /> Gibt es Unterschiede in der Art und Weise, wie der HTTP -Transport des Java SDK gegen die MCP -Initialisierung des HTTP -Clients des Codes handelt? HttpclientStreamableHttpTransport , das dies auflösen könnte? /> ❌ Java -Client → Server über https (fehlschlägt mit Initialisierungsfehler) < /li>
< /> Dies deutet darauf hin, dass das Problem spezifisch mit der Art und Weise, wie der HTTP -Transport von Java SDK von Java SDK im Vergleich zur VS -Code -Implementierung verarbeitet. geschätzt!>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post