MCP server

Manage hostd Public Cloud from an AI agent (Cursor, Claude Code) over the Model Context Protocol.

The hostd MCP server lets an AI agent work with your Public Cloud on your behalf: list projects and OS images, add SSH keys, create and manage VMs, configure the firewall, backups, and high availability, and set PTR records. It uses the same API and the same API key.

Endpoint: https://mcp.hostd.cloud/mcp (Streamable HTTP).

Connect

Create an API key in the portal under Settings → API Keys. A separate key for the agent is a good default: you can delete it at any time without affecting your other integrations.

Cursor – add to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "hostd": {
      "url": "https://mcp.hostd.cloud/mcp",
      "headers": { "Authorization": "Bearer <your-api-key>" }
    }
  }
}

Claude Code:

claude mcp add --transport http hostd https://mcp.hostd.cloud/mcp \
  --header "Authorization: Bearer <your-api-key>"

Access

The agent works with your API key, so it has the same access as the key: for each project Read, Write (everything except deleting), or Full (also deletes VMs, the project, and public IPs), plus the SSH key access you chose, never above your role in a project (details). Projects outside the key's access are hidden from the agent; with Read it can only read. Deleting a VM (together with all its backups) needs Full.

Before risky actions – deleting a VM, reinstalling, rescue mode, restoring a backup, rolling back a snapshot, resizing, or changing the firewall – the agent shows you what will happen and waits for your approval.

Example

In the project web, create a VM named git. Install Docker and run Gitea. On the firewall, allow HTTP and HTTPS from anywhere, and SSH only from the security group management.

The agent finds the project, your SSH key, and that security group. It proposes an image and a size that fits Gitea, with the hourly price, and creates the VM only after you agree.

It waits until the VM is running, connects over SSH from your computer, and installs Docker and Gitea. hostd never receives the private key. A password you did not choose is stored in the VM notes in the portal and is not printed in the chat.

It then allows HTTP and HTTPS, attaches management so SSH follows that group's rules, and asks again before turning the firewall on and dropping every other inbound connection.

Tools

Forty-five tools.

ToolWhat it does
hostd_list_clustersZones and hourly prices
hostd_list_projectsProjects this key can access
hostd_get_projectOne project: its limits and hourly prices
hostd_create_projectCreate a project, after you agree; the key must be allowed to create projects
hostd_get_account_usageAccount CPU, RAM, and disk used against the limits
hostd_list_os_imagesOS images available for new VMs in a project
hostd_list_ssh_keysSSH public keys on the account
hostd_create_ssh_keyAdd an SSH public key
hostd_list_vmsVMs in a project: status, size, and current load
hostd_get_vmOne VM: status, addresses, notes, and the cloud-init user
hostd_get_vm_metricsCPU, RAM, network, and disk over an hour, a day, a week, or a month
hostd_list_project_tasksRecent tasks in a project
hostd_create_vmCreate a VM, after you agree
hostd_wait_vm_readyWait until a VM is running and return its addresses
hostd_power_vmStart, shut down, stop, reboot, or reset
hostd_resize_vmChange vCPU, RAM, disk, or CPU class, after you agree
hostd_reinstall_vmReinstall the OS of a stopped VM, after you agree
hostd_enable_rescueBoot a stopped Linux VM from a temporary copy of its OS, after you agree. High availability must be off
hostd_disable_rescueRemove that temporary disk and boot the system disk, after you agree
hostd_delete_vmDelete a stopped VM and its backups; needs Full, and your agreement
hostd_list_vm_snapshotsThe snapshot of a VM
hostd_manage_vm_snapshotCreate, delete, or roll back that snapshot
hostd_list_vm_backupsBackups of a VM
hostd_create_vm_backupBack up a VM now
hostd_restore_vm_backupRestore a backup onto a stopped VM, after you agree
hostd_list_backup_jobsScheduled backup jobs, and VMs in none
hostd_manage_backup_jobCreate, change, or delete a backup job, or add and remove VMs
hostd_get_project_haWhich VMs have high availability, and the placement rules
hostd_set_vm_haTurn high availability on or off for a VM
hostd_manage_ha_ruleCreate, change, or delete a placement rule
hostd_get_vm_firewallA VM's firewall options, rules, and attached groups
hostd_set_vm_firewall_optionsTurn the VM firewall on or off and set its policies
hostd_manage_vm_firewall_rulesAdd, change, delete, or reorder a VM's firewall rules
hostd_list_ip_setsIP sets, their members, and where they are used
hostd_manage_ip_setCreate an IP set, change its comment, or delete it
hostd_manage_ip_set_membersAdd or remove addresses in an IP set
hostd_list_security_groupsSecurity groups, their rules, and which VMs use them
hostd_manage_security_groupCreate, rename, or delete a security group
hostd_manage_security_group_rulesAdd, change, delete, or reorder rules in a security group
hostd_list_private_networksPrivate networks, or the free addresses of one of them
hostd_create_private_networkCreate a private network, after you agree
hostd_manage_vm_networkAdd or remove a private-network interface of a VM, or turn its public network on or off; removing and public-network changes only after you agree
hostd_list_public_ipsPublic addresses reserved in the project
hostd_update_ptrSet the PTR record of a public address
hostd_get_current_agent_ipThe public address this MCP connection comes from

Limits

The MCP server follows the API limits. It also paces the agent: repeated calls wait briefly instead of failing, and the agent gets the retry time when a limit is reached.

On this page