public interface McpServerTransportProvider
The lifecycle of the provider dictates that it be created first, upon application
startup, and then passed into either
McpServer.sync(McpServerTransportProvider)
or
McpServer.async(McpServerTransportProvider)
. As
a result of the MCP server creation, the provider will be notified of a
McpServerSession.Factory
which will be used to handle a 1:1 communication
between a newly connected client and the server. The provider's responsibility is to
create instances of McpServerTransport
that the session will utilise during the
session lifetime.
Finally, the McpServerTransport
s can be closed in bulk when close()
or
closeGracefully()
are called as part of the normal application shutdown event.
Individual McpServerTransport
s can also be closed on a per-session basis, where
the McpServerSession.close()
or McpServerSession.closeGracefully()
closes the provided transport.
限定符和类型 | 方法和说明 |
---|---|
default void |
close()
Immediately closes all the transports with connected clients and releases any
associated resources.
|
reactor.core.publisher.Mono<java.lang.Void> |
closeGracefully()
Gracefully closes all the transports with connected clients and releases any
associated resources asynchronously.
|
reactor.core.publisher.Mono<java.lang.Void> |
notifyClients(java.lang.String method,
java.util.Map<java.lang.String,java.lang.Object> params)
Sends a notification to all connected clients.
|
void |
setSessionFactory(McpServerSession.Factory sessionFactory)
Sets the session factory that will be used to create sessions for new clients.
|
void setSessionFactory(McpServerSession.Factory sessionFactory)
sessionFactory
- the session factory to be used for initiating client sessionsreactor.core.publisher.Mono<java.lang.Void> notifyClients(java.lang.String method, java.util.Map<java.lang.String,java.lang.Object> params)
method
- the name of the notification method to be called on the clientsparams
- a map of parameters to be sent with the notificationMcpSession.sendNotification(String, Map)
default void close()
reactor.core.publisher.Mono<java.lang.Void> closeGracefully()
Mono
that completes when the connections have been closed.