Spring AI 2.0:MCP

一、简介

Tool负责调用公司内部接口,而MCP负责调用公司外部接口(MCP也是一种Tool)。

二、代码

  1. pom.xml
xml 复制代码
<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter-mcp-client</artifactId>
</dependency>
  1. 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"
      }
    }
  }
}
  1. 配置mcp-servers-config.json

application.properties

properties 复制代码
spring.ai.mcp.client.stdio.servers-configuration=classpath:mcp-servers-config.json
  1. 配置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();
    }
}
相关推荐
qfljg6 小时前
OpenRewrite 实战指南
java
Sylvia33.6 小时前
LOL实时数据接入深度解析:从WebSocket到完整数据模型
java·网络·python·websocket·网络协议
jyOverQ6 小时前
RabbitMQ 消息积压怎么办?Prefetch、消费者并发与扩容
分布式·后端·rabbitmq
2601_9620715711 小时前
【Java报错已解决】org.springframework.beans.factory.BeanCreationException
java·开发语言
zww894911111 小时前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·eclipse
东风破_13 小时前
从跨域到 WebSocket:前端跨域方案、SSE 与双向实时通信详解
前端·后端
zww894911114 小时前
匿名树洞系统开发实战:从需求分析到部署指南
java·eclipse
行百里er14 小时前
Gateway 上别硬塞 MVC:DeferredImportSelector 看菜下锅
spring boot·后端·开源
名字还没想好☜14 小时前
Java 遍历时删元素抛 ConcurrentModificationException:fail-fast 原理与三种正确删法
后端
IT_陈寒15 小时前
React Hooks闭包陷阱差点让我加班到凌晨
前端·人工智能·后端