D

DMS-数据库安全访问

AI 首选的统一数据访问通道,支持30多种数据源(阿里云全系/主流数据库/数仓)的安全访问。

databasesdata-platformsdeveloper-tools

1.8w 查看 · 2026-07-07 更新

简介

AI 首选的统一数据访问通道,支持30多种数据源(阿里云全系/主流数据库/数仓)的安全访问。

简介

AI 首选的统一数据访问通道,支持30多种数据源(阿里云全系/主流数据库/数仓)的安全访问。

AlibabaCloud DMS MCP Server

AI时代的数据安全访问网关 |智能问数引擎 | 支持40+数据源


核心特性

安全访问

  • 账号密码安全托管:安全管理数据库账号密码,无需人工维护,有效防止敏感信息泄露。
  • 细粒度权限管控:支持实例、库、表、字段及行级别的精细化访问控制,精准限制调用方权限,杜绝越权操作,保障数据安全。
  • 高危SQL识别与拦截:内置丰富的规则引擎,实时识别并拦截潜在高危SQL,防范安全风险。
  • SQL审计追踪:记录所有SQL操作日志,支持完整追溯与合规审计,满足监管要求。

智能问数

  • 内置NL2SQL算法:基于输入的自然语言问题,智能匹配数据表,理解表中业务含义,生成并执行SQL查询,快速获取结果。
  • 个性化知识库:内置元数据和问数知识库,支持自定义业务知识和查询模式,打造贴合业务场景的专属智能问数能力。

多数据源支持

  • 广泛数据源支持:支持40多种主流数据库/数仓类型,实现多源数据统一接入和访问。
  • 多环境统一管理:支持开发、测试、生产等不同环境下的数据库实例集中管理,提升运维效率。
  • 多平台无缝集成:覆盖阿里云、AWS等主流云平台以及自建数据库/数仓,有效降低维护成本。

支持生态

  • 支持阿里云全系数据源:RDS、PolarDB、ADB系列、Lindorm系列、TableStore系列、Maxcompute系列。
  • 支持主流数据库/数仓:MySQL、MariaDB、PostgreSQL、Oracle、SQLServer、Redis、MongoDB、StarRocks、Clickhouse、SelectDB、DB2、OceanBase、Gauss、BigQuery等。

核心架构

Architecture

使用方式

DMS MCP Server 现在支持两种使用模式。

模式一:多实例模式

  • 支持添加实例到DMS,可以访问多个数据库实例。
  • 适用于需要管理和访问多个数据库实例的场景。

场景示例:

你是公司的DBA,需要在生产、测试和开发等多个环境中管理和访问 MySQL、Oracle 和 PostgreSQL 等多种数据库实例。通过DMS MCP Server,可以实现对这些异构数据库的统一接入与集中管理。

典型提问示例:

  • 获取所有名称为test的数据库列表
  • 获取 myHost:myPort 实例中 test_db 数据库的详细信息。
  • test_db 数据库下有哪些表?
  • 使用工具, 查询test_db 库的数据,回答“今天的用户访问量是多少?”

模式二:单数据库模式

  • 通过在SERVER中配置 CONNECTION_STRING 参数(格式为 dbName@host:port),直接指定需要访问的数据库。
  • 适用于专注一个数据库访问的场景。

场景示例1:

你是一个开发人员,只需要频繁访问一个固定的数据库(如 mydb@192.168.1.100:3306)进行开发测试。在 DMS MCP Server 的配置中设置一个 CONNECTION_STRING 参数,例如:

CONNECTION_STRING = mydb@192.168.1.100:3306

之后每次启动服务时,DMS MCP Server都会直接访问这个指定的数据库,无需切换实例。

典型提问示例:

  • 我有哪些表?
  • 查看test_table 表的字段结构
  • 获取test_table 表的前20条数据
  • 使用工具,回答“今天的用户访问量是多少?”

场景示例2:

你是一家电商公司的数据分析师,需要频繁查询和分析订单、用户、商品等业务数据。公司的核心业务数据库位于 ecommerce@10.20.30.40:3306。

在DMS MCP Server中设置如下参数:

CONNECTION_STRING = ecommerce@10.20.30.40:3306

只需用自然语言提问,DMS MCP 即可将问题解析为 SQL 并返回结果。

典型提问示例:

  • 今天的订单总数是多少?
  • 各个省份的订单数量排名如何?
  • 过去7天内,每天的新增用户数是多少?
  • 哪个商品类别的销售额最高?

工具清单

工具名称描述适用模式
addInstance将阿里云实例添加到 DMS。多实例模式
listInstances搜索DMS中的实例列表。多实例模式
getInstance根据 host 和 port 获取实例详细信息。多实例模式
searchDatabase根据 schemaName 搜索数据库。多实例模式
getDatabase获取特定数据库的详细信息。多实例模式
listTable搜索指定数据库下的数据表。多实例模式 & 单数据库模式
getTableDetailInfo获取特定数据库表的详细信息。多实例模式 & 单数据库模式
executeScript执行 SQL 脚本并返回结果。多实例模式 & 单数据库模式
nl2sql将自然语言问题转换为 SQL 查询。多实例模式
askDatabase自然语言查询数据库(NL2SQL + 执行 SQL)。单数据库模式
configureDtsJob配置DTS迁移任务多实例模式
startDtsJob启动DTS迁移任务多实例模式
getDtsJob查看DTS迁移任务详情多实例模式

支持的数据源

DataSource/ToolNL2SQL nlsqlExecute script executeScriptShow schema getTableDetailInfoAccess control defaultAudit log default
MySQL
MariaDB
PostgreSQL
Oracle
SQLServer
Redis
MongoDB
StarRocks
Clickhouse
SelectDB
DB2
OceanBase
Gauss
BigQuery
PolarDB
PolarDB-X
AnalyticDB
Lindorm
TableStore
Maxcompute
Hologres

前提条件

  • 已安装uv
  • 已安装Python 3.10+
  • 具有阿里云DMS访问权限(AliyunDMSFullAccess)的AK SK或者STS Token,添加权限操作,请参见授权管理

准备工作

在通过DMS MCP访问托管在DMS的数据库实例之前,需要将对应的数据库实例录入至DMS中,并为实例开启 安全托管

可以通过以下两种方式进行实例的添加:

方法一:使用DMS MCP 提供的 addInstance 工具添加实例

DMS MCP Server提供了 addInstance 工具,用于快速将实例添加到 DMS 中。

详情请见“工具清单”中的 addInstance工具描述。

方法二:通过 DMS 控制台页面添加实例

1 登录 DMS 控制台

2 在控制台首页左侧的数据库实例区域,单击新增实例图标。

3 在新增实例页面,录入实例信息(如实例地址、端口、用户名、密码)。

4 单击提交按钮完成实例添加。


快速开始

方案一 使用源码运行

下载代码

git clone https://github.com/aliyun/alibabacloud-dms-mcp-server.git

配置MCP客户端

在配置文件中添加以下内容:

多实例模式

{ "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 optional, required when using 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 optional, required when using STS Token", "CONNECTION_STRING": "dbName@host:port" } } } }

方案二 使用PyPI包运行

多实例模式

{ "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" } } } }

单数据库模式

{ "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" } } } }

Contact us

如果您有使用问题或建议, 请加入Alibaba Cloud DMS MCP讨论组 (钉钉群号:129600002740) 进行讨论.

DingTalk

服务配置

[{'mcpServers': {'dms-mcp-server': {'args': ['--directory', '/path/to/alibabacloud-dms-mcp-server/src/alibabacloud_dms_mcp_server', 'run', 'server.py'], 'command': 'uv', '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'}}}}]

来源