Alibaba Cloud DMS MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CONNECTION_STRING | No | Directly specify the target database (format: dbName@host:port). Used to enable Single Database Mode. | |
| ALIBABA_CLOUD_ACCESS_KEY_ID | Yes | Alibaba Cloud Access Key ID. | |
| ALIBABA_CLOUD_SECURITY_TOKEN | No | Alibaba Cloud Security Token. Optional, required when using STS Token. | |
| ALIBABA_CLOUD_ACCESS_KEY_SECRET | Yes | Alibaba Cloud Access Key Secret. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| addInstanceA | Add an instance to DMS. The username and password are required. Only Aliyun instances are supported. Either instance_resource_id or host and port must be provided. The region is optional, but it's recommended to include it.If the instance already exists, it will return the existing instance information. |
| listInstancesC | Search for instances from DMS. |
| getInstanceA | Retrieve detailed instance information from DMS using the host and port. |
| searchDatabaseA | Search databases in DMS by name. |
| getDatabaseB | Obtain detailed information about a specific database in DMS when the host and port are provided. |
| listTablesA | Search for tables by databaseId and (optional) table name. If you don't know the databaseId, first use getDatabase or searchDatabase to retrieve it. (1) If you have the exact host, port, and database name, use getDatabase. (2) If you only know the database name, use searchDatabase. (3) If you don't know any information, ask the user to provide the necessary details. Note: searchDatabase may return multiple databases. In this case, let the user choose which one to use. |
| getTableDetailInfoA | Retrieve detailed metadata information about a specific database table including schema and index details. If you don't know the table_guid parameter, retrieve it using listTables. |
| executeScriptA | Execute SQL script against a database in DMS and return structured results.If you don't know the databaseId, first use getDatabase or searchDatabase to retrieve it. (1) If you have the exact host, port, and database name, use getDatabase. (2) If you only know the database name, use searchDatabase. (3) If you don't know any information, ask the user to provide the necessary details. Note: searchDatabase may return multiple databases. In this case, let the user choose which one to use. |
| createDataChangeOrderA | Execute SQL changes through a data change order, and a corresponding order ID will be returned. Prefer using the executeScript tool for SQL execution;only use this tool when explicitly instructed to perform the operation via a order.If you don't know the databaseId, first use getDatabase or searchDatabase to retrieve it. (1) If you have the exact host, port, and database name, use getDatabase. (2) If you only know the database name, use searchDatabase. (3) If you don't know any information, ask the user to provide the necessary details. Note: searchDatabase may return multiple databases. In this case, let the user choose which one to use. |
| getOrderInfoA | Retrieve order information from DMS using the order ID. |
| submitOrderApprovalA | Submit the order for approval in DMS using the order ID. |
| approveOrderB | Approve or reject an order in DMS. The workflow_instance_id can be obtained from getOrderInfo. |
| generateSqlA | Generate SELECT-type SQL queries from natural language input. |
| fixSqlA | Analyze and fix the SQL error based on the provided SQL statement, error message, and database ID.If you don't know the databaseId, first use getDatabase or searchDatabase to retrieve it. (1) If you have the exact host, port, and database name, use getDatabase. (2) If you only know the database name, use searchDatabase. (3) If you don't know any information, ask the user to provide the necessary details. Note: searchDatabase may return multiple databases. In this case, let the user choose which one to use. |
| answerSqlSyntaxA | Answer syntax-related questions for the corresponding database engine based on the database ID.If you don't know the databaseId, first use getDatabase or searchDatabase to retrieve it. (1) If you have the exact host, port, and database name, use getDatabase. (2) If you only know the database name, use searchDatabase. (3) If you don't know any information, ask the user to provide the necessary details. Note: searchDatabase may return multiple databases. In this case, let the user choose which one to use. |
| optimizeSqlA | Analyze and optimize SQL performance based on the provided SQL statement and database IDIf you don't know the databaseId, first use getDatabase or searchDatabase to retrieve it. (1) If you have the exact host, port, and database name, use getDatabase. (2) If you only know the database name, use searchDatabase. (3) If you don't know any information, ask the user to provide the necessary details. Note: searchDatabase may return multiple databases. In this case, let the user choose which one to use. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Every tool has a clearly distinct purpose: instance management, database retrieval, SQL execution, SQL analysis (fix, optimize, generate, syntax), and order processing. Overlapping tools like executeScript and createDataChangeOrder are differentiated by direct vs. order-based execution, with clear descriptions.
All tools follow a verb_noun pattern in camelCase (e.g., addInstance, executeScript, getDatabase, listInstances). The naming is predictable and consistent, with no mixing of styles or unclear abbreviations.
16 tools is slightly above the ideal 3-15 range but still well-scoped for the DMS domain. Each tool serves a specific function without redundancy, and the count reflects a comprehensive feature set without being overwhelming.
The tool set covers core operations: instance CRUD (get, list, add but no delete/update), database queries, SQL analysis, and order management. Missing operations like instance/database deletion or user management create notable gaps, but the core workflow is supported.