Agent Platform Auto Configuration Filter
Auto-configuration filter that excludes Spring AI's default MCP client auto-configuration to allow the Agent Platform's resilient implementation to take precedence.
This filter implements Spring Boot's AutoConfigurationImportFilter interface to intercept and filter auto-configuration classes during application context initialization. It specifically excludes McpClientAutoConfiguration from Spring AI, enabling the Agent Platform to register its own QuiteMcpClientAutoConfiguration which extends the base configuration with enhanced error handling and startup resilience.
Purpose
Spring AI's defaultMcpClientAutoConfiguration can cause application startup failures when MCP client initialization encounters errors. This filter prevents that auto-configuration from loading, allowing QuiteMcpClientAutoConfiguration to provide the same functionality with graceful error handling that logs failures without blocking application startup. How It Works
- Spring Boot discovers all auto-configurations from
META-INF/spring.factoriesorMETA-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports - Before loading them, it applies registered AutoConfigurationImportFilter instances
- This filter examines each auto-configuration class name
- Returns
falseforMcpClientAutoConfiguration, preventing its registration - Returns
truefor all other auto-configurations, allowing normal processing
Registration
This filter must be registered inMETA-INF/spring.factories: org.springframework.boot.autoconfigure.AutoConfigurationImportFilter=\
com.embabel.agent.autoconfigure.platform.AgentPlatformAutoConfigurationFilter
Relationship to QuiteMcpClientAutoConfiguration
This filter works in tandem withQuiteMcpClientAutoConfiguration: - Filter: Prevents Spring AI's default configuration from loading
- QuiteMcpClientAutoConfiguration: Extends the excluded configuration with error handling
- Result: Agent Platform gets resilient MCP client setup without startup failures
Design Pattern Analogy
Think of this as a Strategic Design pattern from Domain-Driven Design:- Spring AI's McpClientAutoConfiguration = External bounded context with its own rules
- This Filter = Context boundary enforcement preventing unwanted context intrusion
- QuiteMcpClientAutoConfiguration = Anti-Corruption Layer translating external concepts into Agent Platform's resilient domain model
Just as an Anti-Corruption Layer protects your domain from external system changes, this filter protects the Agent Platform from Spring AI's initialization behavior while still leveraging its core functionality through inheritance.
Null Safety
The match implementation handlesnull entries in the auto-configuration class array, which can occur during Spring Boot's internal processing. Null entries are treated as non-matching (filtered out).Since
1.0