AI 首选的统一数据访问通道,支持30多种数据源(阿里云全系/主流数据库/数仓)的安全访问。
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等。
核心架构
使用方式
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/Tool | NL2SQL nlsql | Execute script executeScript | Show schema getTableDetailInfo | Access control default | Audit log default |
|---|---|---|---|---|---|
| MySQL | ✅ | ✅ | ✅ | ✅ | ✅ |
| MariaDB | ✅ | ✅ | ✅ | ✅ | ✅ |
| PostgreSQL | ✅ | ✅ | ✅ | ✅ | ✅ |
| Oracle | ✅ | ✅ | ✅ | ✅ | ✅ |
| SQLServer | ✅ | ✅ | ✅ | ✅ | ✅ |
| Redis | ❌ | ❌ | ✅ | ✅ | ✅ |
| MongoDB | ❌ | ❌ | ✅ | ✅ | ✅ |
| StarRocks | ✅ | ✅ | ✅ | ✅ | ✅ |
| Clickhouse | ✅ | ✅ | ✅ | ✅ | ✅ |
| SelectDB | ✅ | ✅ | ✅ | ✅ | ✅ |
| DB2 | ✅ | ✅ | ✅ | ✅ | ✅ |
| OceanBase | ✅ | ✅ | ✅ | ✅ | ✅ |
| Gauss | ✅ | ✅ | ✅ | ✅ | ✅ |
| BigQuery | ✅ | ✅ | ✅ | ✅ | ✅ |
| PolarDB | ✅ | ✅ | ✅ | ✅ | ✅ |
| PolarDB-X | ✅ | ✅ | ✅ | ✅ | ✅ |
| AnalyticDB | ✅ | ✅ | ✅ | ✅ | ✅ |
| Lindorm | ✅ | ✅ | ✅ | ✅ | ✅ |
| TableStore | ❌ | ❌ | ✅ | ✅ | ✅ |
| Maxcompute | ✅ | ✅ | ✅ | ✅ | ✅ |
| Hologres | ✅ | ✅ | ✅ | ✅ | ✅ |
前提条件
准备工作
在通过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) 进行讨论.
服务配置
[{'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'}}}}]