Skip to content
This repository was archived by the owner on Feb 14, 2025. It is now read-only.

v0.3.0

Pre-release
Pre-release

Choose a tag to compare

@tzolov tzolov released this 29 Dec 17:36
· 81 commits to main since this 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.stdioo.s.ai.mcp.client.transport
    • SseClientTransport: o.s.ai.mcp.client.sseo.s.ai.mcp.client.transport
    • ServerParameters: o.s.ai.mcp.client.stdioo.s.ai.mcp.client.transport

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-coremcp
    • spring-ai-mcp-springspring-ai-mcp
    • spring-ai-mcpmcp-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