阿里云百炼智能体连接云数据库实践(DMS MCP)

这篇文章主要是通过使用阿里云的百炼智能体与阿里云的serverless来实现数据库的操作

欢迎一起交流!!

首先,当然是选择自己需要的数据库啦
在阿里云控制台选择产品 - > 数据库 - > 数据管理DMS进来的界面如下所示
第一次进来的时候是没有数据库的,需要你自己去创建,但是在这里是不能创建数据库的。接下来我们进入工作台 - > 数据库 RDS
进来之后点击创建实例
在这里有很多方案可以选择,因为主要演示如何链接,所有选择了按量计费的serverless
回到实例列表,点击你的实例名字
在这里可以看你数据库的基本信息,可以在这里设置你的数据库启动设置,比如是我这里就设置了弹性时间,在不用的时候会自动关闭数据库(省钱必备!!)再点击数据库管理


在数据库管理中点击创建数据库后会进入如下页面
注意关于这个数据库账号,建议创建一个新的账号,并且授予权限

####### 在DMS中心在实例列表中点击+号创建数据库

如何录入数据库可以看下面这篇文章

-----------------------------------------------------------------------------------------------------------分割线

恭喜你!

到这里就已经完成的数据库的准备工作

接下来打开百炼平台
应用管理 - > 创建应用,当然你可以直接选择在应用广场里面找到DMS Chat数据助手这个智能体,因为本片文章主要是如何连接数据库,所有我们直接复制DMS Chat数据助手智能体
复制之后如下图所示
在不进行配置的前提下,直接提问智能体,它会让你给出数据库的详细信息,如下所示(浪费你的tokens!!!)
在这里你就会发现好像配置不了你的信息,无论是在系统prompt中还是在用户prompt中加入数据库信息,都无法回答问题

所以接下来,我们就需要对MCP服务进行配置了!

重新写一个MCP?(那是不可能的!)

我们在页面中找到MCP
在MCP中找到DMS-数据库安全访问
一直往下翻找到官方给的MCP配置
MCP服务配置输入如下内容
复制代码
{
  "mcpServers": {
    "dms-mcp-server": {
      "command": "uvx",
      "args": [
        "alibabacloud-dms-mcp-server@latest"
      ],
      "env": {
        "ALIBABA_CLOUD_ACCESS_KEY_ID": "access_id",
        "ALIBABA_CLOUD_ACCESS_KEY_SECRET": "access_key",
        "ALIBABA_CLOUD_SECURITY_TOKEN": "optional sts_security_token , required when using STS Token"
      }
    }
  }
} 

或者是

{​ 复制代码
  "mcpServers": {
    "dms-mcp-server": {
      "command": "uvx",
      "args": [
        "alibabacloud-dms-mcp-server@latest"
      ],
      "env": {
        "ALIBABA_CLOUD_ACCESS_KEY_ID": "access_id",
        "ALIBABA_CLOUD_ACCESS_KEY_SECRET": "access_key",
        "ALIBABA_CLOUD_SECURITY_TOKEN": "sts_security_token optional, required when using STS Token",
        "CONNECTION_STRING": "dbName@host:port"
      }
    }
  }
}
你会发现它需要用户的accesskey,这个如何找呢?
我们回到阿里云的控制台,点击右上角,找到accesskey
选择使用RAM用户



得到账号的AccessKey之后回到百炼平台
选择+号创建MCP
选择使用脚本部署
选择uvx进行部署,填写配置,配置中写入我们得到的AccessKey以及我们的数据库账号、名字以及端口号
部署成功之后就可以在我们的MCP管理中看到我们刚刚创建的服务
回到应用管理,找到我们创建的应用
提示词如下:
# 复制代码
你是一名数据库专家,专门负责在 `automobile_data` 数据库中执行 SQL 查询。你的工作基于已确认的 `databaseId`(通过 `searchDatabase` 获取)。

## 技能
### 技能 1:SQL 查询执行
- 根据提供的分析方案,调用 `generateSql` 生成 SQL 脚本。
- 使用 `executeScripts` 执行 SQL 查询。
- 如果查询出错,检查表结构和字段名,并自动修复错误(最多尝试 3 次)。

## 限制
- 所有查询必须基于已确认的 `databaseId`(通过 `searchDatabase` 获取)。
- 如果 SQL 查询出错,需检查表结构和字段名,并自动修复错误(最多尝试 3 次)。

```matlab
# 角色
你是一名数据库专家,专门负责在 `automobile_data` 数据库中执行 SQL 查询。你的工作基于已确认的 `databaseId`(通过 `searchDatabase` 获取)。

## 技能
### 技能 1:SQL 查询执行
- 根据提供的分析方案,调用 `generateSql` 生成 SQL 脚本。
- 使用 `executeScripts` 执行 SQL 查询。
- 如果查询出错,检查表结构和字段名,并自动修复错误(最多尝试 3 次)。

## 限制
- 所有查询必须基于已确认的 `databaseId`(通过 `searchDatabase` 获取)。
- 如果 SQL 查询出错,需检查表结构和字段名,并自动修复错误(最多尝试 3 次)。

选择刚刚创建的MCP服务

现在我们的数据库查询智能体已经完成了配置啦!接下来就可以随意操控数据库了!

写在最后

欢迎一起交流百炼智能体^^

相关推荐
xuehaikj9 小时前
文档类型识别与分类_yolo13-C3k2-SFSConv实现详解
人工智能·数据挖掘
2501_941146329 小时前
物联网与边缘计算在智能农业监测与精准种植系统中的创新应用研究
人工智能·物联网·边缘计算
2501_941111349 小时前
实战:用OpenCV和Python进行人脸识别
jvm·数据库·python
Mintopia9 小时前
🛰️ 低带宽环境下的 AIGC 内容传输优化技术
前端·人工智能·trae
aneasystone本尊9 小时前
学习 LiteLLM 的模型管理
人工智能
q***04059 小时前
MySQL 数据类型详解:TINYINT、INT 和 BIGINT
数据库·mysql
e***58239 小时前
MySQL如何执行.sql 文件:详细教学指南
数据库·mysql
z***3359 小时前
redis清理缓存
数据库·redis·缓存
CS_浮鱼10 小时前
【Linux】进程间通信
linux·运维·数据库
Mintopia10 小时前
⚡Trae Solo Coding 的效率法则
前端·人工智能·trae