aliyun_alibabacloud-dms-mcp-server

aliyun_alibabacloud-dms-mcp-server

0

AlibabaCloud DMS MCP Server is an AI-powered data management solution designed to connect over 30 data sources across multiple clouds. It provides a unified data access and metadata layer with features like natural language SQL execution and fine-grained security.

English |

AlibabaCloud DMS MCP Server

AI-powered unified data management gateway that supports connection to over 30+ data sources, serving as a multi-cloud universal data MCP Server to address cross-source data secure access in one-stop solution.

  • Supports full Alibaba Cloud series: RDS, PolarDB, ADB series, Lindorm series, TableStore series, MaxCompute series.
  • Supports mainstream databases/warehouses: MySQL, MariaDB, PostgreSQL, Oracle, SQLServer, Redis, MongoDB, StarRocks, Clickhouse, SelectDB, DB2, OceanBase, Gauss, BigQuery, etc.
Architecture

Core Features

Provides AI with a unified data access layer and metadata access layer, solving through standardized interfaces:

  • Maintenance costs caused by data source fragmentation
  • Compatibility issues between heterogeneous protocols
  • Security risks from uncontrolled account permissions and non-auditable operations

Key features via MCP include:

  • NL2SQL: Execute SQL via natural language to obtain data results
  • Code Generation: Retrieve schema information through this service to generate DAO code or perform structural analysis
  • Data Retrieval: Automatically route SQL to accurate data sources for business support
  • Security: Fine-grained access control and auditability

Tool List

Metadata Related

addInstance: Add an instance to DMS. If the instance already exists, return the existing instance information.
  • db_user (string, required): Username for connecting to the database.
  • db_password (string, required): Password for connecting to the database.
  • instance_resource_id (string, optional): Resource ID of the instance, typically assigned by the cloud service provider.
  • host (string, optional): Connection address of the instance.
  • port (string, optional): Connection port number of the instance.
  • region (string, optional): Region where the instance is located (e.g., "cn-hangzhou").
getInstance: Retrieve instance details from DMS based on host and port information.
  • host (string, required): Connection address of the instance.
  • port (string, required): Connection port number of the instance.
  • sid (string, optional): Required for Oracle-like databases, defaults to None.
searchDatabase: Search for databases in DMS based on schemaName.
  • search_key (string, required): schemaName.
  • page_number (integer, optional): Page number to retrieve (starting from 1), default is 1.
  • page_size (integer, optional): Number of results per page (maximum 1000), default is 200.
getDatabase: Retrieve detailed information about a specific database from DMS.
  • host (string, required): Connection address of the instance.
  • port (string, required): Connection port number of the instance.
  • schema_name (string, required): Database name.
  • sid (string, optional): Required for Oracle-like databases, defaults to None.
listTable: Search for data tables in DMS based on databaseId and tableName.
  • database_id (string, required): Database ID to limit the search scope (obtained via getDatabase).
  • search_name (string, required): Non-empty string as a search keyword to match table names.
  • page_number (integer, optional): Pagination page number (default: 1).
  • page_size (integer, optional): Number of results per page (default: 200, maximum: 200).
getTableDetailInfo: Retrieve detailed metadata information for a specific data table, including field and index details.
  • table_guid (string, required): Unique identifier for the table (format: dmsTableId.schemaName.tableName), obtained via searchTable or listTable.

SQL Execution Related

executeScript: Execute an SQL script through DMS and return the results.
  • database_id (string, required): DMS database ID (obtained via getDatabase).
  • script (string, required): SQL script content to execute.

NL2SQL Related

nl2sql: Convert natural language questions into executable SQL queries.
  • question (string, required): Natural language question to convert into SQL.
  • database_id (integer, required): DMS database ID (obtained via getDatabase).
  • knowledge (string, optional): Additional context or database knowledge to assist SQL generation.

Supported Data Sources

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

Getting Started

Option 1: Run from Source Code

Download the Code
git clone https://github.com/aliyun/alibabacloud-dms-mcp-server.git
Configure MCP Client

Add the following content to the configuration file:

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

Option 2: Run via PyPI Package

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

Contact us

For any questions or suggestions, join the Alibaba Cloud DMS MCP Group (DingTalk Group ID: 129600002740) .

DingTalk

License

This project is licensed under the Apache 2.0 License.