public class McpServerSession extends java.lang.Object implements McpSession
限定符和类型 | 类和说明 |
---|---|
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.
|
构造器和说明 |
---|
McpServerSession(java.lang.String id,
McpServerTransport transport,
McpServerSession.InitRequestHandler initHandler,
McpServerSession.InitNotificationHandler initNotificationHandler,
java.util.Map<java.lang.String,McpServerSession.RequestHandler<?>> requestHandlers,
java.util.Map<java.lang.String,McpServerSession.NotificationHandler> notificationHandlers)
Creates a new server session with the given parameters and the transport to use.
|
限定符和类型 | 方法和说明 |
---|---|
void |
close()
Closes the session and releases any associated resources.
|
reactor.core.publisher.Mono<java.lang.Void> |
closeGracefully()
Closes the session and releases any associated resources asynchronously.
|
java.lang.String |
getId()
Retrieve the session id.
|
McpServerTransport |
getTransport() |
reactor.core.publisher.Mono<java.lang.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<java.lang.Void> |
sendNotification(java.lang.String method,
java.util.Map<java.lang.String,java.lang.Object> params)
Sends a notification to the model client or server with parameters.
|
<T> reactor.core.publisher.Mono<T> |
sendRequest(java.lang.String method,
java.lang.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, wait
sendNotification
public McpServerSession(java.lang.String id, McpServerTransport transport, McpServerSession.InitRequestHandler initHandler, McpServerSession.InitNotificationHandler initNotificationHandler, java.util.Map<java.lang.String,McpServerSession.RequestHandler<?>> requestHandlers, java.util.Map<java.lang.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 McpServerTransport getTransport()
public java.lang.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(java.lang.String method, java.lang.Object requestParams, com.fasterxml.jackson.core.type.TypeReference<T> typeRef)
McpSession
This 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
在接口中 McpSession
T
- 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<java.lang.Void> sendNotification(java.lang.String method, java.util.Map<java.lang.String,java.lang.Object> params)
McpSession
Similar to McpSession.sendNotification(String)
but allows sending additional
parameters with the notification.
sendNotification
在接口中 McpSession
method
- 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<java.lang.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<java.lang.Void> closeGracefully()
McpSession
closeGracefully
在接口中 McpSession
Mono
that completes when the session has been closed.public void close()
McpSession
close
在接口中 McpSession