public class McpStreamableServerSession extends Object implements McpLoggableSession
| Modifier and Type | Class and Description |
|---|---|
static interface |
McpStreamableServerSession.Factory
Factory for new Streamable HTTP MCP sessions.
|
static interface |
McpStreamableServerSession.InitRequestHandler
Request handler for the initialization request.
|
static class |
McpStreamableServerSession.McpStreamableServerSessionInit
Composite holding the
McpStreamableServerSession and the initialization
result |
class |
McpStreamableServerSession.McpStreamableServerSessionStream
An individual SSE stream within a Streamable HTTP context.
|
static class |
McpStreamableServerSession.MethodNotFoundError |
| Constructor and Description |
|---|
McpStreamableServerSession(String id,
McpSchema.ClientCapabilities clientCapabilities,
McpSchema.Implementation clientInfo,
Duration requestTimeout,
Map<String,McpRequestHandler<?>> requestHandlers,
Map<String,McpNotificationHandler> notificationHandlers)
Create an instance of the streamable session.
|
| Modifier and Type | Method and Description |
|---|---|
reactor.core.publisher.Mono<Void> |
accept(McpSchema.JSONRPCNotification notification)
Handle the MCP notification.
|
reactor.core.publisher.Mono<Void> |
accept(McpSchema.JSONRPCResponse response)
Handle the MCP response.
|
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.
|
reactor.core.publisher.Mono<Void> |
delete() |
String |
getId()
Return the Session ID.
|
boolean |
isNotificationForLevelAllowed(McpSchema.LoggingLevel loggingLevel)
Allows checking whether a particular logging level is allowed.
|
McpStreamableServerSession.McpStreamableServerSessionStream |
listeningStream(McpStreamableServerTransport transport)
Create a listening stream (the generic HTTP GET request without Last-Event-ID
header).
|
reactor.core.publisher.Flux<McpSchema.JSONRPCMessage> |
replay(Object lastEventId) |
reactor.core.publisher.Mono<Void> |
responseStream(McpSchema.JSONRPCRequest jsonrpcRequest,
McpStreamableServerTransport transport)
Provide the SSE stream of MCP messages finalized with a Response.
|
reactor.core.publisher.Mono<Void> |
sendNotification(String method,
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.
|
void |
setMinLoggingLevel(McpSchema.LoggingLevel minLoggingLevel)
Set the minimum logging level for the client.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitsendNotificationpublic McpStreamableServerSession(String id, McpSchema.ClientCapabilities clientCapabilities, McpSchema.Implementation clientInfo, Duration requestTimeout, Map<String,McpRequestHandler<?>> requestHandlers, Map<String,McpNotificationHandler> notificationHandlers)
id - session IDclientCapabilities - client capabilitiesclientInfo - client inforequestTimeout - timeout to use for requestsrequestHandlers - the map of MCP request handlers keyed by method namenotificationHandlers - the map of MCP notification handlers keyed by method
namepublic void setMinLoggingLevel(McpSchema.LoggingLevel minLoggingLevel)
McpLoggableSessionsetMinLoggingLevel in interface McpLoggableSessionminLoggingLevel - The minimum logging levelpublic boolean isNotificationForLevelAllowed(McpSchema.LoggingLevel loggingLevel)
McpLoggableSessionisNotificationForLevelAllowed in interface McpLoggableSessionloggingLevel - the level to checkpublic String getId()
public <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, 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 - parameters to be sent with the notificationpublic reactor.core.publisher.Mono<Void> delete()
public McpStreamableServerSession.McpStreamableServerSessionStream listeningStream(McpStreamableServerTransport transport)
transport - The dedicated SSE transport streampublic reactor.core.publisher.Flux<McpSchema.JSONRPCMessage> replay(Object lastEventId)
public reactor.core.publisher.Mono<Void> responseStream(McpSchema.JSONRPCRequest jsonrpcRequest, McpStreamableServerTransport transport)
jsonrpcRequest - the MCP request triggering the stream creationtransport - the SSE transport stream to send messages topublic reactor.core.publisher.Mono<Void> accept(McpSchema.JSONRPCNotification notification)
notification - MCP notificationpublic reactor.core.publisher.Mono<Void> accept(McpSchema.JSONRPCResponse response)
response - MCP response to the server-initiated requestpublic 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.