Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package io.modelcontextprotocol.client;

import java.util.HashMap;

public class McpServerInstance {
private String name;
private String url;

private HashMap<String, String> headers;
Comment thread
rohitdutt-04 marked this conversation as resolved.
Outdated

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public HashMap<String, String> getHeaders() {
return headers;
}

public void setHeaders(HashMap<String, String> headers) {
this.headers = headers;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package io.modelcontextprotocol.client.transport;

import io.modelcontextprotocol.client.McpClient;
import io.modelcontextprotocol.client.McpSyncClient;
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;

import io.modelcontextprotocol.client.McpServerInstance;


public class McpSseServerLoader {

public List<McpSyncClient> initServers(List<McpServerInstance> servers) {

List<McpSyncClient> connectedClients = new CopyOnWriteArrayList<>();

if (servers.isEmpty()) {
throw new IllegalArgumentException("No servers found to initialize.");
}

for (McpServerInstance server : servers) {

String serverUrl = server.getUrl();
if (serverUrl == null || serverUrl.isEmpty()) {
System.out.println("Skipping " + server.getName() + ": URL not available");
continue;
}

try {
System.out.println("\nInitializing connection to: " + server.getName());
HttpClientSseClientTransport newTransport = new HttpClientSseClientTransport(serverUrl);
McpSyncClient newClient = McpClient.sync(newTransport).build();
newClient.initialize();
connectedClients.add(newClient);
System.out.println("✅ Successfully connected to " + server.getName());
} catch (Exception e) {
System.out.println("✗ Failed to connect to SSE server " + server.getName() + ": " + e.getMessage());
}
}
return connectedClients;
}
}