Skip to content

v2.0.0-M1

Pre-release
Pre-release

Choose a tag to compare

@chemicL chemicL released this 13 May 14:49
· 25 commits to main since this release

MCP Java SDK 2.0.0-M1

The 2.0.0-M1 release introduces foundational changes for the 2.x line, focusing on flexibility, spec compliance, and robust validation. The primary themes driving this major release include:

1. Breaking API Changes in McpSchema for Forward/Backward Compatibility

The 1.x line was constrained by sealed interfaces, which made it impossible to add permitted subtypes without breaking exhaustive pattern-match switch expressions in caller code. In v2.0.0, these constraints are lifted:

  • Removal of Sealed Interfaces: Sealed interfaces have been removed from JSONRPCMessage, Request, Result, Notification, ResourceContents, CompleteReference, and Content. This allows domain types to absorb new fields and subtypes without breaking existing clients or servers.
  • Lenient Deserialization: All domain records now tolerate unknown JSON fields, ensuring that a client built against an older SDK version won't fail when a newer server sends unrecognized fields.
  • Dialect Support: JsonSchema was removed and replaced with a Map for inputSchema to properly support various JSON Schema dialects.

2. Incorporating Breaking Changes for the 2025-11-25 MCP Specification

The release aligns with the 2025-11-25 MCP specification updates:

  • Tool Input Validation: Tool input arguments validation is now activated by default. Invalid inputs will now cause a tool execution error, enforcing stricter compliance with the spec.
  • Spec-Required Fields: Adjustments to how nulls and absent fields are handled on the wire (e.g., CompleteCompletion.total and .hasMore are now absent from the wire when not set, rather than being emitted as null).

3. API Cleanup and Modernization

As a major version bump, v2.0.0 takes the opportunity to clean up the API surface:

  • Removal of Deprecated Methods: Deprecated methods from the Server transports builder have been removed entirely.
  • Transport Improvements: Added proper handling for HTTP 405 in HttpClientStreamableHttpTransport and fixed UTF-8 encoding for non-ASCII tool names.
  • Pagination Support: Added support for the meta parameter in client paginated list queries.

Detailed Commit Log (v1.1.0 to v2.0.0-M1)


New contributors

A big thank you to the following contributors who made their first commit in this release:

Full Changelog: v1.1.0...v2.0.0-M1