java-sdk/mcp-docs/0.5.0-BREAKING-CHANGES.md
2025-01-13 11:34:16 +01:00

2.8 KiB

Breaking Changes for Spring AI MCP 0.5.0-SNAPSHOT

Major Changes

  1. Transport Implementation Modularization

    • SSE transport implementations have been moved to dedicated modules:
      • mcp-webflux-sse-transport: WebFlux-based SSE transport
      • mcp-webmvc-sse-transport: WebMVC-based SSE transport
    • Base MCP module no longer includes transport implementations
  2. Class Renames

    • SseClientTransport → WebFluxSseClientTransport
    • SseServerTransport → WebFluxSseServerTransport
  3. Project Structure

Migration Guide

1. Update Dependencies

If using SSE transport, add the appropriate transport module to your pom.xml:

For WebFlux SSE transport:

<dependency>
    <groupId>org.springframework.experimental</groupId>
    <artifactId>mcp-webflux-sse-transport</artifactId>
    <version>0.5.0-SNAPSHOT</version>
</dependency>

For WebMVC SSE transport:

<dependency>
    <groupId>org.springframework.experimental</groupId>
    <artifactId>mcp-webmvc-sse-transport</artifactId>
    <version>0.5.0-SNAPSHOT</version>
</dependency>

2. Update Transport Class References

Replace:

import org.springframework.ai.mcp.client.transport.SseClientTransport;
import org.springframework.ai.mcp.server.transport.SseServerTransport;

With:

// For WebFlux
import org.springframework.ai.mcp.client.transport.WebFluxSseClientTransport;
import org.springframework.ai.mcp.server.transport.WebFluxSseServerTransport;

// Or for WebMVC
import org.springframework.ai.mcp.server.transport.WebMvcSseServerTransport;

3. Update Transport Instantiation

Replace:

var transport = new SseClientTransport(webClientBuilder);

With:

var transport = new WebFluxSseClientTransport(webClientBuilder);

Replace:

var serverTransport = new SseServerTransport(objectMapper, messageEndpoint);

With:

// For WebFlux
var serverTransport = new WebFluxSseServerTransport(objectMapper, messageEndpoint);

// Or for WebMVC
var serverTransport = new WebMvcSseServerTransport(objectMapper, messageEndpoint);

4. Test Dependencies

If you're using MCP test utilities, add the test module dependency:

<dependency>
    <groupId>org.springframework.experimental</groupId>
    <artifactId>mcp-test</artifactId>
    <version>0.5.0-SNAPSHOT</version>
    <scope>test</scope>
</dependency>

Other Changes

  • Spring AI dependency updated to 1.0.0-M5
  • Improved dependency management and reduced transitive dependencies
  • Sample application restructured under samples/ directory
  • New test utilities and base test classes in mcp-test module