Skip to main content
Glama
rainhan99

Cloud Manage MCP Server

by rainhan99

get_instance_by_provider

Retrieve instance details from specified cloud providers like AWS, DigitalOcean, Vultr, or Alibaba using the instance identifier, enabling efficient cloud resource management and monitoring.

Instructions

通过明确指定的云服务提供商查询实例信息 Args: provider (str): 云服务提供商 ('aws', 'digitalocean', 'vultr', 'alibaba') identifier (str): 实例标识符(IP地址或实例ID) Returns: Dict: 实例信息

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
identifierYes
providerYes

Implementation Reference

  • main.py:148-219 (handler)
    Handler function implementing the 'get_instance_by_provider' MCP tool. It determines the appropriate provider-specific method based on provider and identifier type (IP or ID), executes the query, and handles errors. Registered via @mcp.tool() decorator.
    @mcp.tool() def get_instance_by_provider(provider: str, identifier: str) -> Dict: """ 通过明确指定的云服务提供商查询实例信息 Args: provider (str): 云服务提供商 ('aws', 'digitalocean', 'vultr', 'alibaba') identifier (str): 实例标识符(IP地址或实例ID) Returns: Dict: 实例信息 """ provider_name = provider.lower() if provider_name not in PROVIDERS: return { 'error': f'不支持的云服务提供商: {provider_name}', 'supported_providers': list(PROVIDERS.keys()) } provider_obj = PROVIDERS[provider_name] provider_info = get_cloud_provider_info(provider_name) # 检查提供商是否可用 if not getattr(provider_obj, 'available', False): error_msg = getattr(provider_obj, 'error', '提供商不可用') return { 'error': f'{provider_info["name"]} 提供商不可用: {error_msg}', 'provider': provider_name, 'suggestion': '请检查相关环境变量是否正确配置' } print(f"🎯 直接查询 {provider_info['name']} 实例: {identifier}") try: # 根据标识符类型判断查询方式 if provider_name == 'aws': if identifier.startswith('i-'): result = provider_obj.get_instance_by_id(identifier) else: result = provider_obj.get_instance_by_ip(identifier) elif provider_name == 'digitalocean': if identifier.isdigit(): result = provider_obj.get_droplet_by_id(int(identifier)) else: result = provider_obj.get_droplet_by_ip(identifier) elif provider_name == 'vultr': # Vultr实例ID通常是UUID格式 if len(identifier) > 16 and '-' in identifier: result = provider_obj.get_instance_by_id(identifier) else: result = provider_obj.get_instance_by_ip(identifier) elif provider_name == 'alibaba': if identifier.startswith('i-'): result = provider_obj.get_instance_by_id(identifier) else: result = provider_obj.get_instance_by_ip(identifier) # 添加提供商信息 result['provider'] = provider_name result['provider_info'] = provider_info result['search_identifier'] = identifier return result except Exception as e: return { 'error': f'查询 {provider_info["name"]} 实例时发生错误: {str(e)}', 'provider': provider_name, 'identifier': identifier }

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/rainhan99/cloud_manage_mcp_server'

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