Spring AI MCP 0.6.0 (Milestone) Released

Releases | Christian Tzolov | January 23, 2025 | ...

We're pleased to announce Spring AI MCP 0.6.0 milestone release.

Breaking Changes ⚠️

  • McpClient.using() - Use McpClient.sync() or McpClient.async() instead
  • McpServer.using() - Use McpServer.sync() or McpServer.async() instead
  • McpServer.ToolRegistration - Use McpServerFeatures.SyncToolRegistration or McpServerFeatures.AsyncToolRegistration instead
  • McpServer.ResourceRegistration - Use McpServerFeatures.SyncResourceRegistration or McpServerFeatures.AsyncResourceRegistration instead
  • McpServer.PromptRegistration - Use McpServerFeatures.SyncPromptRegistration or McpServerFeatures.AsyncPromptRegistration instead
  • ToolHelper.toToolRegistration() - Use ToolHelper.toSyncToolRegistration() instead

Follow the 0.6.0 Migration Guide for the new API changes.

Major Features & Improvements

Protocol Version Negotiation

  • Implemented protocol version negotiation between MCP client and server
  • Added support for multiple protocol versions in both client and server
  • Implemented fallback mechanism to latest version when unsupported version requested
  • Added comprehensive test coverage for version negotiation

Configurable SSE Endpoints

  • Made SSE endpoint path configurable in server transports
  • Added customization support for WebFluxSseServerTransport, WebMvcSseServerTransport, and HttpServletSseServerTransport
  • Maintained backward compatibility with default "/sse" endpoint
  • Aligned Java SDK behavior with Python SDK's SseServerTransport

Bug Fixes 🐛

Transport Layer Improvements

  • Added cleanup logic for inbound processing in transport layer
  • Enhanced transport reliability and resource management

Improvements & Refactoring 🔧

API Refactoring

  • Separated asynchronous and synchronous client interactions
  • Introduced new client creation patterns:
    // Synchronous client API
    McpClient.sync(transport).build();
    
    // Asynchronous client API
    McpClient.async(transport).build();
    
  • Made RequestHandler type-aware of responses
  • Deprecated legacy client builder patterns

Code Quality & Structure

  • Aligned abstract tests in mcp-test with mcp-core
  • Improved method scope definitions
  • Enhanced code organization and maintainability

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all