1、程序中使用 MCP
1.1、安装依赖
<!-- https://mvnrepository.com/artifact/org.springframework.ai/spring-ai-mcp-client-spring-boot-starter -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-mcp-client-spring-boot-starter</artifactId>
<version>1.0.0-M6</version>
</dependency>
1.2、编写配置
其次申请一个key。

之后在 resources 目录下新建 mcp-servers.json 配置,定义需要用到的 MCP 服务:
{
"mcpServers": {
"amap-maps": {
"command": "npx",
"args": [
"-y",
"@amap/amap-maps-mcp-server"
],
"env": {
"AMAP_MAPS_API_KEY": "自己的API Key"
}
}
}
}
特别注意:在 Windows 环境下,命令配置需要添加 .cmd 后缀(如 npx.cmd),否则会报找不到命令的错误。
因为调用MCP 服务的本质是在启动项目的过程中,单独开一个子进程,运行 npx @amap/amap-maps-mcp-server 命令,来启动 MCP 服务。当关闭程序时,子进程也关闭,所以我们需要提供 window 上能运行的命令。
1.3、编写 MCP 客户端配置
修改 Spring 配置文件,编写 MCP 客户端配置。由于是本地运行 MCP 服务,所以使用 stdio 模式,并且要指定 MCP 服务配置文件的位置。
spring:
ai:
mcp:
client:
stdio:
servers-configuration: classpath:mcp-servers.json
1.4、修改 LoveApp 的代码,
新增一个利用 MCP 完成对话的方法。通过自动注入的 ToolCallbackProvider 获取到配置中定义的 MCP 服务提供的 所有工具,并提供给 ChatClient。代码如下:
@Resource
private ToolCallbackProvider toolCallbackProvider;
public String doChatWithMcp(String message, String chatId) {
ChatResponse response = chatClient
.prompt()
.user(message)
.advisors(spec -> spec.param(CHAT_MEMORY_CONVERSATION_ID_KEY, chatId)
.param(CHAT_MEMORY_RETRIEVE_SIZE_KEY,

最低0.47元/天 解锁文章
2479

被折叠的 条评论
为什么被折叠?



