alibabacloud dms mcp server

Local 2025-09-01 01:02:14 0

AI-Preferred Unified Data Access Gateway, Supporting Secure Access to 30+ Data Sources (Alibaba Cloud Full Suite / Mainstream Databases / Data Warehouses


English | 中文

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.

Ding


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

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.

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: 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/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

Getting Started

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


Contact us

For any questions or suggestions, join theAlibaba Cloud DMS MCP Group .

Ding

License

This project is licensed under the Apache 2.0 License.