🐛 Bug Fixes
HTTP Transport Improvements
-
Fixed SSE endpoint Content-Type header issue (#489)
- Removed incorrect Content-Type header from GET requests to SSE endpoints
- Resolves compatibility issues with MCP servers that validate HTTP headers strictly
- Content-Type header is now only included for POST requests as per HTTP specifications
-
Added configurable connection timeout (#511)
- Fixed intermittent connection timeout issues in HttpClientStreamableHttpTransport and HttpClientSseClientTransport
- Replaced hard-coded 10-second timeout with configurable parameter
- Allows users to set appropriate timeouts based on network conditions and latency requirements
Reactive Streams Compliance
- Fixed SseLineSubscriber request handling (#507)
- Resolved missing request implementation in SseLineSubscriber
- Improves reactive streams compliance and stability
Demand-Based Processing
- Implemented demand-based request handling in ResponseSubscribers (#516)
- Added hasRequestedDemand tracking to prevent unnecessary data processing
- Improved backpressure handling and resource efficiency
- Guards event emission with demand checks to avoid processing when no downstream demand exists
- Maintains same public API while improving internal resource management
Server Configuration Optimization
- Disabled logging capabilities for stateless servers (#517)
- Removed LoggingCapabilities from stateless server features to align with actual functionality
- Stateless servers don't support setLogging operations, so capabilities are now correctly advertised
- Prevents client confusion and aligns async implementation with sync implementation
🔧 API Enhancements
Object Identity & Equality
- Implemented proper equals/hashCode for PromptReference (#514)
- Added identifier-based equality comparison (ignores descriptive fields like title)
- Enables proper use in collections (HashMap, HashSet, etc.)
- Maintains standard Java object contracts with comprehensive test coverage
- Two PromptReference objects with same identifier and type are now considered equal
📊 Summary
This release focuses on improving HTTP transport reliability, reactive streams compliance, and resource efficiency. Key highlights include:
- Better HTTP compatibility with proper header handling for SSE endpoints
- Configurable timeouts to handle varying network conditions
- Improved reactive streams handling with proper backpressure and demand management
- Enhanced object equality semantics for better collection usage
- Optimized server configurations that accurately reflect capabilities
All changes are backward compatible and maintain existing public APIs while improving internal behavior and compliance with specifications.
Contributors
Thanks to the following contributors for their work on this release:
- Christian Tzolov (@tzolov) - 3 contributions
- Zizo (@Zizo-Vi) - 1 contribution
- He-Pin(kerr) (@He-Pin) - 1 contribution
- shaoyin.zj (@zhangjingcn) - 1 contribution
Full Changelog: v0.11.2...v0.11.3