public class McpServerSession extends Object implements McpSession
| Modifier and Type | Class and Description |
|---|---|
static interface |
McpServerSession.Factory
Factory for creating server sessions which delegate to a provided 1:1 transport
with a connected client.
|
static interface |
McpServerSession.InitNotificationHandler
Notification handler for the initialization notification from the client.
|
static interface |
McpServerSession.InitRequestHandler
Request handler for the initialization request.
|
static class |
McpServerSession.MethodNotFoundError |
static interface |
McpServerSession.NotificationHandler
A handler for client-initiated notifications.
|
static interface |
McpServerSession.RequestHandler<T>
A handler for client-initiated requests.
|
| Constructor and Description |
|---|
McpServerSession(String id,
McpServerTransport transport,
McpServerSession.InitRequestHandler initHandler,
McpServerSession.InitNotificationHandler initNotificationHandler,
Map<String,McpServerSession.RequestHandler<?>> requestHandlers,
Map<String,McpServerSession.NotificationHandler> notificationHandlers)
Creates a new server session with the given parameters and the transport to use.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Closes the session and releases any associated resources.
|
reactor.core.publisher.Mono<Void> |
closeGracefully()
Closes the session and releases any associated resources asynchronously.
|
String |
getId()
Retrieve the session id.
|
reactor.core.publisher.Mono<Void> |
handle(McpSchema.JSONRPCMessage message)
Called by the
McpServerTransportProvider once the session is determined. |
void |
init(McpSchema.ClientCapabilities clientCapabilities,
McpSchema.Implementation clientInfo)
Called upon successful initialization sequence between the client and the server
with the client capabilities and information.
|
reactor.core.publisher.Mono<Void> |
sendNotification(String method,
Map<String,Object> params)
Sends a notification to the model client or server with parameters.
|
<T> reactor.core.publisher.Mono<T> |
sendRequest(String method,
Object requestParams,
com.fasterxml.jackson.core.type.TypeReference<T> typeRef)
Sends a request to the model counterparty and expects a response of type T.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitsendNotificationpublic McpServerSession(String id, McpServerTransport transport, McpServerSession.InitRequestHandler initHandler, McpServerSession.InitNotificationHandler initNotificationHandler, Map<String,McpServerSession.RequestHandler<?>> requestHandlers, Map<String,McpServerSession.NotificationHandler> notificationHandlers)
id - session idtransport - the transport to useinitHandler - called when a
McpSchema.InitializeRequest is received by the
serverinitNotificationHandler - called when a
McpSchema.METHOD_NOTIFICATION_INITIALIZED is received.requestHandlers - map of request handlers to usenotificationHandlers - map of notification handlers to usepublic String getId()
public void init(McpSchema.ClientCapabilities clientCapabilities, McpSchema.Implementation clientInfo)
clientCapabilities - the capabilities the connected client providesclientInfo - the information about the connected clientpublic <T> reactor.core.publisher.Mono<T> sendRequest(String method, Object requestParams, com.fasterxml.jackson.core.type.TypeReference<T> typeRef)
McpSessionThis method handles the request-response pattern where a response is expected from the client or server. The response type is determined by the provided TypeReference.
sendRequest in interface McpSessionT - the type of the expected responsemethod - the name of the method to be called on the counterpartyrequestParams - the parameters to be sent with the requesttypeRef - the TypeReference describing the expected response typepublic reactor.core.publisher.Mono<Void> sendNotification(String method, Map<String,Object> params)
McpSession
Similar to McpSession.sendNotification(String) but allows sending additional
parameters with the notification.
sendNotification in interface McpSessionmethod - the name of the notification method to be sent to the counterpartyparams - a map of parameters to be sent with the notificationpublic reactor.core.publisher.Mono<Void> handle(McpSchema.JSONRPCMessage message)
McpServerTransportProvider once the session is determined.
The purpose of this method is to dispatch the message to an appropriate handler as
specified by the MCP server implementation
(McpAsyncServer or
McpSyncServer) via
McpServerSession.Factory that the server creates.message - the incoming JSON-RPC messagepublic reactor.core.publisher.Mono<Void> closeGracefully()
McpSessioncloseGracefully in interface McpSessionMono that completes when the session has been closed.public void close()
McpSessionclose in interface McpSessionCopyright © 2025. All rights reserved.