一、简介
Tool负责调用公司内部接口,而MCP负责调用公司外部接口(MCP也是一种Tool)。
二、代码
- pom.xml
xml
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-client</artifactId>
</dependency>
- mcp-servers-config.json
Windows版本
json
{
"mcpServers": {
"baidu-map": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@baidumap/mcp-server-baidu-map"
],
"env": {
"BAIDU_MAP_API_KEY": "你的key"
}
}
}
}
Linux/Mac 版本
json
{
"mcpServers": {
"baidu-map": {
"command": "npx",
"args": [
"-y",
"@baidumap/mcp-server-baidu-map"
],
"env": {
"BAIDU_MAP_API_KEY": "你的key"
}
}
}
}


- 配置mcp-servers-config.json
application.properties
properties
spring.ai.mcp.client.stdio.servers-configuration=classpath:mcp-servers-config.json
- 配置MCP
将ToolCallbackProvider 配置到 defaultTools。
java
@Configuration
public class SpringAiConfig {
@Autowired
private ChatMemory chatMemory;
@Autowired
private MyTools myTools;
@Autowired
private ToolCallbackProvider toolCallbackProvider;
@Bean
public ChatClient chatClient(DeepSeekChatModel deepSeekChatModel) {
return ChatClient.builder(deepSeekChatModel)
.defaultSystem("你是AI助手,回答用户的问题。")
.defaultAdvisors(MessageChatMemoryAdvisor.builder(chatMemory).build())
.defaultTools(myTools, toolCallbackProvider)
.build();
}
}
