# Get Account Info Source: https://docs.cloudblast.io/api-reference/account/get-account-info GET /account Returns your account details including name, email, credit balance, and resource limits. # Get Resource Usage Source: https://docs.cloudblast.io/api-reference/account/get-resource-usage GET /account/usage Returns your current resource usage across all servers, including CPU, RAM, disk, and IP counts against your limits. # List Invoices Source: https://docs.cloudblast.io/api-reference/account/list-invoices GET /account/invoices Returns a paginated list of your invoices, sorted by most recent first. # Create Backup Source: https://docs.cloudblast.io/api-reference/backups/create-backup POST /servers/{server}/backups Creates a new backup of the server. The server must not be in a conflicting state (installing, restoring, etc.). # Delete Backup Source: https://docs.cloudblast.io/api-reference/backups/delete-backup DELETE /servers/{server}/backups/{backup_uuid} Permanently deletes a backup. Locked backups cannot be deleted. # List Backups Source: https://docs.cloudblast.io/api-reference/backups/list-backups GET /servers/{server}/backups Returns a paginated list of backups for a server. # Restore Backup Source: https://docs.cloudblast.io/api-reference/backups/restore-backup POST /servers/{server}/backups/{backup_uuid}/restore Restores the server from a backup. The server will be unavailable during the restoration process. # List Locations Source: https://docs.cloudblast.io/api-reference/locations/list-locations GET /locations Returns data center locations that are available for ordering. Coming soon locations are hidden. Each location includes `out_of_stock`, which is true when no visible plan can currently be provisioned there because of plan stock, node capacity, or IP availability. # List Templates Source: https://docs.cloudblast.io/api-reference/locations/list-templates GET /locations/{location_id}/templates Returns all available OS templates at a given location, identified by slug. Use the template `slug` when creating or reinstalling a server. Templates are deduplicated across nodes — you don't need to know which node will be selected. # API Reference Source: https://docs.cloudblast.io/api-reference/overview Complete reference for all CloudBlast V2 API endpoints # API Reference Base URL: `https://console.cloudblast.io/api/v2` All requests require `Authorization: Bearer `. All responses use JSON. ## Endpoints | Group | Endpoints | Description | | ------------------- | --------- | ----------------------------------------- | | **Account** | 3 | Account info, resource usage, invoices | | **Plans** | 1 | List available server plans | | **Locations** | 2 | List data centers and OS templates | | **Servers** | 8 | Full server lifecycle management | | **Server IPs** | 4 | IP address management and rDNS | | **Backups** | 4 | Backup create, restore, delete | | **SSH Keys** | 3 | SSH key management | | **Security Groups** | 8 | Firewall groups, rules, server attachment | ## Resource Sizes Memory, disk, bandwidth, and backup sizes are returned in **bytes**. For example: * `2147483648` = 2 GB * `42949672960` = 40 GB * `1073741824000` = 1 TB # List Plans Source: https://docs.cloudblast.io/api-reference/plans/list-plans GET /plans Returns all non-hidden plans sorted by monthly price. Optionally filter by `location_id` to only return plans available at a specific location (global plans + location-specific plans). When `location_id` is provided, each plan includes an `available` field indicating whether it is currently in stock. If a location that is not open for ordering is specified, an empty list is returned. # Add Firewall Rule Source: https://docs.cloudblast.io/api-reference/security-groups/add-rule POST /security-groups/{id}/rules Adds a firewall rule to a security group. If the group is already deployed to Proxmox, the rule will be synced automatically. # Attach Server Source: https://docs.cloudblast.io/api-reference/security-groups/attach-server POST /security-groups/{id}/servers/attach Attaches a server to a security group. The firewall rules will be deployed to the server's node automatically. # Create Security Group Source: https://docs.cloudblast.io/api-reference/security-groups/create-group POST /security-groups Creates a new security group. Add firewall rules and attach servers after creation. # Delete Security Group Source: https://docs.cloudblast.io/api-reference/security-groups/delete-group DELETE /security-groups/{id} Deletes a security group. All servers must be detached first. # Delete Firewall Rule Source: https://docs.cloudblast.io/api-reference/security-groups/delete-rule DELETE /security-groups/{id}/rules/{rule_id} Removes a firewall rule from a security group. # Detach Server Source: https://docs.cloudblast.io/api-reference/security-groups/detach-server DELETE /security-groups/{id}/servers/detach Detaches a server from a security group. # Get Security Group Source: https://docs.cloudblast.io/api-reference/security-groups/get-group GET /security-groups/{id} Returns a security group with its firewall rules and attached servers. # List Security Groups Source: https://docs.cloudblast.io/api-reference/security-groups/list-groups GET /security-groups Returns all security groups owned by your account. # Add Extra IPs Source: https://docs.cloudblast.io/api-reference/server-ips/add-ips POST /servers/{server}/ips Allocates additional IP addresses to the server from the available pool on the same node. # List Server IPs Source: https://docs.cloudblast.io/api-reference/server-ips/list-ips GET /servers/{server}/ips Returns all IPv4 and IPv6 addresses assigned to the server. # Remove an IP Source: https://docs.cloudblast.io/api-reference/server-ips/remove-ip DELETE /servers/{server}/ips/{address} Removes a secondary IP address from the server. You cannot remove the primary IPv4 or IPv6 address. # Set Reverse DNS Source: https://docs.cloudblast.io/api-reference/server-ips/set-rdns PUT /servers/{server}/ips/{address}/rdns Sets the reverse DNS (PTR) record for an IP address. # Create Server Source: https://docs.cloudblast.io/api-reference/servers/create-server POST /servers Creates a new server. The system automatically selects the best node in the given location based on available resources, template availability, and IP availability. Use template slugs (from `GET /locations/{id}/templates`) instead of UUIDs. To install saved SSH keys during provisioning, pass their IDs in `ssh_key_ids`. Obtain key IDs from `GET /ssh-keys`. A root password is still generated and can be fetched after installation with `GET /servers/{server}/credentials`. The server will be in `installing` status while being provisioned. # Delete Server Source: https://docs.cloudblast.io/api-reference/servers/delete-server DELETE /servers/{server} Permanently deletes a server and releases its IP addresses back to the pool. This action is irreversible. # Get Server Credentials Source: https://docs.cloudblast.io/api-reference/servers/get-credentials GET /servers/{server}/credentials Returns the server password status and the decoded root password once installation is complete. While the server is still installing, `root_password` will be null and `password_status` will be `generating`. # Get Server Details Source: https://docs.cloudblast.io/api-reference/servers/get-server GET /servers/{server} Returns full details for a server including root password, plan info, and operating system. The server can be identified by either its full UUID or the 8-character short UUID. # Get Real-Time Status Source: https://docs.cloudblast.io/api-reference/servers/get-status GET /servers/{server}/status Returns the real-time status of the server from the hypervisor (e.g., `running`, `stopped`). Also includes the application-level status (e.g., `installing`, `suspended`). # List Servers Source: https://docs.cloudblast.io/api-reference/servers/list-servers GET /servers Returns a paginated list of your servers. Optionally filter by status. # Send Power Action Source: https://docs.cloudblast.io/api-reference/servers/power-action POST /servers/{server}/actions Sends a power action to the server (start, shutdown, restart, kill, etc.). # Reinstall OS Source: https://docs.cloudblast.io/api-reference/servers/reinstall POST /servers/{server}/reinstall Reinstalls the server with a new operating system template. All data on the server will be lost. You may optionally provide a new root password and install saved SSH keys by passing their IDs in `ssh_key_ids`. # Rename Server Source: https://docs.cloudblast.io/api-reference/servers/rename PATCH /servers/{server}/rename Updates the display name of a server. # Add SSH Key Source: https://docs.cloudblast.io/api-reference/ssh-keys/add-ssh-key POST /ssh-keys Adds a new SSH public key to your account. # Delete SSH Key Source: https://docs.cloudblast.io/api-reference/ssh-keys/delete-ssh-key DELETE /ssh-keys/{id} Removes an SSH key from your account. # List SSH Keys Source: https://docs.cloudblast.io/api-reference/ssh-keys/list-ssh-keys GET /ssh-keys Returns all SSH keys associated with your account. # Authentication Source: https://docs.cloudblast.io/authentication How to authenticate with the CloudBlast API # Authentication All API requests require a **Bearer token** in the `Authorization` header. ```bash theme={null} Authorization: Bearer YOUR_API_TOKEN ``` ## Getting Your API Token 1. Log in to the [CloudBlast Panel](https://console.cloudblast.io) 2. Go to **Account Settings** > **API** 3. Copy your API token ## IP Whitelisting If you've configured an IP whitelist in your account settings (`apiAddress` field), only requests from that IP address will be accepted. Requests from other IPs will receive a `403` error: ```json theme={null} { "error": { "code": "IP_NOT_ALLOWED", "message": "Your IP address is not whitelisted for API access." } } ``` To allow requests from any IP, leave the IP whitelist field empty. ## Example Request ```bash cURL theme={null} curl -H "Authorization: Bearer cb_live_abc123..." \ https://console.cloudblast.io/api/v2/account ``` ```python Python theme={null} import requests headers = {"Authorization": "Bearer cb_live_abc123..."} response = requests.get( "https://console.cloudblast.io/api/v2/account", headers=headers ) print(response.json()) ``` ```javascript Node.js theme={null} const response = await fetch("https://console.cloudblast.io/api/v2/account", { headers: { Authorization: "Bearer cb_live_abc123...", }, }); const data = await response.json(); console.log(data); ``` ```php PHP theme={null} $ch = curl_init("https://console.cloudblast.io/api/v2/account"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Authorization: Bearer cb_live_abc123..." ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = json_decode(curl_exec($ch)); ``` ```go Go theme={null} req, _ := http.NewRequest("GET", "https://console.cloudblast.io/api/v2/account", nil) req.Header.Set("Authorization", "Bearer cb_live_abc123...") resp, _ := http.DefaultClient.Do(req) ``` ## Error Responses | Status | Code | Description | | ------ | ----------------- | ----------------------------------------- | | `401` | `UNAUTHENTICATED` | Missing or invalid `Authorization` header | | `401` | `INVALID_TOKEN` | The API token doesn't match any account | | `403` | `ACCOUNT_BANNED` | Your account has been suspended | | `403` | `IP_NOT_ALLOWED` | Request IP is not in your whitelist | # CLI Source: https://docs.cloudblast.io/cli/overview Manage CloudBlast servers, backups, IPs, and security groups from the terminal # CloudBlast CLI The `cloudblast` CLI wraps the full CloudBlast API v2 — everything you can do in the console or via the API, you can do from your terminal or scripts. All output is JSON, so it composes with `jq` and works well in automation and cron jobs. ## Installation ```bash theme={null} npm install -g @cloudblast/cli ``` Or run without installing: ```bash theme={null} npx @cloudblast/cli servers list ``` ## Authentication Get an API token from [Account Settings](https://console.cloudblast.io/settings/api), then export it: ```bash theme={null} export CLOUDBLAST_API_TOKEN=your-api-token ``` You can also pass `--token your-api-token` on any command. | Variable | Required | Description | | ---------------------- | -------- | -------------------------------------------------------------- | | `CLOUDBLAST_API_TOKEN` | Yes | Your CloudBlast API token | | `CLOUDBLAST_API_URL` | No | API base URL (default: `https://console.cloudblast.io/api/v2`) | ## Quick Examples ```bash theme={null} # List your servers cloudblast servers list # Create an Ubuntu 24.04 server cloudblast servers create --plan 1 --location 2 --template ubuntu-24-04 --hostname web-01 # Restart a server cloudblast servers power abc12345 restart # Take a backup cloudblast backups create abc12345 nightly --mode snapshot # Open SSH on a security group cloudblast security-groups add-rule 5 --type inbound --action ACCEPT --protocol tcp --destination-port 22 ``` ## Command Reference ### Account | Command | Description | | ------------------------------------------ | -------------------------------------------------- | | `cloudblast account get` | Account info (name, email, credit balance, limits) | | `cloudblast account usage` | Resource usage across all servers vs your limits | | `cloudblast account invoices [--page ]` | List invoices | ### Plans & Locations | Command | Description | | ---------------------------------------------- | ---------------------------------------- | | `cloudblast plans list [--page ]` | List server plans with pricing and specs | | `cloudblast locations list` | List data center locations | | `cloudblast locations templates ` | List OS templates for a location | ### SSH Keys | Command | Description | | -------------------------------------------------- | ---------------------------------------------- | | `cloudblast ssh-keys list` | List SSH keys | | `cloudblast ssh-keys add --key-file ` | Add a key from a file (or inline with `--key`) | | `cloudblast ssh-keys delete ` | Remove an SSH key | ### Servers | Command | Description | | --------------------------------------------------------------------------------------------- | ------------------------------------------------------ | | `cloudblast servers list [--page ] [--status ]` | List servers | | `cloudblast servers create --plan --location --template [--hostname ]` | Create a server | | `cloudblast servers get ` | Full server details | | `cloudblast servers credentials ` | Login credentials | | `cloudblast servers status ` | Real-time hypervisor status | | `cloudblast servers power ` | start, shutdown, restart, reset, kill, suspend, resume | | `cloudblast servers rename ` | Rename a server | | `cloudblast servers reinstall --template [--password ] --yes` | Reinstall (all data lost) | | `cloudblast servers delete --yes` | Permanently delete a server | ### Server IPs | Command | Description | | ------------------------------------------------------- | ------------------------ | | `cloudblast ips list ` | List IPv4/IPv6 addresses | | `cloudblast ips add --count ` | Allocate additional IPs | | `cloudblast ips remove
` | Remove a secondary IP | | `cloudblast ips set-rdns
` | Set reverse DNS (PTR) | ### Backups | Command | Description | | ---------------------------------------------------------------------------------- | --------------------- | | `cloudblast backups list [--page ]` | List backups | | `cloudblast backups create [--mode ] [--compression ]` | Create a backup | | `cloudblast backups restore --yes` | Restore from a backup | | `cloudblast backups delete --yes` | Delete a backup | ### Security Groups (Firewall) | Command | Description | | -------------------------------------------------------------------------------------------------------- | ------------------------------------- | | `cloudblast security-groups list` | List security groups | | `cloudblast security-groups create [--description ]` | Create a group | | `cloudblast security-groups get ` | Group with rules and attached servers | | `cloudblast security-groups delete ` | Delete a group | | `cloudblast security-groups add-rule --type --action --protocol [...]` | Add a firewall rule | | `cloudblast security-groups delete-rule ` | Remove a rule | | `cloudblast security-groups attach ` | Attach a server | | `cloudblast security-groups detach ` | Detach a server | ## Destructive Operations Commands that destroy data — `servers delete`, `servers reinstall`, `backups restore`, and `backups delete` — refuse to run without the `--yes` (`-y`) flag, so scripts must opt in explicitly. ## Scripting Every command prints JSON and exits non-zero on failure: ```bash theme={null} # Get the primary IP of each server cloudblast servers list | jq -r '.data[].primary_ip' # Nightly backup from cron cloudblast backups create abc12345 "nightly-$(date +%F)" --mode snapshot ``` # Errors Source: https://docs.cloudblast.io/errors Error handling and status codes # Error Handling All errors follow a consistent format: ```json theme={null} { "error": { "code": "ERROR_CODE", "message": "Human-readable description of what went wrong." } } ``` Validation errors include a `details` object with per-field messages: ```json theme={null} { "error": { "code": "VALIDATION_ERROR", "message": "The given data was invalid.", "details": { "plan_id": ["The plan id field is required."], "template_slug": ["The template slug field is required."] } } } ``` ## HTTP Status Codes | Status | Meaning | | ------ | --------------------------------------------------------- | | `200` | Success | | `201` | Resource created | | `204` | Success with no response body (delete operations) | | `400` | Bad request — check the error message | | `401` | Unauthenticated — invalid or missing token | | `402` | Payment required — overdue invoices | | `403` | Forbidden — account banned or IP not whitelisted | | `404` | Resource not found | | `409` | Conflict — server is in a state that prevents this action | | `422` | Validation error — check the `details` object | | `429` | Rate limited — too many requests | | `500` | Internal server error | ## Common Error Codes ### Authentication | Code | Description | | ----------------- | -------------------------------------- | | `UNAUTHENTICATED` | Missing `Authorization: Bearer` header | | `INVALID_TOKEN` | API token not found | | `ACCOUNT_BANNED` | Account is suspended | | `IP_NOT_ALLOWED` | Request IP not in whitelist | ### Server Operations | Code | Description | | ------------------------- | -------------------------------------------------------- | | `SERVER_STATUS_CONFLICT` | Server is busy (installing, restoring, etc.) | | `NO_AVAILABLE_NODE` | No node has capacity + matching template + available IPs | | `RESOURCE_LIMIT_EXCEEDED` | CPU or RAM limit reached | | `OVERDUE_INVOICE` | Must pay overdue invoices first | | `PLAN_UNAVAILABLE` | Plan is hidden | | `PLAN_OUT_OF_STOCK` | Plan stock is depleted | | `NEW_USERS_ONLY` | Plan restricted to first-time users | | `TEMPLATE_NOT_FOUND` | Template slug not available on the server's node | ### IP Operations | Code | Description | | ----------------------- | ------------------------------------------- | | `IP_LIMIT_REACHED` | Account IP limit reached | | `SERVER_IP_LIMIT` | Per-server IP limit reached | | `NO_IPS_AVAILABLE` | No IPs available in the pool | | `CANNOT_REMOVE_PRIMARY` | Cannot remove the primary IPv4/IPv6 | | `RATE_LIMITED` | Too many IP add/remove operations this week | ### Security Groups | Code | Description | | ------------------ | ----------------------------------------------- | | `HAS_SERVERS` | Must detach all servers before deleting a group | | `ALREADY_ATTACHED` | Server is already in this security group | # Introduction Source: https://docs.cloudblast.io/introduction Build on CloudBlast with the V2 REST API # CloudBlast API The CloudBlast API lets you manage your cloud infrastructure programmatically. Create servers, manage IP addresses, configure firewalls, and more — all through a simple REST interface. ## Base URL ``` https://console.cloudblast.io/api/v2 ``` ## Key Concepts Templates are identified by **slugs** (e.g., `ubuntu-24.04`) instead of UUIDs. Slugs work across all nodes in a location — you don't need to know which node your server will land on. When creating a server, the API automatically selects the best node based on available resources, template availability, and IP availability. Servers can be identified by their full **UUID** (36 chars) or **short UUID** (8 chars) in all API endpoints. All responses use `{"data": ...}` for success and `{"error": {"code": "...", "message": "..."}}` for errors. ## Quick Start 1. **Get your API key** from [Account Settings](https://console.cloudblast.io/settings/api) 2. **Pick a location and template:** ```bash theme={null} # List locations curl -H "Authorization: Bearer YOUR_TOKEN" \ https://console.cloudblast.io/api/v2/locations # List templates for a location curl -H "Authorization: Bearer YOUR_TOKEN" \ https://console.cloudblast.io/api/v2/locations/1/templates ``` 3. **Create a server:** ```bash theme={null} curl -X POST https://console.cloudblast.io/api/v2/servers \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "plan_id": 1, "location_id": 1, "template_slug": "ubuntu-24.04", "hostname": "my-server.example.com", "ssh_key_ids": [12] }' ``` `ssh_key_ids` is optional. Use `GET /ssh-keys` to find the IDs of saved keys you want installed during provisioning. The response includes the server details, root password, and IP addresses. ## Typical Workflow ```mermaid theme={null} sequenceDiagram participant You participant API You->>API: GET /plans API-->>You: Available plans You->>API: GET /locations API-->>You: Available locations You->>API: GET /locations/1/templates API-->>You: Template slugs (ubuntu-24.04, debian-12, ...) You->>API: POST /servers API-->>You: Server details (installing...) You->>API: GET /servers/{uuid}/status API-->>You: { state: "running" } ``` # Getting Started Source: https://docs.cloudblast.io/mcp/overview Control CloudBlast from AI assistants like Claude, Cursor, and Windsurf # MCP Server The CloudBlast MCP (Model Context Protocol) server lets AI assistants manage your cloud infrastructure directly. Create servers, configure firewalls, manage backups, and more — all through natural language. Use CloudBlast tools directly in Claude Desktop conversations. Manage infrastructure from your AI-powered code editor. Full server management from the Claude Code CLI. Works with any client that supports the Model Context Protocol. ## Connection Options There are two ways to connect. Both require a CloudBlast API token — get yours from [Account Settings](https://console.cloudblast.io/settings/api). Nothing to install. Connect any remote-capable MCP client to `https://mcp.cloudblast.io` and authenticate with your API token. Run the server locally with `npx @cloudblast/mcp-server` over stdio. Works with every MCP client. ## Hosted Server The hosted server supports the modern Streamable HTTP transport: | Transport | Endpoint | | --------------- | ------------------------------- | | Streamable HTTP | `https://mcp.cloudblast.io/mcp` | Authenticate every request with your API token in a header — either `Authorization: Bearer ` or `X-API-Key: `. If your client only supports the legacy SSE transport, use the [local npm install](#local-installation-npm) over stdio instead. ### Claude Code ```bash theme={null} claude mcp add --transport http cloudblast https://mcp.cloudblast.io/mcp --header "Authorization: Bearer your-api-token" ``` ### Cursor Add this to `.cursor/mcp.json`: ```json theme={null} { "mcpServers": { "cloudblast": { "url": "https://mcp.cloudblast.io/mcp", "headers": { "Authorization": "Bearer your-api-token" } } } } ``` ### Other Remote Clients Any client that supports remote MCP servers can connect with a config like: ```json theme={null} { "mcpServers": { "cloudblast": { "type": "http", "url": "https://mcp.cloudblast.io/mcp", "headers": { "Authorization": "Bearer your-api-token" } } } } ``` If your client only supports the older SSE transport, use the [local npm install](#local-installation-npm) over stdio instead. ## Local Installation (npm) Install the MCP server from npm: ```bash theme={null} npm install -g @cloudblast/mcp-server ``` Or run directly with npx (no install needed): ```bash theme={null} npx @cloudblast/mcp-server ``` ### Configuration The local server reads these environment variables: | Variable | Required | Description | | ---------------------- | -------- | -------------------------------------------------------------- | | `CLOUDBLAST_API_TOKEN` | Yes | Your CloudBlast API token | | `CLOUDBLAST_API_URL` | No | API base URL (default: `https://console.cloudblast.io/api/v2`) | ### Claude Desktop Add this to your Claude Desktop config file: * **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` * **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` ```json theme={null} { "mcpServers": { "cloudblast": { "command": "npx", "args": ["-y", "@cloudblast/mcp-server"], "env": { "CLOUDBLAST_API_TOKEN": "your-api-token" } } } } ``` ### Cursor Add this to your Cursor MCP settings (`.cursor/mcp.json`): ```json theme={null} { "mcpServers": { "cloudblast": { "command": "npx", "args": ["-y", "@cloudblast/mcp-server"], "env": { "CLOUDBLAST_API_TOKEN": "your-api-token" } } } } ``` ### Claude Code Run this command to add the MCP server to Claude Code: ```bash theme={null} claude mcp add cloudblast -- npx -y @cloudblast/mcp-server ``` Then set your API token as an environment variable: ```bash theme={null} export CLOUDBLAST_API_TOKEN=your-api-token ``` ## Available Tools Once connected, your AI assistant will have access to the following tools: ### Account | Tool | Description | | ------------------- | --------------------------------------------------------------- | | `get_account` | Get account info (name, email, credit balance, resource limits) | | `get_account_usage` | Get resource usage across all servers vs your limits | | `list_invoices` | List invoices (paginated) | ### Plans & Locations | Tool | Description | | ------------------------- | -------------------------------------------------- | | `list_plans` | List available server plans with pricing and specs | | `list_locations` | List all available data center locations | | `list_location_templates` | List OS templates for a location | ### SSH Keys | Tool | Description | | ---------------- | --------------------------------- | | `list_ssh_keys` | List all SSH keys on your account | | `create_ssh_key` | Add an SSH public key | | `delete_ssh_key` | Remove an SSH key | ### Servers | Tool | Description | | --------------------- | ---------------------------------------------------------------------- | | `list_servers` | List servers (paginated, filterable by status) | | `create_server` | Create a new server | | `get_server` | Get full server details including root password | | `delete_server` | Permanently delete a server | | `server_power_action` | Power actions (start, shutdown, restart, reset, kill, suspend, resume) | | `get_server_status` | Real-time hypervisor status | | `reinstall_server` | Reinstall with a new OS template | | `rename_server` | Rename a server | ### Server IPs | Tool | Description | | ------------------ | --------------------------------- | | `list_server_ips` | List all IPs assigned to a server | | `add_server_ips` | Allocate additional IPs | | `remove_server_ip` | Remove a secondary IP | | `set_rdns` | Set reverse DNS for an IP | ### Backups | Tool | Description | | ---------------- | ------------------------------------------------- | | `list_backups` | List backups for a server | | `create_backup` | Create a backup (snapshot, suspend, or kill mode) | | `restore_backup` | Restore a server from a backup | | `delete_backup` | Delete a backup | ### Security Groups (Firewall) | Tool | Description | | ----------------------------------- | ---------------------------------------------------- | | `list_security_groups` | List all security groups | | `create_security_group` | Create a new security group | | `get_security_group` | Get a security group with rules and attached servers | | `delete_security_group` | Delete a security group | | `create_firewall_rule` | Add a firewall rule | | `delete_firewall_rule` | Remove a firewall rule | | `attach_server_to_security_group` | Attach a server to a security group | | `detach_server_from_security_group` | Detach a server from a security group | ## Example Prompts Once the MCP server is connected, you can ask your AI assistant things like: * *"List all my servers and their status"* * *"Create a new Ubuntu 24.04 server in the US location"* * *"Take a backup of server abc12345"* * *"Add a firewall rule to allow SSH (port 22) on my web security group"* * *"What's my current resource usage?"* * *"Restart server abc12345"*