Skip to main content
Glama
aliyun

Alibaba Cloud RDS OpenAPI MCP Server

Official
by aliyun

describe_available_zones

Query available zones for Alibaba Cloud RDS instances by specifying region, database type, and version to determine deployment locations.

Instructions

Query available zones for RDS instances.

Args:
    region_id: Region ID.
    engine: Database type (MySQL, SQLServer, PostgreSQL, MariaDB).
    engine_version: Database version.
        MySQL: 5.5, 5.6, 5.7, 8.0
        SQL Server: 2008r2, 2012, 2014, 2016, 2017, 2019
        PostgreSQL: 10.0, 11.0, 12.0, 13.0, 14.0, 15.0
        MariaDB: 10.3
    commodity_code: Commodity code.
        bards: Pay-as-you-go primary instance (China site)
        rds: Subscription primary instance (China site)
        rords: Pay-as-you-go read-only instance (China site)
        rds_rordspre_public_cn: Subscription read-only instance (China site)
        bards_intl: Pay-as-you-go primary instance (International site)
        rds_intl: Subscription primary instance (International site)
        rords_intl: Pay-as-you-go read-only instance (International site)
        rds_rordspre_public_intl: Subscription read-only instance (International site)
        rds_serverless_public_cn: Serverless instance (China site)
        rds_serverless_public_intl: Serverless instance (International site)
    zone_id: Zone ID.
    dispense_mode: Whether to return zones that support single-zone deployment.
        1: Return (default)
        0: Do not return
    dbinstance_name: Primary instance ID. Required when querying read-only instance resources.
    category: Instance category.
        Basic: Basic Edition
        HighAvailability: High-availability Edition
        cluster: MySQL Cluster Edition
        AlwaysOn: SQL Server Cluster Edition
        Finance: Enterprise Edition
        serverless_basic: Serverless Basic Edition
        serverless_standard: MySQL Serverless High-availability Edition
        serverless_ha: SQL Server Serverless High-availability Edition

Returns:
    Dict[str, Any]: Response containing available zones information.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
region_idYes
engineYes
engine_versionNo
commodity_codeNo
zone_idNo
dispense_modeNo
dbinstance_nameNo
categoryNo

Implementation Reference

  • The core handler function implementing the 'describe_available_zones' MCP tool. It constructs a DescribeAvailableZonesRequest using Alibaba Cloud RDS SDK, calls the API via get_rds_client, and returns the available zones data. Includes comprehensive input validation via type hints and detailed docstring with parameter explanations.
    @mcp.tool(annotations=READ_ONLY_TOOL)
    async def describe_available_zones(
            region_id: str,
            engine: str,
            engine_version: str = None,
            commodity_code: str = None,
            zone_id: str = None,
            dispense_mode: str = None,
            dbinstance_name: str = None,
            category: str = None
    ) -> Dict[str, Any]:
        """Query available zones for RDS instances.
    
        Args:
            region_id: Region ID.
            engine: Database type (MySQL, SQLServer, PostgreSQL, MariaDB).
            engine_version: Database version.
                MySQL: 5.5, 5.6, 5.7, 8.0
                SQL Server: 2008r2, 2012, 2014, 2016, 2017, 2019
                PostgreSQL: 10.0, 11.0, 12.0, 13.0, 14.0, 15.0
                MariaDB: 10.3
            commodity_code: Commodity code.
                bards: Pay-as-you-go primary instance (China site)
                rds: Subscription primary instance (China site)
                rords: Pay-as-you-go read-only instance (China site)
                rds_rordspre_public_cn: Subscription read-only instance (China site)
                bards_intl: Pay-as-you-go primary instance (International site)
                rds_intl: Subscription primary instance (International site)
                rords_intl: Pay-as-you-go read-only instance (International site)
                rds_rordspre_public_intl: Subscription read-only instance (International site)
                rds_serverless_public_cn: Serverless instance (China site)
                rds_serverless_public_intl: Serverless instance (International site)
            zone_id: Zone ID.
            dispense_mode: Whether to return zones that support single-zone deployment.
                1: Return (default)
                0: Do not return
            dbinstance_name: Primary instance ID. Required when querying read-only instance resources.
            category: Instance category.
                Basic: Basic Edition
                HighAvailability: High-availability Edition
                cluster: MySQL Cluster Edition
                AlwaysOn: SQL Server Cluster Edition
                Finance: Enterprise Edition
                serverless_basic: Serverless Basic Edition
                serverless_standard: MySQL Serverless High-availability Edition
                serverless_ha: SQL Server Serverless High-availability Edition
    
        Returns:
            Dict[str, Any]: Response containing available zones information.
        """
        try:
            # Initialize the client
            client = get_rds_client(region_id)
    
            # Create request
            request = rds_20140815_models.DescribeAvailableZonesRequest(
                region_id=region_id,
                engine=engine
            )
    
            # Add optional parameters if provided
            if engine_version:
                request.engine_version = engine_version
            if commodity_code:
                request.commodity_code = commodity_code
            if zone_id:
                request.zone_id = zone_id
            if dispense_mode:
                request.dispense_mode = dispense_mode
            if dbinstance_name:
                request.dbinstance_name = dbinstance_name
            if category:
                request.category = category
    
            # Make the API request
            response = client.describe_available_zones(request)
            return response.body.to_map()
    
        except Exception as e:
            logger.error(f"Error occurred while querying available zones: {str(e)}")
            raise OpenAPIError(f"Failed to query available zones: {str(e)}")

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aliyun/alibabacloud-rds-openapi-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server