ucloud-mcp-server
A cloud instance management server based on MCP-Go and UCloud SDK, supporting UCloud instance management through the MCP protocol.
 _    _ _____ _                 _ 
| |  | /  __ \ |               | |
| |  | | /  \/ | ___  _   _  __| |
| |  | | |   | |/ _ \| | | |/ _` |
| |__| | \__/\ | (_) | |_| | (_| |
 \____/ \____/_|\___/ \__,_|\__,_|
                                  
 __  __  _____ _____   _____                          
|  \/  |/  __ \  __ \ /  ___|                         
| .  . || /  \/| |_/ / \ `--.  ___ _ ____   _____ _ __
| |\/| || |    |  __/   `--. \/ _ \ '__\ \ / / _ \ '__|
| |  | || \__/\| |     /\__/ /  __/ |   \ V /  __/ |   
\_|  |_/ \____/\_|     \____/ \___|_|    \_/ \___|_|   
UCloud MCP Server
A cloud instance management server based on MCP-Go and UCloud SDK, supporting UCloud instance management through the MCP protocol.
Features
- Query instance information
 - List all instances
 - Get instance status
 - Monitor instance performance metrics
 - MCP protocol support
 - Configuration file support
 
Requirements
- Go 1.23 or higher
 - UCloud account and API credentials
 
Configuration
The service supports two configuration methods:
1. Configuration File (Recommended)
Create a config.json file:
{
    "region": "cn-bj2",
    "project_id": "your-project-id",
    "public_key": "your-public-key",
    "private_key": "your-private-key"
}
2. Environment Variables
If not specified in the configuration file, the service will try to read from environment variables:
export UCLOUD_REGION="cn-bj2"        # UCloud region
export UCLOUD_PROJECT_ID="your-project-id"  # Project ID
export UCLOUD_PUBLIC_KEY="your-public-key"  # API public key
export UCLOUD_PRIVATE_KEY="your-private-key"  # API private key
Configuration priority: Configuration file > Environment variables
Installation and Running
- Clone the repository:
 
git clone https://github.com/renzheng.wang/ucloud-mcp-server.git
cd ucloud-mcp-server
- Install dependencies:
 
go mod download
- Build the service:
 
go build -o ucloud-mcp-server
- Run the service:
 
Basic usage:
./ucloud-mcp-server
With custom configuration:
./ucloud-mcp-server --config /path/to/config.json --port 8080
Available startup options:
--config: Specify the path to your configuration file (default: ./config.json)--port: Specify the port to listen on (default: 8080)
Examples:
# Use custom config file
./ucloud-mcp-server --config /etc/ucloud/config.json
# Use custom port
./ucloud-mcp-server --port 9000
# Use both custom config and port
./ucloud-mcp-server --config /etc/ucloud/config.json --port 9000
The service will provide MCP protocol service through standard input/output.
Available Operations
Instance Information
Get detailed information about a specific instance, including:
- Basic instance details
 - Configuration information
 - Current status
 - Resource allocation
 
Instance Status
Monitor the current operational status of any instance in real-time.
Instance Metrics
Access comprehensive monitoring metrics for instances, including:
- CPU utilization
 - Disk I/O operations
 - Network traffic statistics
 - System performance data
 
Instance List
View a complete list of all available instances in your account, including their basic information and current status.
Monitoring Metrics
The system provides the following monitoring metrics:
- 
CPU Metrics
- CPUUtilization: CPU usage percentage (%)
 
 - 
Disk Metrics
- IORead: Disk read rate
 - IOWrite: Disk write rate
 - DiskReadOps: Number of disk read operations
 - DiskWriteOps: Number of disk write operations
 
 - 
Network Metrics
- NICIn: Network inbound traffic (bytes/s)
 - NICOut: Network outbound traffic (bytes/s)
 - NetPacketIn: Number of inbound network packets
 - NetPacketOut: Number of outbound network packets
 
 
Important Notes
- Keep your UCloud API credentials secure
 - Use configuration files or key management services for sensitive information in production environments
 - All operations are performed through the MCP protocol with standard I/O support
 - Monitoring data may have a few minutes delay
 - Regularly check monitoring metrics to identify potential issues early