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.
| Tool | What it does |
|---|---|
hostd_list_clusters | Zones and hourly prices |
hostd_list_projects | Projects this key can access |
hostd_get_project | One project: its limits and hourly prices |
hostd_create_project | Create a project, after you agree; the key must be allowed to create projects |
hostd_get_account_usage | Account CPU, RAM, and disk used against the limits |
hostd_list_os_images | OS images available for new VMs in a project |
hostd_list_ssh_keys | SSH public keys on the account |
hostd_create_ssh_key | Add an SSH public key |
hostd_list_vms | VMs in a project: status, size, and current load |
hostd_get_vm | One VM: status, addresses, notes, and the cloud-init user |
hostd_get_vm_metrics | CPU, RAM, network, and disk over an hour, a day, a week, or a month |
hostd_list_project_tasks | Recent tasks in a project |
hostd_create_vm | Create a VM, after you agree |
hostd_wait_vm_ready | Wait until a VM is running and return its addresses |
hostd_power_vm | Start, shut down, stop, reboot, or reset |
hostd_resize_vm | Change vCPU, RAM, disk, or CPU class, after you agree |
hostd_reinstall_vm | Reinstall the OS of a stopped VM, after you agree |
hostd_enable_rescue | Boot a stopped Linux VM from a temporary copy of its OS, after you agree. High availability must be off |
hostd_disable_rescue | Remove that temporary disk and boot the system disk, after you agree |
hostd_delete_vm | Delete a stopped VM and its backups; needs Full, and your agreement |
hostd_list_vm_snapshots | The snapshot of a VM |
hostd_manage_vm_snapshot | Create, delete, or roll back that snapshot |
hostd_list_vm_backups | Backups of a VM |
hostd_create_vm_backup | Back up a VM now |
hostd_restore_vm_backup | Restore a backup onto a stopped VM, after you agree |
hostd_list_backup_jobs | Scheduled backup jobs, and VMs in none |
hostd_manage_backup_job | Create, change, or delete a backup job, or add and remove VMs |
hostd_get_project_ha | Which VMs have high availability, and the placement rules |
hostd_set_vm_ha | Turn high availability on or off for a VM |
hostd_manage_ha_rule | Create, change, or delete a placement rule |
hostd_get_vm_firewall | A VM's firewall options, rules, and attached groups |
hostd_set_vm_firewall_options | Turn the VM firewall on or off and set its policies |
hostd_manage_vm_firewall_rules | Add, change, delete, or reorder a VM's firewall rules |
hostd_list_ip_sets | IP sets, their members, and where they are used |
hostd_manage_ip_set | Create an IP set, change its comment, or delete it |
hostd_manage_ip_set_members | Add or remove addresses in an IP set |
hostd_list_security_groups | Security groups, their rules, and which VMs use them |
hostd_manage_security_group | Create, rename, or delete a security group |
hostd_manage_security_group_rules | Add, change, delete, or reorder rules in a security group |
hostd_list_private_networks | Private networks, or the free addresses of one of them |
hostd_create_private_network | Create a private network, after you agree |
hostd_manage_vm_network | Add 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_ips | Public addresses reserved in the project |
hostd_update_ptr | Set the PTR record of a public address |
hostd_get_current_agent_ip | The 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.