@spring-projects-experimental/spring-ai-mcp: Java & Spring MCP
Java & Spring MCP provides a Java SDK and Spring Framework integration for the Model Context Protocol, enabling Java applications to interact with AI models and tools via synchronous and asynchronous communication patterns.
Author
spring-projects-experimental
README
NOTE: This project has been graduated and moved to the MCP Java SDK and Spring AI MCP. See you there! This repository is now archived.
Java & Spring MCP
Set of projects that provide Java SDK and Spring Framework 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 Spring AI MCP Reference Documentation.


Projects
MCP Java SDK
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 Transports
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.
Spring AI MCP
The Spring integration module provides Spring-specific functionality:
- Integration with Spring AI's function calling system
- Spring-friendly abstractions for MCP clients
- Auto-configurations (WIP)
Installation
Add the following dependencies to your Maven project:
xml<!-- Core MCP --> <dependency> <groupId>org.springframework.experimental</groupId> <artifactId>mcp</artifactId> </dependency> <!-- Optional: WebFlux SSE transport --> <dependency> <groupId>org.springframework.experimental</groupId> <artifactId>mcp-webflux-sse-transport</artifactId> </dependency> <!-- Optional: WebMVC SSE transport --> <dependency> <groupId>org.springframework.experimental</groupId> <artifactId>mcp-webmvc-sse-transport</artifactId> </dependency> <!-- Optional: Spring AI integration --> <dependency> <groupId>org.springframework.experimental</groupId> <artifactId>spring-ai-mcp</artifactId> </dependency>
This is a milestone release, not available on Maven Central. Add this repository to your POM:
xml<repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
Reffer to the Dependency Management page for more information.
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
bashmvn clean install
- Running Tests
bashmvn test
Contributing
This is an experimental Spring project. 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 Apache License 2.0.