Class BaseServerTransportProvider

java.lang.Object
com.mulesoft.connectors.mcp.internal.server.connection.provider.BaseServerTransportProvider
All Implemented Interfaces:
io.modelcontextprotocol.spec.McpServerTransportProvider
Direct Known Subclasses:
SSEServerTransportProvider, StreamableHttpServerTransportProvider

public abstract class BaseServerTransportProvider extends Object implements io.modelcontextprotocol.spec.McpServerTransportProvider
A server transport on which different events can be observed
Since:
0.1.0
  • Field Details

    • objectMapper

      protected static final com.fasterxml.jackson.databind.ObjectMapper objectMapper
    • open

      protected final AtomicBoolean open
    • refName

      protected final String refName
    • sessionManager

      protected final SessionManager sessionManager
  • Constructor Details

    • BaseServerTransportProvider

      public BaseServerTransportProvider(String refName, SessionManager sessionManager)
  • Method Details

    • onNewSession

      public void onNewSession(SessionObserver observer)
      Register an observer when a new session is created. Pre-existing observer is overridden.
      Parameters:
      observer - - if null, the current observer is unregistered
    • onRPCRequest

      public void onRPCRequest(RpcRequestObserver observer)
      Register an observer when a new RPC request is received. This is for requests only, notifications and other messages are ignored. Pre-existing observer is overridden.
      Parameters:
      observer - - if null, the current observer is unregistered
    • open

      public final void open() throws org.mule.runtime.api.connection.ConnectionException
      Throws:
      org.mule.runtime.api.connection.ConnectionException
    • doOpen

      protected abstract void doOpen()
    • closeGracefully

      public final reactor.core.publisher.Mono<Void> closeGracefully()
      Specified by:
      closeGracefully in interface io.modelcontextprotocol.spec.McpServerTransportProvider
    • doCloseGracefully

      protected abstract void doCloseGracefully()
    • notifyClients

      public reactor.core.publisher.Mono<Void> notifyClients(String method, Object params)
      Specified by:
      notifyClients in interface io.modelcontextprotocol.spec.McpServerTransportProvider
    • assureTransportOpen

      protected boolean assureTransportOpen(org.mule.runtime.http.api.server.async.HttpResponseReadyCallback responseCallback)
    • setSessionFactory

      public void setSessionFactory(io.modelcontextprotocol.spec.McpServerSession.Factory sessionFactory)
      Specified by:
      setSessionFactory in interface io.modelcontextprotocol.spec.McpServerTransportProvider
    • getSessionObserver

      protected Optional<SessionObserver> getSessionObserver()
    • getRequestObserver

      protected Optional<RpcRequestObserver> getRequestObserver()
    • getSessionFactory

      protected io.modelcontextprotocol.spec.McpServerSession.Factory getSessionFactory()