MCP Server for AlibabaCloud DMS (Database Management Service)
Server has 5 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have input schemas with types and descriptions, which is positive. However, descriptions are verbose and lack LLM-optimized structure. Parameter descriptions are present but often redundant with docstring text. Output schemas are documented in descriptions but not formally specified. Error handling is minimal, most tools either return empty collections or raise exceptions without recovery guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all being read-only operations. Tool names are verb-noun style (good), but descriptions exceed 200 chars and bury key details. Parameter validation is present but error messages are generic.
Retrieve detailed information about a specific database from DMS. This tool fetches metadata for a database instance in the DMS based on connection parameters and schema name. Supports Oracle-specific SID specification. Parameters: host (str): Hostname or IP address of the database instance. port (int): Connection port number (valid range: 1-65535). schema_name (str): Name of the database schema. sid (Optional[str], optional): Required for Oracle like databases. Defaults to None. Returns: Dict[str, Any]: A dictionary containing database metadata with the following keys: - DatabaseId: Unique database identifier in DMS - SchemaName: Name of the database schema - DbType: Database Engine type - InstanceAlias: Instance alias in DMS - InstanceId: Instance identifier in DMS - State: Current operational status
Retrieve detailed instance information from DMS. Parameters: Host (str): The hostname or IP address of the database instance Port (int): Connection port number (valid range: 1-65535) Sid (Optional[str]): Required for Oracle like databases. Defaults to None. Returns: Dict[str, Any]: A dictionary containing instance details with these keys: - InstanceId: Unique instance identifier in DMS - State: Current operational status - InstanceType: Database Engine type - InstanceAlias: Instance alias in DMS
Search for database tables in DMS based on databaseId and tableName. This tool allows searching for database tables in the DMS if databaseId is known. Parameters: databaseId (int): Required databaseId (obtained via getDatabase tool) to scope the search. searchName (str): A non-empty string used as the search keyword. Used to match table names. pageNumber (int, optional): Pagination page number (default: 1). pageSize (int, optional): Number of results per page (default: 200, max: 200). Returns: Dict[str, Any] containing:
Descriptions are verbose (250-350 chars) and lack LLM-optimized structure. Baseline for A+ tools is 50-200 chars. Descriptions bury key details in parameter lists instead of leading with WHAT/WHEN/WHY.
No tool annotations despite all tools being read-only. Missing readOnlyHint annotation on all 5 tools. This prevents agents from understanding which tools are safe to call without side effects.
Output schemas documented only in description text, not formally specified. Baseline for A+ tools is 100% documented return types with field names and types. LLMs cannot reliably parse unstructured descriptions.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
Search databases in DMS based on schemaName. This tool allows searching for database instances in the DMS using a provided search key(schemaName). It supports pagination to handle large result sets efficiently. Parameters: searchKey (str): schemaName. pageNumber (int, optional): The page number to retrieve (starting from 1). Defaults to 1. pageSize (int, optional): Number of results per page, up to a maximum of 1000. Defaults to 200. Returns: List[Dict[str, Any]]: A list of dictionaries, each representing a matched database with fields such as: - DatabaseId: Unique database identifier in DMS - Host: Hostname or IP address of the database instance - Port: Connection port number - SchemaName: Name of the database schema - DbType: Database Engine type
Search for database tables in DMS based on tableName. This tool allows searching for database tables in the DMS using a provided search key(tableName). Parameters: searchKey (str): A non-empty string used as the search keyword. Used to match table names. Returns: List[Dict[str, Any]]: A list of dictionaries, each representing a matched table with fields such as: - DatabaseId: ID of parent database - TableName: Name of the table - DbName: Database name - TableGuid: Unique table identifier
Error handling is minimal. Most tools return empty collections or raise raw exceptions without recovery guidance. No actionable error messages (e.g., 'searchKey must be non-empty' is logged but not returned to agent).
listTable description is incomplete, ends mid-sentence at 'Returns: Dict[str, Any] containing:' with no field documentation. This violates the requirement that every tool must have a complete, non-empty description.