Skip to main content
Glama

Alibaba Cloud MCP Server

Official
by aliyun
server.py2.9 kB
from fastmcp import FastMCP import click import logging from alibaba_cloud_ops_mcp_server.tools.common_api_tools import set_custom_service_list from alibaba_cloud_ops_mcp_server.config import config from alibaba_cloud_ops_mcp_server.tools import cms_tools, oos_tools, oss_tools, api_tools, common_api_tools from alibaba_cloud_ops_mcp_server.settings import settings logger = logging.getLogger(__name__) SUPPORTED_SERVICES_MAP = { "ecs": "Elastic Compute Service (ECS)", "oos": "Operations Orchestration Service (OOS)", "rds": "Relational Database Service (RDS)", "vpc": "Virtual Private Cloud (VPC)", "slb": "Server Load Balancer (SLB)", "ess": "Elastic Scaling (ESS)", "ros": "Resource Orchestration Service (ROS)", "cbn": "Cloud Enterprise Network (CBN)", "dds": "MongoDB Database Service (DDS)", "r-kvstore": "Cloud database Tair (compatible with Redis) (R-KVStore)", "bssopenapi": "Billing and Cost Management (BssOpenAPI)" } @click.command() @click.option( "--transport", type=click.Choice(["stdio", "sse", "streamable-http"]), default="stdio", help="Transport type", ) @click.option( "--port", type=int, default=8000, help="Port number", ) @click.option( "--host", type=str, default="127.0.0.1", help="Host", ) @click.option( "--services", type=str, default=None, help="Comma-separated list of supported services, e.g., 'ecs,vpc,rds'", ) @click.option( "--headers-credential-only", type=bool, default=False, help="Whether to use credentials only from headers", ) @click.option( "--env", type=click.Choice(["domestic", "international"]), default="domestic", help="Environment type: 'domestic' for domestic, 'international' for overseas (default: domestic)", ) def main(transport: str, port: int, host: str, services: str, headers_credential_only: bool, env: str): # Create an MCP server mcp = FastMCP( name="alibaba-cloud-ops-mcp-server", port=port, host=host, stateless_http=True ) if headers_credential_only: settings.headers_credential_only = headers_credential_only if env: settings.env = env if services: service_keys = [s.strip().lower() for s in services.split(",")] service_list = [(key, SUPPORTED_SERVICES_MAP.get(key, key)) for key in service_keys] set_custom_service_list(service_list) for tool in common_api_tools.tools: mcp.tool(tool) for tool in oos_tools.tools: mcp.tool(tool) for tool in cms_tools.tools: mcp.tool(tool) for tool in oss_tools.tools: mcp.tool(tool) api_tools.create_api_tools(mcp, config) # Initialize and run the server logger.debug(f'mcp server is running on {transport} mode.') mcp.run(transport=transport) if __name__ == "__main__": main()

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-ecs-mcp-server'

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