Mirror of https://github.com/modelcontextprotocol/java-sdk — The official Java SDK for Model Context Protocol servers and clients. Maintained in collaboration with Spring AI
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Christian Tzolov 8cd3cfdf3f Improve docs
2025-01-29 14:32:43 +01:00
.github Re-enable the CI tests 2025-01-28 19:45:56 +01:00
.mvn/wrapper initial 2024-12-06 16:41:17 +01:00
docs Improve docs 2025-01-29 14:32:43 +01:00
mcp Module and Package restructoring 2025-01-29 13:40:53 +01:00
mcp-bom Improve docs 2025-01-29 14:32:43 +01:00
mcp-spring Module and Package restructoring 2025-01-29 13:40:53 +01:00
mcp-test Module and Package restructoring 2025-01-29 13:40:53 +01:00
.gitattributes initial 2024-12-06 16:41:17 +01:00
.gitignore Rename modules, update .gitignore 2024-12-10 18:46:49 -05:00
LICENSE Update license text and GH actions 2025-01-28 14:36:31 +01:00
mvnw initial 2024-12-06 16:41:17 +01:00
mvnw.cmd initial 2024-12-06 16:41:17 +01:00
pom.xml Improve docs 2025-01-29 14:32:43 +01:00
README.md Improve docs 2025-01-29 14:32:43 +01:00

MCP Java SDK

Build Status

Set of projects that provide Java SDK integration for the Model Context Protocol. It enables Java applications to interact with AI models and tools through a standardized interface, supporting both synchronous and asynchronous communication patterns.

📚 Reference Documentation

For comprehensive guides and API documentation, visit the MCP Java SDK Reference Documentation.

Projects

MCP

Java implementation of the Model Context Protocol specification. It includes:

  • Synchronous and asynchronous MCP Client and MCP Server implementations
  • Standard MCP operations support (tool discovery, resource management, prompt handling, structured logging). Support for request and notification handling.
  • Stdio and SSE transport implementations.

MCP Spring

Core Transports

  • Stdio-based (StdioClientTransport, StdioServerTransport) for process-based communication
  • Java HttpClient-based SSE client (HttpClientSseClientTransport) for HTTP streaming
  • Servlet-based SSE server (HttpServletSseServerTransport) for HTTP SSE Server streaming using traditional Servlet API

Optional SSE Transports

  • WebFlux SSE Transport - Reactive HTTP streaming with Spring WebFlux (Client & Server)
  • WebMvc SSE Transport - Spring MVC based HTTP SSE transport (Server only). You can use the core HttpClientSseClientTransport transport as a SSE client.

Installation

Add the following dependencies to your Maven project:

<!-- Core MCP -->
<dependency>
    <groupId>io.modelcontextprotocol.sdk</groupId>
    <artifactId>mcp</artifactId>
</dependency>

<!-- Optional: WebFlux SSE transport -->
<dependency>
    <groupId>io.modelcontextprotocol.sdk</groupId>
    <artifactId>mcp-spring-webflux</artifactId>
</dependency>

<!-- Optional: WebMVC SSE transport -->
<dependency>
    <groupId>io.modelcontextprotocol.sdk</groupId>
    <artifactId>mcp-spring-webmvc</artifactId>
</dependency>

Example Demos

Explore these MCP examples in the spring-ai-examples/model-context-protocol repository:

Documentation

Development

  • Building from Source
mvn clean install
  • Running Tests
mvn test

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Submit a Pull Request

Team

  • Christian Tzolov
  • Dariusz Jędrzejczyk

License

This project is licensed under the MIT.