Skip to content

Commit 4226795

Browse files
committed
fix: Optimize SSE Transport Configuration
1. **Duplicate SSE Connections Problem** - When both WebFlux and HTTP Client are available, `McpClientAutoConfiguration` loads both implementations - `SseWebFluxTransportAutoConfiguration` and `SseHttpClientTransportAutoConfiguration` create duplicate connections - Results in unnecessary resource consumption and potential performance issues 2. **Duplicate MCP Tools Creation** - Multiple identical MCP tools are created due to duplicate transport implementations - Affects system efficiency and resource utilization - May cause confusion in tool management and callbacks 1. **Transport Mode Configuration** ```java public enum SseTransportMode { WEBFLUX, // Default implementation HTTP_CLIENT } ``` 2. **Configuration Property** ```properties spring.ai.mcp.client.sse.transport-mode=WEBFLUX # Default # or spring.ai.mcp.client.sse.transport-mode=HTTP_CLIENT ``` 3. **Implementation Details** - Add transport mode selection in `McpSseClientProperties` - Use conditional loading to ensure single implementation - Optimize tool creation process - Maintain backward compatibility 1. Resource Efficiency - Single SSE connection per endpoint - Optimized tool initialization - Reduced memory footprint 2. Better Configuration Control - Explicit transport mode selection - Clear configuration options - IDE support with metadata 3. Improved Stability - Prevents duplicate connections - Streamlined tool management - Better error handling 1. Verify single transport initialization 2. Test tool creation and management 3. Validate configuration switching 4. Check backward compatibility - `McpClientAutoConfiguration.java` - `McpSseClientProperties.java` - `SseWebFluxTransportAutoConfiguration.java` - `SseHttpClientTransportAutoConfiguration.java` Labels: enhancement, optimization, configuration
1 parent 690d242 commit 4226795

File tree

5 files changed

+430
-352
lines changed

5 files changed

+430
-352
lines changed

0 commit comments

Comments
 (0)