The current MCP Java SDK has a transport API, allowing servers and clients to replace one of the default transports (stdio, SSE, etc) with their own, alternative transports.
The API in this repo provides a generatlization of the Java SDK's transport API. This API uses Java Generics to allow the use of alternative reactive libraries (e.g. Mutiny) for asynchronous communication at the transport layer.
This repo also has a implementation based upon Unix Domain Sockets (UDS). This provides a local-only transport for secure communication between client and server and is implemented for the MCP Java SDK version 0.18.1 and above.
org.openmcptools.transport - The OpenMCPTools transport API
This UDS implementation supports long-running servers, allowing clients to disconnect and reconnect without restarting the server (as MCP stdio currently requires). This ability for long-running makes it easier to run, test and debug long-running MCP servers.
org.openmcptool.transport.uds - Unix Domain Socket (UDS) Support Classes
org.openmcptools.transport.uds.spring - Unix Domain Socket Implementation for Java SDK
MCPToolGroups - A dynamic MCP server and client that use the UDS implementation and API described above.