Class McpServerConfiguration

java.lang.Object
com.xebialabs.xlrelease.mcp.config.McpServerConfiguration

@Configuration(proxyBeanMethods=false) public class McpServerConfiguration extends Object
Stands up an MCP server on the bare MCP Java SDK (no Spring AI starter): a Jackson JsonMapper carrying XlrMcpJacksonModule, the SDK's Servlet transport, the McpSyncServer with tool specs built by McpToolSpecifications from the McpToolset beans, and a ServletRegistrationBean mounting the transport (default /s/mcp). Settings come from XlrConfig (xl.features.mcp.server.*); McpServerEnabledFilter gates serving at runtime.
  • Constructor Details

    • McpServerConfiguration

      public McpServerConfiguration()
  • Method Details

    • mcpToolSpecifications

      @Bean public McpToolSpecifications mcpToolSpecifications()
    • mcpToolSpecs

      @Bean public McpServerConfiguration.McpToolSpecs mcpToolSpecs(McpToolSpecifications toolSpecifications, List<McpToolset> toolsets)
      Builds the tool specs once from every McpToolset bean in the main context — those declared in this module and those contributed by an installed plugin.
    • mcpTransportProvider

      @Bean public io.modelcontextprotocol.server.transport.HttpServletStreamableServerTransportProvider mcpTransportProvider()
    • mcpSyncServer

      @Bean public io.modelcontextprotocol.server.McpSyncServer mcpSyncServer(io.modelcontextprotocol.server.transport.HttpServletStreamableServerTransportProvider transportProvider, McpServerConfiguration.McpToolSpecs toolSpecs)
    • mcpReadOnlyToolReconciler

      @Bean public McpReadOnlyToolReconciler mcpReadOnlyToolReconciler(io.modelcontextprotocol.server.McpSyncServer mcpSyncServer, McpServerConfiguration.McpToolSpecs toolSpecs, @Qualifier("auxiliary") ExecutorService auxiliaryExecutor)
    • mcpServletRegistration

      @Bean public org.springframework.boot.web.servlet.ServletRegistrationBean<io.modelcontextprotocol.server.transport.HttpServletStreamableServerTransportProvider> mcpServletRegistration(io.modelcontextprotocol.server.transport.HttpServletStreamableServerTransportProvider transportProvider, org.springframework.beans.factory.ObjectProvider<org.springframework.boot.webmvc.autoconfigure.WebMvcProperties> webMvcProperties)
    • mcpServerEnabledFilter

      @Bean public org.springframework.boot.web.servlet.FilterRegistrationBean<McpServerEnabledFilter> mcpServerEnabledFilter(org.springframework.beans.factory.ObjectProvider<org.springframework.boot.webmvc.autoconfigure.WebMvcProperties> webMvcProperties)