Skip to main content
Glama

VPS.org MCP Server

An MCP (Model Context Protocol) server that connects AI assistants to the VPS.org API. Manage VPS servers, domains, DNS records, SSH keys, and more through natural language.

Install

# Recommended: run directly with uvx (no install needed)
uvx vps-mcp

# Or install with pip
pip install vps-mcp

Related MCP server: whm-mcp-server

Get Your API Token

  1. Log in at admin.vps.org

  2. Go to Account → Developers (direct link)

  3. Create a new API token

  4. Copy the token (starts with vps_)

Configuration

Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "vps": {
      "command": "uvx",
      "args": ["vps-mcp"],
      "env": {
        "VPS_API_TOKEN": "vps_your_token_here"
      }
    }
  }
}

Claude Code

claude mcp add vps -- uvx vps-mcp

Then set the environment variable before running Claude Code:

export VPS_API_TOKEN="vps_your_token_here"

Custom API URL

If you need to point to a different API endpoint:

{
  "env": {
    "VPS_API_TOKEN": "vps_your_token_here",
    "VPS_API_URL": "https://admin.vps.org/api/v1"
  }
}

Tools

Servers

Tool

Description

list_servers

List all VPS servers in your account

get_server

Get detailed info about a specific server

create_server

Create a new VPS server

delete_server

Permanently delete a server

server_power

Start, stop, restart, or hard-stop a server

create_backup

Create a backup of a server

create_snapshot

Create a snapshot of a server

resize_server

Resize a server to a different plan

Domains

Tool

Description

list_domains

List all domains in your account

get_domain

Get detailed info about a domain

search_domains

Search for domain availability

update_nameservers

Update nameservers for a domain

renew_domain

Renew a domain registration

DNS

Tool

Description

list_dns_zones

List DNS zones (optionally filter by domain)

get_dns_zone

Get a DNS zone with all records

create_dns_zone

Create a new DNS zone

delete_dns_zone

Delete a DNS zone and all its records

create_dns_record

Create a DNS record (A, AAAA, CNAME, MX, TXT, etc.)

update_dns_record

Update an existing DNS record

delete_dns_record

Delete a DNS record

Info

Tool

Description

list_plans

List available VPS plans with pricing

list_locations

List available data center locations

list_operating_systems

List available OS options

SSH Keys

Tool

Description

list_ssh_keys

List all SSH keys in your account

add_ssh_key

Add a new SSH public key

delete_ssh_key

Delete an SSH key

Required API Permissions

Your API token needs the following permissions depending on which tools you use:

Tools

Required Permission

Server tools

servers:*

Domain tools

domains:*

DNS tools

dns:*

Plan/Location/OS tools

servers:read

SSH Key tools

ssh_keys:*

All tools

*:*

Examples

Once configured, you can ask your AI assistant things like:

  • "List my VPS servers"

  • "Create a new Ubuntu server in Amsterdam with the starter plan"

  • "Stop server abc-123"

  • "Add an A record for api.example.com pointing to 1.2.3.4"

  • "What plans are available?"

  • "Add my SSH key to the account"

Development

# Clone the repo
git clone https://github.com/vpsdotorg/vps-mcp.git
cd vps-mcp

# Install in development mode
uv sync

# Run the server locally
VPS_API_TOKEN=your_token uv run vps-mcp

License

MIT

Available Tools

26 tools
add_ssh_keyA

Add a new SSH public key to your account.

Args: name: A label for the key (e.g. "work-laptop") public_key: The SSH public key (e.g. "ssh-ed25519 AAAA...")

Inputs: name (required), public_key (required). Returns: result

create_backupC

Create a backup of a VPS server.

Args: server_uuid: The UUID of the server to back up

Inputs: server_uuid (required). Returns: result

create_dns_recordA

Create a DNS record in a zone.

Args: zone_uuid: The UUID of the DNS zone record_type: Record type (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA) name: Record name (e.g. "@" for root, "www", "mail") value: Record value (e.g. IP address, hostname) ttl: Time to live in seconds (default 3600) priority: Priority for MX/SRV records

Inputs: zone_uuid (required), record_type (required), name (required), value (required), +2 more. Returns: result

create_dns_zoneB

Create a new DNS zone for a domain.

Args: domain: The domain name (e.g. "example.com")

Inputs: domain (required). Returns: result

create_serverA

Create a new VPS server.

Args: hostname: Hostname for the server (e.g. "my-server") location_id: Location ID (use list_locations to find available locations) plan_uuid: UUID of the plan (use list_plans to find available plans) os_version_uuid: UUID of the OS version (use list_operating_systems to find options) ssh_key_ids: Optional list of SSH key UUIDs to install on the server

Inputs: hostname (required), location_id (required), plan_uuid (required), os_version_uuid (required), +1 more. Returns: result

