list_alibaba_instances
Retrieve and display all Alibaba Cloud ECS instances for inventory management and monitoring through the Cloud Manage MCP Server.
Instructions
列出所有阿里云ECS实例
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- providers/alibaba_provider.py:162-201 (handler)Core handler logic for listing all Alibaba ECS instances using the Alibaba Cloud ECS SDK. Queries instances via describe_instances API, formats summaries, and returns structured list.def list_instances(self) -> Dict: """ 列出所有ECS实例 Returns: Dict: 实例列表或错误信息 """ if not self.available: return { 'error': f'阿里云服务不可用: {getattr(self, "error", "未知错误")}', 'provider': 'alibaba' } try: request = ecs_models.DescribeInstancesRequest( region_id=self.region_id, page_size=100 ) response = self.client.describe_instances(request) instance_list = [] if response.body.instances and response.body.instances.instance: for instance in response.body.instances.instance: instance_info = self._format_instance_summary(instance) instance_list.append(instance_info) return { 'provider': 'alibaba', 'region_id': self.region_id, 'total_instances': len(instance_list), 'instances': instance_list } except Exception as e: return { 'error': f'列出ECS实例时发生错误: {str(e)}', 'provider': 'alibaba' }
- main.py:613-619 (registration)MCP tool registration for 'list_alibaba_instances'. Thin wrapper that delegates to alibaba_provider.list_instances().@mcp.tool() def list_alibaba_instances() -> Dict: """ 列出所有阿里云ECS实例 """ return alibaba_provider.list_instances()
- Helper function to format individual instance summary data for inclusion in the list_instances response.def _format_instance_summary(self, instance) -> Dict: """格式化实例摘要信息""" # 获取主要公网IP primary_public_ip = None if hasattr(instance, 'eip_address') and instance.eip_address.ip_address: primary_public_ip = instance.eip_address.ip_address elif hasattr(instance, 'public_ip_address') and instance.public_ip_address: if instance.public_ip_address.ip_address: primary_public_ip = instance.public_ip_address.ip_address[0] # 获取主要私网IP primary_private_ip = None if hasattr(instance, 'vpc_attributes') and instance.vpc_attributes.private_ip_address: if instance.vpc_attributes.private_ip_address.ip_address: primary_private_ip = instance.vpc_attributes.private_ip_address.ip_address[0] elif hasattr(instance, 'inner_ip_address') and instance.inner_ip_address: if instance.inner_ip_address.ip_address: primary_private_ip = instance.inner_ip_address.ip_address[0] return { 'instance_id': instance.instance_id, 'name': instance.instance_name, 'status': instance.status, 'instance_type': instance.instance_type, 'region_id': instance.region_id, 'zone_id': instance.zone_id, 'cpu': instance.cpu, 'memory': instance.memory, 'public_ip': primary_public_ip, 'private_ip': primary_private_ip, 'creation_time': instance.creation_time, 'os_name': getattr(instance, 'osname', ''), 'instance_charge_type': instance.instance_charge_type }