Class MockMcpTransport

java.lang.Object
com.tnsai.mcp.testing.MockMcpTransport
All Implemented Interfaces:
McpTransport

public class MockMcpTransport extends Object implements McpTransport
In-memory transport that connects McpClient directly to MockMcpServer.

Messages are routed synchronously without any network I/O, making it ideal for unit testing MCP client behavior.

Usage

 MockMcpServer server = new MockMcpServer();
 server.whenToolReturns("echo", resultNode);

 MockMcpTransport transport = new MockMcpTransport(server);
 McpClient client = new McpClient(transport);
 client.connect();
 client.initialize();

 JsonNode result = client.executeTool("echo", Map.of());
 
See Also:
  • Constructor Details

    • MockMcpTransport

      public MockMcpTransport(MockMcpServer server)
      Creates a MockMcpTransport backed by the given server.
      Parameters:
      server - the mock MCP server to route messages to
  • Method Details

    • connect

      public void connect() throws IOException
      Description copied from interface: McpTransport
      Connects to the MCP server.
      Specified by:
      connect in interface McpTransport
      Throws:
      IOException - if connection fails
    • send

      public void send(String message) throws IOException
      Description copied from interface: McpTransport
      Sends a message to the MCP server.
      Specified by:
      send in interface McpTransport
      Parameters:
      message - the message to send (JSON-RPC request)
      Throws:
      IOException - if sending fails
    • setOnMessage

      public void setOnMessage(Consumer<String> messageConsumer)
      Description copied from interface: McpTransport
      Sets a consumer for incoming messages from the MCP server.
      Specified by:
      setOnMessage in interface McpTransport
      Parameters:
      messageConsumer - the consumer for incoming messages (JSON-RPC response/notification)
    • setOnError

      public void setOnError(Consumer<Throwable> errorConsumer)
      Description copied from interface: McpTransport
      Sets a consumer for transport errors.
      Specified by:
      setOnError in interface McpTransport
      Parameters:
      errorConsumer - the consumer for transport errors
    • disconnect

      public void disconnect() throws IOException
      Description copied from interface: McpTransport
      Disconnects from the MCP server.
      Specified by:
      disconnect in interface McpTransport
      Throws:
      IOException - if disconnection fails
    • isConnected

      public boolean isConnected()
      Description copied from interface: McpTransport
      Checks if the transport is currently connected.
      Specified by:
      isConnected in interface McpTransport
      Returns:
      true if connected, false otherwise
    • getServer

      public MockMcpServer getServer()
      Returns the underlying MockMcpServer.
      Returns:
      the mock server