Class AbstractHttpMcpServer

java.lang.Object
org.machanism.machai.mcp.server.AbstractMcpServer
org.machanism.machai.mcp.server.AbstractHttpMcpServer
Direct Known Subclasses:
HttpStatelessMcpServer, HttpStreamableMcpServer

public abstract class AbstractHttpMcpServer extends AbstractMcpServer
Abstract base class for HTTP-based MCP (Model Context Protocol) server implementations.

This class provides the foundational logic for starting and configuring an HTTP server using Jetty, including thread pool management, port configuration, and servlet transport provider setup. Subclasses should provide specific servlet implementations for handling MCP requests.

Since:
1.2.0
Author:
Viktor Tovstyi
  • Field Details

    • log

      private final org.slf4j.Logger log
      Logger instance for server events and diagnostics.
    • port

      private int port
      The port number on which the HTTP server will listen.
    • transportProvider

      private jakarta.servlet.http.HttpServlet transportProvider
      The HTTP servlet that acts as the transport provider for handling requests.
  • Constructor Details

    • AbstractHttpMcpServer

      AbstractHttpMcpServer()
      Constructs a new AbstractHttpMcpServer.
  • Method Details

    • getPort

      int getPort()
      Returns the port number on which the server is configured to listen.
      Returns:
      the port number
    • setPort

      public void setPort(int port)
      Sets the port number for the server to listen on.
      Parameters:
      port - the port number to set
    • start

      protected void start() throws Exception
      Starts the MCP HTTP server with the configured port and transport provider.

      Initializes the Jetty server, configures the thread pool, sets up the server connector, and registers the provided servlet to handle all incoming requests.

      Specified by:
      start in class AbstractMcpServer
      Throws:
      Exception - if the server fails to start
    • getTransportProvider

      public jakarta.servlet.http.HttpServlet getTransportProvider()
      Returns the HTTP servlet transport provider responsible for handling requests.
      Returns:
      the transport provider servlet
    • setTransportProvider

      public void setTransportProvider(jakarta.servlet.http.HttpServlet transportProvider)
      Sets the HTTP servlet transport provider for handling requests.
      Parameters:
      transportProvider - the servlet to set as the transport provider