Skip to main content
Glama
aliyun

Alibaba Cloud Observability MCP Server

Official
by aliyun
server.py2.34 kB
import os from contextlib import asynccontextmanager from typing import AsyncIterator, Optional from alibabacloud_credentials.client import Client as CredClient from mcp.server import FastMCP from mcp_server_aliyun_observability.toolkits.iaas.toolkit import register_iaas_tools from mcp_server_aliyun_observability.toolkits.paas.toolkit import register_paas_tools from mcp_server_aliyun_observability.toolkits.shared.toolkit import ( register_shared_tools, ) from mcp_server_aliyun_observability.utils import ( CMSClientWrapper, CredentialWrapper, SLSClientWrapper, ) def create_lifespan(credential: Optional[CredentialWrapper] = None): @asynccontextmanager async def lifespan(fastmcp) -> AsyncIterator[dict]: sls_client = SLSClientWrapper(credential) cms_client = CMSClientWrapper(credential) yield { "sls_client": sls_client, "cms_client": cms_client, } return lifespan def init_server( credential: Optional[CredentialWrapper] = None, log_level: str = "INFO", transport_port: int = 8000, host: str = "0.0.0.0", ): """initialize the global mcp server instance""" mcp_server = FastMCP( name="mcp_aliyun_observability_server", lifespan=create_lifespan(credential), log_level=log_level, port=transport_port, host=host, ) # 根据 scope 环境变量注册相应的工具包 scope = os.environ.get("MCP_TOOLKIT_SCOPE", "all").lower() registered_scopes = [] if scope == "all" or scope == "iaas": register_iaas_tools(mcp_server) registered_scopes.append("IaaS") if scope == "all" or scope == "paas": register_paas_tools(mcp_server) registered_scopes.append("PaaS") # 注册共享工具 (所有层级都需要) register_shared_tools(mcp_server) print("已注册共享工具: list_workspace, list_domains") print(f"已注册工具包范围 [{scope}]: {', '.join(registered_scopes)}") return mcp_server def server( credential: Optional[CredentialWrapper] = None, transport: str = "stdio", log_level: str = "INFO", transport_port: int = 8000, host: str = "0.0.0.0", ): server = init_server(credential, log_level, transport_port, host) server.run(transport) host: str = ("0.0.0.0",)

Implementation Reference

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

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