In the documentation for the MCP Client (https://docs.spring.io/spring-ai/reference/1.1-SNAPSHOT/api/mcp/mcp-client-boot-starter-docs.html#_configuration_properties), the description for the name
configuration property states:
Name of the MCP client instance (used for compatibility checks).
However, the client name is not actually used as part of any compatibility check.
Similarly, the comments in the configuration classes for both the MCP Client and MCP Server regarding the name
and version
properties also appear to be incorrect:
https://github.com/spring-projects/spring-ai/blob/59f2b3bfc7c482eb7ab74a825e571286f38c5d3e/auto-configurations/mcp/spring-ai-autoconfigure-mcp-client-common/src/main/java/org/springframework/ai/mcp/client/common/autoconfigure/properties/McpClientCommonProperties.java#L43-L55
https://github.com/spring-projects/spring-ai/blob/59f2b3bfc7c482eb7ab74a825e571286f38c5d3e/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpServerProperties.java#L69-L74
In reality, neither the name
nor the version
attributes on either the client or server side are used for compatibility validation. The only property related to compatibility checking is io.modelcontextprotocol.spec.McpTransport#protocolVersion
, which can be confirmed by examining the io.modelcontextprotocol.client.LifecycleInitializer#doInitialize
method in the MCP Java SDK:
https://github.com/modelcontextprotocol/java-sdk/blob/3a95f757f32c758f84332d9684dd7a81b7d630b4/mcp/src/main/java/io/modelcontextprotocol/client/LifecycleInitializer.java#L300-L329