Spring AI MCP 客户端实战:轻松连接高德地图等工具

Spring AI - MCP 启动器客户端

本项目演示了如何在 Spring Boot 应用程序中使用 Spring AI MCP (模型上下文协议) 客户端启动器。它展示了如何连接到 MCP 服务器并将它们与 Spring AI 的工具执行框架集成。

请参考 MCP 客户端启动器 的参考文档。

概述

本项目使用 Spring Boot 和 Spring AI 创建一个命令行应用程序,演示了 MCP 服务器集成。该应用程序:

  • 使用 STDIO 和/或 SSE (基于 HttpClient) 传输连接到 MCP 服务器
  • 与 Spring AI 的聊天功能集成
  • 演示通过 MCP 服务器进行工具执行
  • 通过 -Dai.user.input 命令行属性接收用户定义的问题,该属性在代码中映射到一个 Spring @Value 注解

例如,使用 -Dai.user.input="Spring AI 是否支持 MCP?" 运行应用程序会将此问题通过 Spring 的属性注入注入到应用程序中,并且应用程序将使用它来查询 MCP 服务器。

前提条件

  • Java 17 或更高版本
  • Maven 3.6+
  • openai GPT_API_freeAPI 密钥(获取地址:https://github.com/chatanywhere/GPT_API_free)
  • 高德地图 API 密钥 (获取地址:https://lbs.amap.com/api/mcp-server/create-project-and-key)

依赖

本项目使用以下主要依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.ai</gro
SpringAIMCP的结合通过Spring AI Alibaba框架与MCP协议结合得以实现,以下是相关信息: ### 核心架构 Spring AI Alibaba的MCP组件包含服务端和客户端两部分。服务端使用`spring-ai-mcp-server-spring-boot-starter`,支持stdio/SSE双模式;客户端使用`spring-ai-mcp-client-spring-boot-starter`,可自动注入McpClient。该架构还具备生态集成能力,兼容阿里云DashScope模型、高德/百度地图等第三方MCP服务 [^1]。 ### 通信模式及应用场景 - **Stdio模式**:此模式为本地进程间通信,无需网络依赖,适用于轻量级工具,如天气查询等场景 [^1]。 - **SSE模式**:属于远程HTTP调用,支持高并发,适用于云服务,例如数据库操作等场景 [^1]。 ### 代码示例(假设简单的客户端调用) ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import com.example.mcp.client.McpClient; @SpringBootApplication public class SpringAIMcpApp implements CommandLineRunner { @Autowired private McpClient mcpClient; public static void main(String[] args) { SpringApplication.run(SpringAIMcpApp.class, args); } @Override public void run(String... args) throws Exception { // 调用MCP服务 String response = mcpClient.sendRequest("your_request_data"); System.out.println("MCP response: " + response); } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值