list_vultr_instances
Retrieve details of all Vultr instances on the Cloud Manage MCP Server, enabling users to monitor and manage cloud resources effectively.
Instructions
列出所有Vultr实例
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Input Schema (JSON Schema)
{
"properties": {},
"title": "list_vultr_instancesArguments",
"type": "object"
}
Implementation Reference
- main.py:540-545 (registration)MCP tool registration and thin handler for list_vultr_instances, delegates to vultr_provider.list_instances()@mcp.tool() def list_vultr_instances() -> Dict: """ 列出所有Vultr实例 """ return vultr_provider.list_instances()
- providers/vultr_provider.py:139-184 (handler)Core implementation of listing Vultr instances via API, formats and returns listdef list_instances(self) -> Dict: """ 列出所有Vultr实例 Returns: Dict: 实例列表或错误信息 """ if not self.available: return { 'error': f'Vultr服务不可用: {getattr(self, "error", "未知错误")}', 'provider': 'vultr' } try: response = requests.get(f'{self.base_url}/instances', headers=self.headers, timeout=10) if response.status_code != 200: return { 'error': f'Vultr API调用失败: {response.status_code} - {response.text}', 'provider': 'vultr' } data = response.json() instances = data.get('instances', []) instance_list = [] for instance in instances: instance_info = self._format_instance_summary(instance) instance_list.append(instance_info) return { 'provider': 'vultr', 'total_instances': len(instance_list), 'instances': instance_list } except requests.RequestException as e: return { 'error': f'网络请求失败: {str(e)}', 'provider': 'vultr' } except Exception as e: return { 'error': f'列出Vultr实例时发生错误: {str(e)}', 'provider': 'vultr' }
- providers/vultr_provider.py:404-419 (helper)Helper function to format instance summary used in list_instancesdef _format_instance_summary(self, instance: Dict) -> Dict: """格式化实例摘要信息""" return { 'id': instance.get('id'), 'label': instance.get('label', '未命名'), 'hostname': instance.get('hostname'), 'status': instance.get('status'), 'power_status': instance.get('power_status'), 'main_ip': instance.get('main_ip'), 'ram': instance.get('ram'), 'vcpu_count': instance.get('vcpu_count'), 'region': instance.get('region'), 'plan': instance.get('plan'), 'os': instance.get('os'), 'date_created': instance.get('date_created') }
- providers/vultr_provider.py:374-402 (helper)Helper to format detailed instance info, though not directly used in list_instances but relateddef _format_instance_info(self, instance: Dict) -> Dict: """格式化实例详细信息""" return { 'id': instance.get('id'), 'label': instance.get('label', '未命名'), 'hostname': instance.get('hostname'), 'status': instance.get('status'), 'power_status': instance.get('power_status'), 'server_status': instance.get('server_status'), 'allowed_bandwidth': instance.get('allowed_bandwidth'), 'netmask_v4': instance.get('netmask_v4'), 'gateway_v4': instance.get('gateway_v4'), 'main_ip': instance.get('main_ip'), 'v6_main_ip': instance.get('v6_main_ip'), 'ram': instance.get('ram'), 'disk': instance.get('disk'), 'vcpu_count': instance.get('vcpu_count'), 'region': instance.get('region'), 'plan': instance.get('plan'), 'os': instance.get('os'), 'os_id': instance.get('os_id'), 'app_id': instance.get('app_id'), 'firewall_group_id': instance.get('firewall_group_id'), 'features': instance.get('features', []), 'tags': instance.get('tags', []), 'internal_ip': instance.get('internal_ip'), 'kvm': instance.get('kvm'), 'date_created': instance.get('date_created') }
- main.py:14-14 (registration)Import of vultr_provider modulefrom providers.vultr_provider import vultr_provider