AI时代数据安全访问网关 | 智能数据查询引擎 | 支持40多种数据源
安全访问
智能数据查询
多数据源支持
[//]: # (<img src="https://dms-static.oss-cn-hangzhou.aliyuncs.com/mcp-readme/architecture-_0508.jpg" alt="架构" width="60%">
DMS MCP服务器当前支持两种使用模式。
您是一家公司的DBA,需要管理并访问各种类型的数据库实例(例如,MySQL、Oracle、PostgreSQL)在生产、测试和开发环境中。通过DMS MCP服务器,您可以实现这些异构数据库的统一访问和集中管理。
典型问题示例:
test的数据库列表。myHost:myPort实例中检索test_db数据库的详细信息。test_db数据库中有哪些表?test_db数据库中的数据,并回答:“今天的用户流量是多少?”CONNECTION_STRING参数(格式:dbName@host:port)直接指定目标数据库。您是一位开发者,经常访问一个固定的数据库(例如,mydb@192.168.1.100:3306)进行开发和测试。在DMS MCP服务器配置中设置以下参数:
CONNECTION_STRING = mydb@192.168.1.100:3306
之后,每次服务启动时,DMS MCP服务器都会直接访问这个指定的数据库,无需切换实例。
典型问题示例:
test_table表的字段结构。test_table表中检索前20行。您是电子商务公司的一位数据分析师,需要频繁查询和分析订单、用户和产品等业务数据。公司的核心业务数据库位于ecommerce@10.20.30.40:3306。
在DMS MCP服务器中配置以下参数:
CONNECTION_STRING = ecommerce@10.20.30.40:3306
只需用自然语言提问,DMS MCP会将问题解析成SQL并返回结果。
典型问题示例:
| 工具名称 | 描述 | 适用模式 |
|---|---|---|
| addInstance | 将实例添加到DMS中。仅支持阿里云实例。 | 多实例模式 |
| listInstances | 从DMS中搜索实例。 | 多实例模式 |
| getInstance | 根据主机和端口获取实例的详细信息。 | 多实例模式 |
| searchDatabase | 根据schemaName搜索数据库。 | 多实例模式 |
| getDatabase | 获取特定数据库的详细信息。 | 多实例模式 |
| listTable | 列出指定数据库下的表。 | 多实例模式 & 单数据库模式 |
| getTableDetailInfo | 获取特定表的详细信息。 | 多实例模式 & 单数据库模式 |
| executeScript | 执行SQL脚本并返回结果。 | 多实例模式 & 单数据库模式 |
| nl2sql | 将自然语言问题转换为SQL查询。 | 多实例模式 |
| askDatabase | 数据库的自然语言查询(NL2SQL + 执行SQL)。 | 单数据库模式 |
| configureDtsJob | 配置DTS迁移任务 | 多实例模式 |
| startDtsJob | 启动DTS迁移任务 | 多实例模式 |
| getDtsJob | 查看DTS迁移任务的详细信息 | 多实例模式 |
| 数据源/工具 | NL2SQL nlsql | 执行脚本 executeScript | 显示模式 getTableDetailInfo | 访问控制 默认 | 审计日志 默认 |
|---|---|---|---|---|---|
| MySQL | ✅ | ✅ | ✅ | ✅ | ✅ |
| MariaDB | ✅ | ✅ | ✅ | ✅ | ✅ |
| PostgreSQL | ✅ | ✅ | ✅ | ✅ | ✅ |
| Oracle | ✅ | ✅ | ✅ | ✅ | ✅ |
| SQLServer | ✅ | ✅ | ✅ | ✅ | ✅ |
| Redis | ❌ | ❌ | ✅ | ✅ | ✅ |
| MongoDB | ❌ | ❌ | ✅ | ✅ | ✅ |
| StarRocks | ✅ | ✅ | ✅ | ✅ | ✅ |
| Clickhouse | ✅ | ✅ | ✅ | ✅ | ✅ |
| SelectDB | ✅ | ✅ | ✅ | ✅ | ✅ |
| DB2 | ✅ | ✅ | ✅ | ✅ | ✅ |
| OceanBase | ✅ | ✅ | ✅ | ✅ | ✅ |
| Gauss | ✅ | ✅ | ✅ | ✅ | ✅ |
| BigQuery | ✅ | ✅ | ✅ | ✅ | ✅ |
| PolarDB | ✅ | ✅ | ✅ | ✅ | ✅ |
| PolarDB-X | ✅ | ✅ | ✅ | ✅ | ✅ |
| AnalyticDB | ✅ | ✅ | ✅ | ✅ | ✅ |
| Lindorm | ✅ | ✅ | ✅ | ✅ | ✅ |
| TableStore | ❌ | ❌ | ✅ | ✅ | ✅ |
| Maxcompute | ✅ | ✅ | ✅ | ✅ | ✅ |
| Hologres | ✅ | ✅ | ✅ | ✅ | ✅ |
在通过DMS访问数据库实例之前,必须先将实例添加到DMS中。
有两种方法可以添加实例:
方法一:使用DMS MCP提供的addInstance工具添加实例
DMS MCP服务器提供了addInstance工具,可以快速将实例添加到DMS中。
更多详情,请参阅“工具列表”中的addInstance工具描述。
方法二:通过DMS控制台添加实例
git clone https://github.com/aliyun/alibabacloud-dms-mcp-server.git
向配置文件中添加以下内容:
多实例模式
{
"mcpServers": {
"dms-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/alibabacloud-dms-mcp-server/src/alibabacloud_dms_mcp_server",
"run",
"server.py"
],
"env": {
"ALIBABA_CLOUD_ACCESS_KEY_ID": "access_id",
"ALIBABA_CLOUD_ACCESS_KEY_SECRET": "access_key",
"ALIBABA_CLOUD_SECURITY_TOKEN": "sts_security_token 可选,使用STS Token时必需"
}
}
}
}
单数据库模式
{
"mcpServers": {
"dms-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/alibabacloud-dms-mcp-server/src/alibabacloud_dms_mcp_server",
"run",
"server.py"
],
"env": {
"ALIBABA_CLOUD_ACCESS_KEY_ID": "access_id",
"ALIBABA_CLOUD_ACCESS_KEY_SECRET": "access_key",
"ALIBABA_CLOUD_SECURITY_TOKEN": "sts_security_token 可选,使用STS Token时必需",
"CONNECTION_STRING": "dbName@host:port"
}
}
}
}
多实例模式
{
"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 可选,使用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 可选,使用STS Token时必需",
"CONNECTION_STRING": "dbName@host:port"
}
}
}
}
如有任何问题或建议,请加入阿里巴巴云DMS MCP群组(钉钉群组ID:129600002740)。
<img src="images/ding-en.jpg" alt="钉钉" width="40%">[//]: # (<img src="http://dms-static.oss-cn-hangzhou.aliyuncs.com/mcp-readme/ding-en.jpg" alt="钉钉" width="40%">
本项目根据Apache 2.0许可证发布。