Spring AI Alibaba 使用远端MCP服务

自留 踩了一些坑记录一下

前言

首先是Spring AI Alibaba的官网,有没了解过的可以先去了解一下。

多个社区都有mcp板块,这里提供三个
阿里云百炼MCP Server魔搭社区
这里我用的是魔搭社区,有个npx的文件拿起来会方便一点。

本次使用的是高德地图的MCP,本来是前两天看到支付宝的MCP出了想试一下的,结果发现又是需要上线又是需要营业许可证的,做demo而已没有这种东西,所以改为调高德的MCP。

首先需要系统有node环境再安装npx,没有安装的可以先去node.js官网下载安装一个node.js。安装完成后配置环境变量(我的好像自己配上了),然后在控制台使用npm install -g npx安装npx即可。

注意1:我在安装后在IDEA的控制台执行命令会报【无法加载文件XXX,因为在此系统上禁止运行脚本。】,此时先用管理员身份打开Windows PowerShell,选择管理员身份运行。
在这里插入图片描述
执行set-executionpolicy remotesigned更改策略。
在这里插入图片描述

1.准备

打开魔搭社区,进入MCP广场。
在这里插入图片描述
选择高德地图的MCP。
在这里插入图片描述
阅读首页介绍,发现需要高德的API KEY 可以先去高德开放平台申请一个。申请完成后,点击右上角的Npm。
在这里插入图片描述
这里有两个东西,首先拿到右上角的命令,打开cmd并执行以下载安装。
下面这段先留着后续有用到。
在这里插入图片描述

2.配置

打开IDEA,新建Spring Boot项目,在pom文件中引入Spring AI Alibaba的包和Spring Ai Mcp Client的包。

<dependency>
   <groupId>com.alibaba.cloud.ai</groupId>
    <artifactId>spring-ai-alibaba-starter</artifactId>
    <version>1.0.0-M6.1</version>
</dependency>

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-mcp-client-spring-boot-starter</artifactId>
    <version>1.0.0-M6</version>
</dependency>

在配置文件增加大模型相关的配置

spring:
  ai:
    dashscope:	//这里使用的是阿里云DashScope系列模型
      api-key: xxxxxxxxxxx //你对接ai大模型对应平台的key(我用的是百炼平台的key)
      chat:
        options:
          model: qwen-max	//使用的大模型

    mcp:
      client:
        enabled: true
        name: mcp-client
        version: 1.0.0
        type: SYNC
        request-timeout: 60000
        stdio:
          servers-configuration: classpath:/mcp-servers-config.json //指定MCP服务器配置文件路径

在自己的classpath下创建mcp-servers-config.json,把刚才拿到的那段npx配置拿过来。
在这里插入图片描述

{
  "mcpServers": {
    "amap-maps": {
      "command": "npx.cmd",
      "args": [
        "-y",
        "@amap/amap-maps-mcp-server"
      ],
      "env": {
        "AMAP_MAPS_API_KEY": "" //刚才在高德开放平台拿到的API KEY
      }
    }
  }
}

注意2:这里原本文件中的"command": "npx"需要改为"command": "npx.cmd",因为在java中不会自动补全拓展名,会导致java无法找到该文件,最终在启动时会报【系统找不到指定文件】。

至此,配置完成,可以实际调用试一下了。

3.使用

此次尝试的是高德中查询天气的服务。
在这里插入图片描述

先看一下没有调用mcp的适合直接请求大模型的结果。

在这里插入图片描述
在这里插入图片描述
很明显,大模型无法直接获取天气情况。

增加MCP支持

在这里插入图片描述
其实只是在原本由ChatClient构建的基础上多了一步把ToolCallbackProvider放到defaultTools中。
看看效果:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值