java-sdk
This is the official Java SDK for the Model Context Protocol, letting Java applications act as MCP clients or servers through a standard interface. It supports both synchronous and asynchronous styles and is published to Maven Central as `io.modelcontextprotocol.sdk:mcp`; the README badge points to JDK 17. The README links to documentation for features, architecture, dependencies and BOM, and separate client and server guides, and notes that Spring AI MCP extends the SDK with Spring Boot client and server starters.
Most of the README explains design decisions. JSON uses Jackson behind an SDK abstraction in `mcp-core`, so other libraries can be plugged in. The public programming model is Reactive Streams, implemented internally with Project Reactor, with a synchronous facade on top for simple blocking use. Logging uses SLF4J, with Reactor Context for observability propagation, and the SDK supports both client transports and server transports with authorization. The README also covers building from source, running unit and conformance tests, and lists future directions.