Spring AI Spring Boot Auto Configuration modules providing automatic setup for AI models, vector stores, MCP, and retry capabilities
Step-by-step guide for integrating Model Context Protocol with Spring AI.
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-mcp-client-spring-boot-starter</artifactId>
<version>1.1.2</version>
</dependency>spring.ai.mcp.client.enabled=true
spring.ai.mcp.client.type=SYNC
spring.ai.mcp.client.stdio.connections.filesystem.command=node
spring.ai.mcp.client.stdio.connections.filesystem.args[0]=./mcp-servers/filesystem.js@Service
public class McpEnabledChatService {
private final ChatClient chatClient;
public McpEnabledChatService(
ChatClient.Builder builder,
SyncMcpToolCallbackProvider mcpTools) {
this.chatClient = builder
.defaultFunctions(mcpTools.getToolCallbacks())
.build();
}
public String chat(String message) {
// AI automatically calls MCP tools as needed
return chatClient.prompt()
.user(message)
.call()
.content();
}
}<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-mcp-server-spring-boot-starter</artifactId>
<version>1.1.2</version>
</dependency>spring.ai.mcp.server.enabled=true
spring.ai.mcp.server.type=SYNC
spring.ai.mcp.server.transport=STDIO@Component
public class MyMcpTools {
@McpTool(
name = "calculate",
description = "Perform mathematical calculations"
)
public double calculate(String expression) {
// Implementation
return eval(expression);
}
}spring:
ai:
mcp:
client:
stdio:
connections:
local-tools:
command: node
args: [./local-server.js]
sse:
connections:
remote-tools:
url: https://mcp.example.com
sse-endpoint: /sse@Bean
public McpToolNamePrefixGenerator customPrefixGenerator() {
return transportName -> transportName.toUpperCase() + "__";
}