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
- Java 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github | ||
| .mvn/wrapper | ||
| docs | ||
| mcp | ||
| mcp-bom | ||
| mcp-spring | ||
| mcp-test | ||
| .gitattributes | ||
| .gitignore | ||
| LICENSE | ||
| mvnw | ||
| mvnw.cmd | ||
| pom.xml | ||
| README.md | ||
MCP Java SDK
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
HttpClientSseClientTransporttransport 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:
- SQLite Simple - Demonstrates LLM integration with a database
- SQLite Chatbot - Interactive chatbot with SQLite database interaction
- Filesystem - Enables LLM interaction with local filesystem folders and files
- Brave - Enables natural language interactions with Brave Search, allowing you to perform internet searches.
- Theme Park API Example - Shows how to create an MCP server and client with Spring AI, exposing Theme Park API tools
- Http SSE Client + WebMvc SSE Server - Showcases how to create and use MCP WebMvc servers and HttpClient clients with different capabilities.
- WebFlux SSE Client + WebFlux SSE Server - Showcases how to create and use MCP WebFlux servers and clients with different capabilities
- HttpClient SSE Client + Servlet SSE Server - Showcases how to create and use MCP Servlet SSE Server and HttpClient SSE Client with different capabilities
Documentation
Development
- Building from Source
mvn clean install
- Running Tests
mvn test
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a Pull Request
Team
- Christian Tzolov
- Dariusz Jędrzejczyk
Links
License
This project is licensed under the MIT.