Split the transport implementations into dedicated modules to improve modularity and reduce core dependencies. Added shared test module for common test utilities. Key changes: - Create mcp-transport/mcp-webflux-sse-transport module - Move SseClientTransport → WebFluxSseClientTransport - Move SseServerTransport → WebFluxSseServerTransport - Move related tests and utilities - Create mcp-transport/mcp-webmvc-sse-transport module - Add new WebMvcSseServerTransport implementation - Add corresponding tests and integration tests - Add framework-independent SSE client implementations to core module - Add FlowSseClient using java.net.http - Add HttpClientSseClientTransport using java.net.http - Keep StdioClientTransport/StdioServerTransport in core (no external deps) - Create mcp-test module for shared test infrastructure - Move abstract test base classes - Move shared test utilities and mocks - Update test dependencies The modular approach allows users to choose between: - Framework-specific implementations (WebFlux/WebMVC) - Pure Java implementations (java.net.http) - Basic implementations (STDIO) Add breaking changes readme: 0.5.0-BREAKING-CHANGES.md Resolves #54
4.3 KiB
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.
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.
- Find more.
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:
<!-- For core MCP functionality -->
<dependency>
<groupId>org.springframework.experimental</groupId>
<artifactId>mcp</artifactId>
<version>0.5.0-SNAPSHOT</version>
</dependency>
<!-- For Spring AI integration -->
<dependency>
<groupId>org.springframework.experimental</groupId>
<artifactId>spring-ai-mcp</artifactId>
<version>0.5.0-SNAPSHOT</version>
</dependency>
This is a milestone release, not available on Maven Central. Add this repository to your POM:
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone-local</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
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.
- Spring-ai-mcp-sample - Showcases how to create and use MCP servers and clients with different transport modes and capabilities.
Documentation
Development
- Building from Source
mvn clean install
- Running Tests
mvn 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.