create_snapshotC

Create a snapshot of a VPS server.

Args: server_uuid: The UUID of the server to snapshot label: Optional label for the snapshot

Inputs: server_uuid (required), label. Returns: result

delete_dns_recordC

Delete a DNS record.

Args: record_uuid: The UUID of the DNS record to delete

Inputs: record_uuid (required). Returns: result

delete_dns_zoneB

Delete a DNS zone and all its records.

Args: zone_uuid: The UUID of the DNS zone to delete

Inputs: zone_uuid (required). Returns: result

delete_serverB

Permanently delete a VPS server. This action is irreversible.

Args: server_uuid: The UUID of the server to delete

Inputs: server_uuid (required). Returns: result

delete_ssh_keyB

Delete an SSH key from your account.

Args: ssh_key_uuid: The UUID of the SSH key to delete

Inputs: ssh_key_uuid (required). Returns: result

get_dns_zoneB

Get a DNS zone with all its records.

Args: zone_uuid: The UUID of the DNS zone

Inputs: zone_uuid (required). Returns: result

get_domainB

Get detailed information about a specific domain.

Args: domain_uuid: The UUID of the domain

Inputs: domain_uuid (required). Returns: result

get_serverB

Get detailed information about a specific VPS server.

Args: server_uuid: The UUID of the server

Inputs: server_uuid (required). Returns: result

list_dns_zonesB

List DNS zones, optionally filtered by domain name.

Args: domain: Optional domain name to filter by

Inputs: domain. Returns: result

list_domainsA

List all domains in your account.

Args: page: Page number (default 1)

Inputs: page. Returns: result

list_locationsB

List all available data center locations.

Inputs: no named parameters. Returns: result

list_operating_systemsA

List all available operating systems and their versions.

Inputs: no named parameters. Returns: result

list_plansA

List all available VPS plans with pricing, specs, and UUIDs.

Inputs: no named parameters. Returns: result

list_serversA

List all VPS servers in your account.

Args: page: Page number (default 1) page_size: Results per page (default 20, max 100)

Inputs: page, page_size. Returns: result

list_ssh_keysA

List all SSH keys in your account.

Inputs: no named parameters. Returns: result

renew_domainC

Renew a domain registration.

Args: domain_uuid: The UUID of the domain to renew years: Number of years to renew for (default 1)

Inputs: domain_uuid (required), years. Returns: result

resize_serverA

Resize a VPS server to a different plan. The server may be restarted.

Args: server_uuid: The UUID of the server to resize new_plan_uuid: The UUID of the new plan (use list_plans to see options)

Inputs: server_uuid (required), new_plan_uuid (required). Returns: result

search_domainsB

Search for domain availability.

Args: domain: The domain name to search for (e.g. "example.com")

Inputs: domain (required). Returns: result

server_powerA

Control the power state of a VPS server.

Args: server_uuid: The UUID of the server action: Power action — one of: "start", "stop", "restart", "hard_stop"

Inputs: server_uuid (required), action (required). Returns: result

update_dns_recordB

Update an existing DNS record.

Args: record_uuid: The UUID of the DNS record to update record_type: New record type name: New record name value: New record value ttl: New TTL in seconds priority: New priority (MX/SRV records)

Inputs: record_uuid (required), record_type, name, value, +2 more. Returns: result

update_nameserversA

Update the nameservers for a domain.

Args: domain_uuid: The UUID of the domain ns1: Primary nameserver (required) ns2: Secondary nameserver ns3: Third nameserver ns4: Fourth nameserver

Inputs: domain_uuid (required), ns1 (required), ns2, ns3, +1 more. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 26 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action (e.g., create_server vs. list_servers vs. get_server) with no overlap. Tools for VPS, DNS, SSH keys, and domains are clearly separated.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern (e.g., create_server, list_dns_zones, delete_ssh_key). Minor exceptions like server_power are still intuitive.

    Tool Count4/5

    26 tools cover multiple domains (VPS, DNS, SSH, domains) without being excessive. Each tool serves a clear purpose, though the count is slightly above the typical sweet spot of 3-15.

    Completeness5/5

    The tool set provides full CRUD and lifecycle management for VPS servers, DNS zones/records, SSH keys, and domains. Common operations like backup, snapshot, resize, power control, and domain renewals are included.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Enables AI assistants to manage SpinupWP infrastructure, including servers, WordPress sites, and SSH keys through the SpinupWP v1 JSON API. Users can perform actions like provisioning sites, purging caches, and restarting services via natural language commands.
      17
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to manage WHM hosting accounts and server administration tasks including account management, server stats, updates, SSL, backups, and email through a secure API.
      13
      ISC
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to manage cPanel hosting accounts including DNS, email, databases, SSL, files, security, and more through natural language using cPanel's UAPI and API2.
      ISC