Class SerializedStdioServerTransportProvider

java.lang.Object
ch.so.agi.mcp.transport.SerializedStdioServerTransportProvider
All Implemented Interfaces:
io.modelcontextprotocol.spec.McpServerTransportProvider, io.modelcontextprotocol.spec.McpServerTransportProviderBase, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

public final class SerializedStdioServerTransportProvider extends Object implements io.modelcontextprotocol.spec.McpServerTransportProvider, org.springframework.context.ApplicationContextAware
STDIO transport with a single writer queue.

The upstream SDK transport processes inbound messages concurrently but attempts to enqueue concurrent responses through a Reactor unicast sink. A dedicated FIFO queue makes the single-writer requirement explicit while preserving concurrent request handling.

  • Constructor Details

    • SerializedStdioServerTransportProvider

      public SerializedStdioServerTransportProvider(io.modelcontextprotocol.json.McpJsonMapper jsonMapper)
    • SerializedStdioServerTransportProvider

      public SerializedStdioServerTransportProvider(io.modelcontextprotocol.json.McpJsonMapper jsonMapper, InputStream inputStream, OutputStream outputStream)
    • SerializedStdioServerTransportProvider

      public SerializedStdioServerTransportProvider(io.modelcontextprotocol.json.McpJsonMapper jsonMapper, boolean shutdownApplicationOnEof)
    • SerializedStdioServerTransportProvider

      public SerializedStdioServerTransportProvider(io.modelcontextprotocol.json.McpJsonMapper jsonMapper, InputStream inputStream, OutputStream outputStream, boolean shutdownApplicationOnEof)
  • Method Details

    • setApplicationContext

      public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
      Specified by:
      setApplicationContext in interface org.springframework.context.ApplicationContextAware
    • setSessionFactory

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

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

      public reactor.core.publisher.Mono<Void> notifyClient(String sessionId, String method, Object params)
      Specified by:
      notifyClient in interface io.modelcontextprotocol.spec.McpServerTransportProviderBase
    • closeGracefully

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

      public void close()
      Specified by:
      close in interface io.modelcontextprotocol.spec.McpServerTransportProviderBase