This repository was archived by the owner on Feb 14, 2025. It is now read-only.
v0.3.0
Pre-release
Pre-release
Release Notes
This is a milestone release. It is 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>Major Features
MCP Server Enhancements
- Introduced new McpServer factory with builder pattern for flexible configuration
- Added McpAsyncServer with non-blocking operations and reactive support
- Implemented McpSyncServer as synchronous wrapper around async implementation
- Added runtime tool management capabilities
- Introduced server capabilities and implementation information support
Transport Layer Improvements
- Implemented SseServerTransport with SSE endpoints and message routing
- Added StdioServerTransport for process-based communication
- Enhanced transport error handling and graceful shutdown mechanisms
- Reorganized client transports into dedicated transport package
Documentation
- Added comprehensive MCP reference documentation
- Included detailed client/server architecture documentation
- Provided transport implementation and protocol guides
- Added session management and message handling documentation
- Included error handling and recovery strategy guides
- Added architectural diagrams for component relationships
- Provided API documentation with usage examples
Testing Improvements
- Added extensive test coverage for server components
- Implemented transport-specific test suites
- Added integration tests for client-server interactions
Breaking Changes
Package Reorganization
- Relocated transport-related classes to dedicated package:
- StdioClientTransport:
o.s.ai.mcp.client.stdio→o.s.ai.mcp.client.transport - SseClientTransport:
o.s.ai.mcp.client.sse→o.s.ai.mcp.client.transport - ServerParameters:
o.s.ai.mcp.client.stdio→o.s.ai.mcp.client.transport
- StdioClientTransport:
API Changes
- Modified StdioClientTransport.errorHandler to private with setter method
- Updated ServerCapabilities to use builder pattern:
// Old new ServerCapabilities(experimental, logging, prompts, resources, tools) // New ServerCapabilities.builder() .experimental(experimental) .logging(logging) .prompts(listChanged) .resources(subscribe, listChanged) .tools(listChanged) .build()
Module Restructuring
- Renamed artifacts for clarity:
spring-ai-mcp-core→mcpspring-ai-mcp-spring→spring-ai-mcpspring-ai-mcp→mcp-parent
Other Improvements
- Optimized scheduler usage by removing unnecessary
Schedulers.boundedElastic()
PRs
- Improve examples in README.md by @chemicL in #2
- feat(client): add convenience methods for listing operations without cursor by @tzolov in #3
- feat: add SSE transport and improve project infrastructure by @tzolov in #5
- feat(core): add roots list support and improve documentation by @tzolov in #26
- feat(mcp-client): Add non-blocking tools change notification support by @tzolov in #28
- feat: Add resources and prompts change notification support by @tzolov in #29
- refactor: rename artifacts and restructure modules by @tzolov in #32
- feat: implement MCP server with Server stdio/sse transport by @tzolov in #34
Contributors
Full Changelog: v0.1.0...v0.3.0