Skip to content

Commit ea47496

Browse files
committed
More protected and public scoping for extending sync
and async servers and clients
1 parent be34057 commit ea47496

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

mcp-core/src/main/java/io/modelcontextprotocol/client/McpAsyncClient.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import org.slf4j.LoggerFactory;
4343
import reactor.core.publisher.Flux;
4444
import reactor.core.publisher.Mono;
45+
import reactor.util.context.ContextView;
4546

4647
/**
4748
* The Model Context Protocol (MCP) client implementation that provides asynchronous
@@ -317,13 +318,20 @@ public McpAsyncClient(McpClientTransport transport, Duration requestTimeout, Dur
317318
};
318319

319320
this.initializer = new LifecycleInitializer(clientCapabilities, clientInfo, transport.protocolVersions(),
320-
initializationTimeout, ctx -> new McpClientSession(requestTimeout, transport, requestHandlers,
321-
notificationHandlers, con -> con.contextWrite(ctx)),
321+
initializationTimeout,
322+
ctx -> buildClientSession(requestTimeout, transport, requestHandlers, notificationHandlers, ctx),
322323
postInitializationHook);
323324

324325
this.transport.setExceptionHandler(this.initializer::handleException);
325326
}
326327

328+
protected McpClientSession buildClientSession(Duration requestTimeout, McpClientTransport transport,
329+
Map<String, RequestHandler<?>> requestHandlers, Map<String, NotificationHandler> notificationHandlers,
330+
ContextView ctx) {
331+
return new McpClientSession(requestTimeout, transport, requestHandlers, notificationHandlers,
332+
con -> con.contextWrite(ctx));
333+
}
334+
327335
/**
328336
* Get the current initialization result.
329337
* @return the initialization result.

mcp-core/src/main/java/io/modelcontextprotocol/client/McpSyncClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public class McpSyncClient implements AutoCloseable {
6464
// is not a requirement?
6565
private static final long DEFAULT_CLOSE_TIMEOUT_MS = 10_000L;
6666

67-
private final McpAsyncClient delegate;
67+
protected final McpAsyncClient delegate;
6868

6969
private final Supplier<McpTransportContext> contextProvider;
7070

0 commit comments

Comments
 (0)