Spring AI Alibaba - MCP连接 MySQL

先看效果

直接问他数据库有什么表。

大模型调用MySQL进行查询

搭建项目

添加依赖

创建项目后新添加Maven 依赖:

xml 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

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

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

添加配置

yml 复制代码
spring:
  ai:
    dashscope:
      api-key: sk-*  # API Key
    mcp:
      client:
        stdio:
          servers-configuration: classpath:mcp-servers.json #mcp 配置的JSON

创建 mcp-servers.json

可以在: https://bailian.console.aliyun.com/?tab=mcp#/mcp-market 中找合适的MCP 使用,例如直接搜索 MySQL就能找到 MySQL 相关的 MCP:

点击进入,按照步骤进行本地安装,需要说明的是首先要安装 node 和 npx。

安装成功后直接复制:

json 复制代码
{
  "mcpServers": {
    "mysql": {
      "command": "D:\\develop\\nodejs\\npx.cmd",
      "args": ["mysql-mcp-server"],
      "env": {
        "MYSQL_HOST": "192.168.74.100",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "dev",
        "MYSQL_PASSWORD": "Aa@123456",
        "MYSQL_DATABASE": "history"
      }
    }
  }
}

这里和官方的有点不一样。JAVA代码一直报错找不到 npx 命令,所以直接改成了 npx 的绝对路径,然后删掉了 disabled 和 autoApprove。

开发接口

配置好的 MCP 实际上对应的是 ToolCallbackProvider 类。

java 复制代码
package cn.salim.ai.controller;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.tool.ToolCallbackProvider;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;

@RestController
@RequestMapping("ai")
public class AiController {

    private ChatClient chatClient;

    public AiController(ChatClient.Builder builder, ToolCallbackProvider toolCallbackProvider) {
    	// 大模型使用 MCP
        chatClient = builder.defaultTools(toolCallbackProvider).build();
    }

    @GetMapping
    public Flux<String> ai(String param) {
        return chatClient.prompt(param).stream().content();
    }

}

启动项目可以看到:

意味着 MCP 已经被识别到了。

测试一下

最终大模型生成的SQL是:

相关推荐
2501_941982054 分钟前
结合 AI 视觉:使用 OCR 识别企业微信聊天记录中的图片信息
人工智能·ocr·企业微信
事变天下19 分钟前
肾尚科技完成新一轮融资,加速慢性肾脏病(CKD)精准化管理闭环渗透
大数据·人工智能
GEO AI搜索优化助手21 分钟前
范式革命——从“关键词”到“意图理解”,搜索本质的演进与重构
人工智能·搜索引擎·生成式引擎优化·ai优化·geo搜索优化
大刘讲IT22 分钟前
2025年企业级 AI Agent 标准化落地深度年度总结:从“对话”到“端到端价值闭环”的范式重构
大数据·人工智能·程序人生·ai·重构·制造
2301_8234380230 分钟前
【无标题】解析《采用非对称自玩实现强健多机器人群集的深度强化学习方法》
数据库·人工智能·算法
沛沛老爹31 分钟前
Web开发者快速上手AI Agent:提示词应用优化实战
人工智能·ai·agent·提示词·rag·入门知识
中国胖子风清扬34 分钟前
SpringAI和 Langchain4j等 AI 框架之间的差异和开发经验
java·数据库·人工智能·spring boot·spring cloud·ai·langchain
Dev7z37 分钟前
基于Stanley算法的自动驾驶车辆路径跟踪控制研究
人工智能·机器学习·自动驾驶
Java后端的Ai之路44 分钟前
【分析式AI】-过拟合(含生活案例说明)
人工智能·aigc·生活·过拟合·分析式ai
企业智能研究44 分钟前
数据分析Agent白皮书:揭秘Data x AI的底层逻辑与未来关键
大数据·人工智能·数据分析