AlibabaCloud DMS MCP
开发
AlibabaCloud DMS MCP
🔥 热度:10

阿里云数据管理DMS

DeepSeek 导航网:AlibabaCloud DMS MCP AI 首选的统一数据管理网关,支持 40 多种数据源连接的多云通用数据 MCP Server ,一站式解决跨源数据安全访问。

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

核心特性

为大模型提供统一的数据接入层元数据访问层,通过标准化接口解决:

  • 数据源碎片化导致的 MCP Server 维护成本
  • 异构协议间的兼容性问题
  • 账号权限不受控、操作无审计带来的安全问题

同时,通过 MCP 将获得以下特性:

  • NL2SQL:通过自然语言执行 SQL ,获得数据结果
  • 代码生成:通过该服务获取 schema 信息,生成 DAO 代码或进行结构分析
  • 取数:通过 SQL 自动路由准确数据源获得数据,为上层业务提供数据支持
  • 安全:精细的访问控制和可审计性
  • 数据迁移:配置数据迁移任务

使用方式

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),直接指定需要访问的数据库。
  • 适用于专注一个数据库访问的场景。

场景示例:

你是一个开发人员,只需要频繁访问一个固定的数据库(如 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 条数据
  • 使用工具,回答“今天的用户访问量是多少?”

前提条件

  • 已安装 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"
      }
    }
  }
}

相关推荐