Class McpStatelessSyncServer

java.lang.Object
io.modelcontextprotocol.server.McpStatelessSyncServer

public class McpStatelessSyncServer extends Object
A stateless MCP server implementation for use with Streamable HTTP transport types. It allows simple horizontal scalability since it does not maintain a session and does not require initialization. Each instance of the server can be reached with no prior knowledge and can serve the clients with the capabilities it supports.
Author:
Dariusz Jędrzejczyk
  • Method Details

    • getServerCapabilities

      public McpSchema.ServerCapabilities getServerCapabilities()
      Get the server capabilities that define the supported features and functionality.
      Returns:
      The server capabilities
    • getServerInfo

      public McpSchema.Implementation getServerInfo()
      Get the server implementation information.
      Returns:
      The server implementation details
    • closeGracefully

      public reactor.core.publisher.Mono<Void> closeGracefully()
      Gracefully closes the server, allowing any in-progress operations to complete.
      Returns:
      A Mono that completes when the server has been closed
    • close

      public void close()
      Close the server immediately.
    • addTool

      public void addTool(McpStatelessServerFeatures.SyncToolSpecification toolSpecification)
      Add a new tool specification at runtime.
      Parameters:
      toolSpecification - The tool specification to add
    • listTools

      public List<McpSchema.Tool> listTools()
      List all registered tools.
      Returns:
      A list of all registered tools
    • removeTool

      public void removeTool(String toolName)
      Remove a tool handler at runtime.
      Parameters:
      toolName - The name of the tool handler to remove
    • addResource

      public void addResource(McpStatelessServerFeatures.SyncResourceSpecification resourceSpecification)
      Add a new resource handler at runtime.
      Parameters:
      resourceSpecification - The resource handler to add
    • listResources

      public List<McpSchema.Resource> listResources()
      List all registered resources.
      Returns:
      A list of all registered resources
    • removeResource

      public void removeResource(String resourceUri)
      Remove a resource handler at runtime.
      Parameters:
      resourceUri - The URI of the resource handler to remove
    • addResourceTemplate

      public void addResourceTemplate(McpStatelessServerFeatures.SyncResourceTemplateSpecification resourceTemplateSpecification)
      Add a new resource template.
      Parameters:
      resourceTemplateSpecification - The resource template specification to add
    • listResourceTemplates

      public List<McpSchema.ResourceTemplate> listResourceTemplates()
      List all registered resource templates.
      Returns:
      A list of all registered resource templates
    • removeResourceTemplate

      public void removeResourceTemplate(String uriTemplate)
      Remove a resource template.
      Parameters:
      uriTemplate - The URI template of the resource template to remove
    • addPrompt

      public void addPrompt(McpStatelessServerFeatures.SyncPromptSpecification promptSpecification)
      Add a new prompt handler at runtime.
      Parameters:
      promptSpecification - The prompt handler to add
    • listPrompts

      public List<McpSchema.Prompt> listPrompts()
      List all registered prompts.
      Returns:
      A list of all registered prompts
    • removePrompt

      public void removePrompt(String promptName)
      Remove a prompt handler at runtime.
      Parameters:
      promptName - The name of the prompt handler to remove