API Documentation

Model Context Protocol (MCP) Server

AI Integration

VPS4You provides native support for Anthropic's open Model Context Protocol (MCP). You can connect your AI coding assistants (such as Cursor, Claude Desktop, Antigravity, or custom LLM agents) directly to your infrastructure to query status, restart VPS instances, check balances, or manage services using natural language.

MCP Server Endpoint

The MCP server supports both Server-Sent Events (SSE) streaming and direct JSON-RPC 2.0 requests:

https://vps4you.hu/mcp.php

Authentication Methods

You can authenticate your MCP requests in three ways:

  • URL Query Parameters (Recommended for Cursor & Remote clients):
    https://vps4you.hu/mcp.php?apikey=YOUR_API_KEY&email=your@email.com
  • HTTP Authorization Header:
    Authorization: Bearer YOUR_API_KEY and X-API-Email: your@email.com
    (or Authorization: Bearer your@email.com:YOUR_API_KEY)
  • JSON-RPC Parameters:
    Pass "apikey" and "email" inside the tool call's argument parameters or under "_auth".

Client Setup Examples

Option 1: Cursor / Windsurf / Remote SSE Clients

In Cursor (Settings → Features → MCP → Add New MCP Server):

  • Name: VPS4You
  • Type: sse
  • Server URL: https://vps4you.hu/mcp.php?apikey=YOUR_API_KEY&email=your@email.com
Option 2: Claude Desktop (via stdio bridge)

Add the following to your claude_desktop_config.json file:

{
  "mcpServers": {
    "vps4you": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://vps4you.hu/mcp.php?apikey=YOUR_API_KEY&email=your@email.com"
      ]
    }
  }
}

Available MCP Tools

Once connected, the AI model gains access to the following built-in tools:

Tool Name Description Arguments
list_services Lists all services (VPS, web hosting, game servers, domains) of your account with their status, expiration dates, and IP addresses. type (optional: vps, games, web, domain), service_id (optional)
get_service_status Returns real-time operational status (power state, CPU usage %, memory usage, disk usage, uptime, Proxmox node) of a VPS. service_id (required)
control_vps Executes power actions on a VPS instance. service_id (required), command (required: start, stop, restart, shutdown, reset, force-shutdown)
get_vps_templates Fetches the list of available OS reinstallation templates (Debian, Ubuntu, AlmaLinux, Windows, etc.) compatible with the VPS. service_id (required)
reinstall_vps Triggers an operating system reinstallation for a VPS. (Erases disk data) service_id (required), template_id (required)
get_account_balance Retrieves current account balance and currency (HUF). None
set_reverse_dns Configures PTR (Reverse DNS) record for a VPS IP address. service_id (required), reverse (required), ip (optional)
list_packages Lists available hosting packages, specifications, and prices (public, works without auth). type (required: vps, games, web, domain)
get_dnssec_status Checks DNSSEC status and DS/DNSKEY records for registered domains. service_id (required)
pay_service Renews or extends an active or suspended service from the account balance. Supports price_check: true to preview costs without paying. service_id (required), days (optional, 1-365), price_check (optional, boolean)
order_service Orders and instantly provisions a new service (VPS, Game server, Web hosting, Domain) using account balance. Supports price_check: true. type (required: vps, games, web, domain), package_id (required), template_id (optional), days (optional), price_check (optional), domain_name/domain_tld/domain_contact (for domains)
change_vps_package Upgrades, downgrades, or adds extra resources (CPU, RAM, SSD, network) to an active VPS. Supports price_check: true for previewing prorated charges. service_id (required), new_package_id (optional), extra_cpu (optional), extra_ram_gb (optional), extra_ssd_gb (optional), extra_disk_gb (optional), extra_network (optional), price_check (optional)
set_ssh_public_key Updates the user's default OpenSSH public key (supports ed25519, RSA, ECDSA) for automatic Cloud-Init injection on new VPS installs. ssh_public_key (required)
toggle_dnssec Enables or disables DNSSEC for a registered .hu or international domain. service_id (required), enabled (required, boolean)
set_vps_custom_name Sets or clears a friendly custom display name for a VPS. service_id (required), custom_name (optional, string)
list_vps_ips Lists all assigned IPv4 and IPv6 addresses and their reverse DNS settings for a VPS. service_id (required)
reset_vps_password Resets the Proxmox control panel / root password of a VPS and emails the new credentials. service_id (required)
list_vps_isos Lists all available installation ISO images and shows the currently mounted ISO for a VPS. service_id (required)
mount_vps_iso Mounts an ISO installation image into the virtual CD-ROM drive of a VPS. service_id (required), iso (required, filename)
unmount_vps_iso Ejects and unmounts the ISO image from the virtual CD-ROM drive of a VPS. service_id (required)
get_vps_firewall Retrieves extra DDoS / application firewall settings (Metin2 or FiveM protection) for a VPS. service_id (required)
set_vps_firewall Configures extra DDoS / application firewall protection (Metin2 or FiveM) on a VPS. service_id (required), type (required: metin2 or fivem), metin2_ports (for metin2), fivem_port & txadmin_port (for fivem)
delete_vps_firewall Removes extra DDoS / application firewall protection from a VPS. service_id (required)
get_domain_nameservers Retrieves the current authoritative nameservers for a registered domain. service_id (required)
set_domain_nameservers Updates the authoritative nameservers for a registered domain. service_id (required), nameservers (required, array of hostnames or glue records)
get_domain_authcode Fetches or requests the transfer authorization code (EPP / Auth code) for an active domain. service_id (required)
list_dns_records Lists all DNS zone records for a registered domain or DNS zone. service_id (required)
add_dns_record Adds a new DNS record (A, AAAA, CNAME, MX, TXT, SRV, etc.) to a domain zone. service_id (required), name (required), type (required), content (required), ttl (optional), prio (optional)
delete_dns_record Deletes a specific DNS record from a domain zone. service_id (required), record_id (required)
get_web_info Retrieves connection details, control panel URL, FTP/phpMyAdmin/Webmail links, and quotas for a web hosting service. service_id (required)
reset_web_password Resets the ISPConfig web hosting control panel password and emails new credentials to the user. service_id (required)
set_web_subdomain Assigns or updates a free .v4y.hu subdomain for a web hosting service. service_id (required), subdomain (required)
delete_web_subdomain Removes the free .v4y.hu subdomain from a web hosting service. service_id (required)
set_web_custom_name Sets or clears a friendly custom display name for a web hosting service. service_id (required), custom_name (required)
get_s3_info Retrieves S3 Object Storage credentials (Access Key, Secret Key, Endpoint URL) and storage quotas. service_id (required)
list_s3_buckets Lists all S3 object buckets and their sizes for a storage service. service_id (required)
create_s3_bucket Creates a new S3 object storage bucket with optional quota and access policies. service_id (required), bucket_name (required), quota_gb (optional), policy (optional: none, download, public)
delete_s3_bucket Deletes an S3 object storage bucket (must be empty). service_id (required), bucket_name (required)
list_invoices Lists billing invoices with download URLs, payment status, issue/due dates, and amounts. limit (optional, default 50)
list_transactions Lists financial transactions, balance top-ups, service debits, and payment method details. limit (optional, default 50)

Authentication

All API requests must be made via POST to the following URL:

https://vps4you.hu/api.php

Method 1: Persistent API Key

Use the API key found in your profile settings. This key does not expire unless regenerated.

Parameter Description
email Your registered email address.
apikey Your persistent API key.

Method 2: Passwordless Login (2FA)

Login with your email to receive a temporary API key valid for 24 hours. This method requires 2FA.

Step 1: Request 2FA Code

POST action=login

Parameter Description
email Your registered email address.

Response (2FA Required): {"success":false, "error":"2FA required", "2fasent":true}. An email with the code will be sent. If a code was already sent recently, 2fasent will be false.

Step 2: Submit 2FA Token

POST action=login

Parameter Description
email Your registered email address.
token The 6-digit code received in email.

Success Response: {"success":true, "apikey":"TEMPORARY_KEY_HERE", "temporary":true}

Use this temporary apikey for subsequent requests (valid for 24 hours).

Example Usage

PHP Client Example

<?php
$url = 'https://vps4you.hu/api.php';
$fields = [
    'email' => 'your@email.com',
    'apikey' => 'your_api_key',
    'json' => 1,
    'action' => 'service-list'
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($fields));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
print_r($result);
?>
                    

Response Messages

All API responses are returned in JSON format.

Standard Response Fields

Field Type Description
success boolean Indicates if the request was successful (true) or failed (false).
logged_in boolean Indicates if the user is currently authenticated. Useful for checking session status even if an error occurred.
version string The current API version (e.g., "1.6").
error string (Only on failure) A human-readable error message describing why the request failed.

Example Success Response

{
    "success": true,
    "logged_in": true,
    "version": "1.6",
    "packages": { ... }
}

Example Error Response

{
    "success": false,
    "logged_in": false,
    "version": "1.6",
    "error": "Invalid login"
}

Common Actions

Get Packages

POST action=get-packages

Retrieve a list of available service packages.

Parameter Description
type Service type: vps, games, web, or domain.

List Services

POST action=service-list

List your active services.

Parameter Description
id (Optional) Filter by specific service ID.

Order Service

POST action=service-order

Order a new service (VPS, Web, Games).

Parameter Description
type vps, web, games.
packageid ID of the package to order.
templateid (For VPS/Games) ID of the OS template or game version.
days (Optional) Number of days to order for.

Pay Service

POST action=service-pay

Extend a service using your balance.

Parameter Description
serviceid ID of the service to pay for.
days (Optional) Number of days to extend.

VPS Management

Get Templates

POST action=vps-get-templates

Get available OS templates for a package or existing service.

Parameter Description
packageid ID of the package (for new orders).
serviceid ID of the service (for reinstall).

Get Status

POST action=vps-get-status

Get the current status of a VPS or Game server.

Parameter Description
serviceid ID of the service.

Change Status

POST action=vps-change-status

Start, stop, or restart a server.

Parameter Description
serviceid ID of the service.
command start, stop, shutdown, reset, force-shutdown.

Reinstall

POST action=vps-reinstall

Reinstall a server with a specific template.

Parameter Description
serviceid ID of the service.
templateid ID of the template to use.

Set Reverse DNS

POST action=vps-set-reverse

Set the reverse DNS record for an IP.

Parameter Description
serviceid ID of the service.
ip (Optional) Specific IP address.
reverse The reverse hostname.

Change Package

POST action=vps-change-package

Change VPS package or add extra resources.

Parameter Description
serviceid ID of the service.
newpackage (Optional) ID of the new package. If omitted, uses current package (resource upgrade).
extracpu (Optional) Number of extra vCPUs.
extraram (Optional) Amount of extra RAM in GB.
extrassd (Optional) Amount of extra SSD storage in GB.
extradisk (Optional) Amount of extra HDD storage in GB.
extranet (Optional) Extra network bandwidth in Mbit/s (values: 50, 100, 200, 500, 1000).
agent (Optional) Enable (1) or disable (0) QEMU Guest Agent on the VPS.
pricecheck (Optional) Set to 1 to calculate price without executing changes.
paymentmethod balance (default) or date (adjusts expiration date).

Price Check Response:

{
    "success": true,
    "paydiff": 1500,
    "currency": "HUF",
    "new_package_name": "EPYC VPS 4GB",
    "new_price": 5000,
    "datediff": 1709856000,
    "new_cpu": 4,
    "new_ram": 4096,
    "new_ssd": 80,
    "new_disk": [],
    "new_extranet": 0
}

Get Resource Statistics

POST action=vps-get-rrd-data

Get CPU, Memory, Network, and Disk RRD resource statistics for a VPS.

Parameter Description
serviceid ID of the VPS service.
timeframe (Optional) hour (default), day, week, month, or year.
cf (Optional) AVERAGE (default) or MAXIMUM.

Success Response:

{
    "success": true,
    "labels": ["22:00", "22:05", "22:10", ...],
    "cpu_points": [0.25, 0.44, 0.31, ...],
    "mem_points": [45.2, 45.3, 45.2, ...],
    "netin_points": [1.2, 0.8, 1.5, ...],
    "netout_points": [0.5, 0.6, 0.7, ...],
    "diskread_points": [0.0, 0.1, 0.0, ...],
    "diskwrite_points": [0.2, 0.5, 0.3, ...],
    "latest": {
        "cpu": 0.35,
        "mem_total_gb": 4.0,
        "mem_used_gb": 1.8,
        "mem_pct": 45.2,
        "netin": 1.25,
        "netout": 0.55,
        "diskread": 0.05,
        "diskwrite": 0.25
    }
}

Set Custom Name

POST action=vps-set-customname

Set or remove a friendly custom display name for a VPS.

Parameter Description
serviceid ID of the VPS service.
customname New display name (or leave empty to clear). Max 100 characters.

List IP Addresses

POST action=vps-list-ips

Get all assigned IPv4 and IPv6 addresses and their reverse DNS (PTR) records.

Parameter Description
serviceid ID of the VPS service.

Reset Control Panel Password

POST action=vps-reset-password

Generate a new secure Proxmox control panel password for the VPS and email it to the user.

Parameter Description
serviceid ID of the VPS service.

List ISO Images

POST action=vps-iso-list

List all available OS installation ISO images and check the currently mounted ISO.

Parameter Description
serviceid ID of the VPS service.

Mount ISO Image

POST action=vps-iso-mount

Mount an installation ISO image into the virtual CD-ROM drive.

Parameter Description
serviceid ID of the VPS service.
iso ISO filename (obtained from vps-iso-list).

Unmount ISO Image

POST action=vps-iso-unmount

Eject / unmount the ISO image from the virtual CD-ROM drive.

Parameter Description
serviceid ID of the VPS service.

Get Firewall Status

POST action=vps-firewall-status

Check the active extra DDoS / application firewall configuration (Metin2 or FiveM protection).

Parameter Description
serviceid ID of the VPS service.

Set Firewall Rules

POST action=vps-firewall-set

Enable and configure application-specific DDoS firewall protection.

Parameter Description
serviceid ID of the VPS service.
fwtype Protection profile: metin2 or fivem.
metin2_ports (If fwtype=='metin2') Comma-separated list of game ports (e.g. 13000,13001,13002). Ports 22 and 3306 are not allowed.
fivem_port (If fwtype=='fivem') Primary FiveM server port (default: 30120).
txadmin_port (If fwtype=='fivem') txAdmin management web port (default: 40120).

Delete Firewall Rules

POST action=vps-firewall-delete

Remove extra DDoS / application firewall protection from the VPS.

Parameter Description
serviceid ID of the VPS service.

Web Management

Change Package

POST action=web-change-package

Change the package of a web hosting service. This action performs strict validation to ensure that the currently allocated storage (Web, Email, Database) does not exceed the limits of the new package.

Parameter Description
serviceid ID of the web hosting service.
newpackage ID of the new package to switch to.

Note: If the current usage exceeds the new package limits, the request will fail with a specific error message.

Get Web Hosting Info

POST action=web-get-info

Get connection info, control panel URL, server IP/FQDN, FTP port, phpMyAdmin and Webmail URLs, email settings, and storage quota.

Parameter Description
serviceid ID of the web hosting service.

Reset Web Control Panel Password

POST action=web-reset-password

Generate a new secure ISPConfig control panel password and send it to the user's email address.

Parameter Description
serviceid ID of the web hosting service.

Set Free Subdomain

POST action=web-set-subdomain

Configure a free .v4y.hu subdomain for the website (e.g. mytest -> mytest.v4y.hu).

Parameter Description
serviceid ID of the web hosting service.
subdomain Desired subdomain name (without .v4y.hu).

Delete Free Subdomain

POST action=web-delete-subdomain

Remove the assigned .v4y.hu subdomain and delete its DNS A records.

Parameter Description
serviceid ID of the web hosting service.

Set Custom Display Name

POST action=web-set-customname

Assign a friendly custom label/name to the web hosting service.

Parameter Description
serviceid ID of the web hosting service.
customname Custom name string (max 20 characters).

Domain Management

Check Domain Availability

POST action=domain-check

Check if a domain is available for registration.

Parameter Description
domain Full domain name (e.g., example.hu).

Success Response:

{
    "success": true,
    "available": true
}

Order Domain

POST action=domain-order

Register or transfer a domain.

Parameter Description
domain Full domain name (e.g., example.hu).
type reg or transfer.
owner newperson, neworg, or existing owner ID.
authcode (Required for transfer) Transfer authorization code.
dnsserver defaultdns or customdns.
nameservers (If dnsserver=='customdns') Array of nameservers. Can be a simple list of hostnames or an array of objects for glue records.
Example (JSON):
{
  "nameservers": [
    {
      "hostname": "ns1.example.com",
      "ipv4": "1.2.3.4",
      "ipv6": "2001:db8::1"
    },
    "ns2.example.com"
  ]
}
defaultdnsArecord (If dnsserver=='defaultdns') IP address for the default A record.
defaultdnsMXrecord (If dnsserver=='defaultdns') FQDN for the default MX record.

New Owner Fields (if owner is newperson/neworg):

email, phone, country, zipcode, city, address
firstname, lastname, birthdate (for newperson)
companyname, vatid (for neworg)

Set Transfer Auth Code

POST action=domain-set-transfer-authcode

Submit an auth code for a pending transfer.

Parameter Description
serviceid ID of the domain service.
authcode The authorization code.

Update Nameservers

POST action=domain-update-ns

Update nameservers for a domain.

Parameter Description
serviceid ID of the domain service.
nameservers Array of nameservers. Can be a simple list of hostnames or an array of objects for glue records.
Example (JSON):
{
  "nameservers": [
    {
      "hostname": "ns1.example.com",
      "ipv4": "1.2.3.4",
      "ipv6": "2001:db8::1"
    },
    "ns2.example.com"
  ]
}

Get DNSSEC Status

POST action=domain-dnssec-status

Get the current DNSSEC status and active cryptographic keys (DS or DNSKEY records) for a domain.

Parameter Description
serviceid ID of the domain service.

Success Response (Openprovider domain):

{
    "success": true,
    "provider": "openprovider",
    "is_dnssec_enabled": true,
    "keys": [
        {
            "flags": 257,
            "protocol": 3,
            "algorithm": 13,
            "public_key": "..."
        }
    ]
}

Toggle DNSSEC

POST action=domain-dnssec-toggle

Enable or disable DNSSEC for a domain. If the domain is hosted on our nameservers, the system automatically configures the local BIND zone and submits keys to the registry.

Parameter Description
serviceid ID of the domain service.
enabled 1 to enable, 0 to disable.

Add DNSSEC Key / DS Record

POST action=domain-dnssec-add-key

Manually add a DNSSEC key or DS record to the registry for domains using custom nameservers.

Parameter Description
serviceid ID of the domain service.
For non-.hu domains (Openprovider):
flags Key flags: 257 (KSK) or 256 (ZSK).
protocol Protocol number (default is 3).
algorithm Algorithm type (e.g. 8 for RSASHA256, 13 for ECDSAP256SHA256).
public_key The public key string.
For .hu domains (ngDRR):
key_tag Key tag integer value.
alg Algorithm integer value.
digest_type Digest type integer value.
digest The hex-encoded digest string.

Delete DNSSEC Key / DS Record

POST action=domain-dnssec-delete-key

Remove a specific DNSSEC key or DS record from the registry.

Parameter Description
serviceid ID of the domain service.
For non-.hu domains (Openprovider):
key_index The 0-based index of the key to delete.
For .hu domains (ngDRR):
index The 1-based index (1-8) of the DS record to delete.

Get Nameservers

POST action=domain-get-nameservers

Retrieve authoritative nameservers currently configured at the registry for the domain.

Parameter Description
serviceid ID of the domain service.

Set Nameservers

POST action=domain-set-nameservers

Update authoritative nameservers at the registry.

Parameter Description
serviceid ID of the domain service.
nameservers Array of nameservers (hostnames or objects with hostname, ipv4, ipv6 for glue records).

Get Auth / EPP Code

POST action=domain-get-authcode

Fetch or request the transfer authorization code (EPP code) for the domain.

Parameter Description
serviceid ID of the domain service.

DNS Management

List DNS Records

POST action=domain-dns-list

List all DNS records for a domain.

Parameter Description
serviceid ID of the domain service.

Add DNS Record

POST action=domain-dns-add

Add a new DNS record.

Parameter Description
serviceid ID of the domain service.
type A, AAAA, CNAME, MX, TXT, SRV, ALIAS, CAA, DMARC, DNAME, DS, HINFO, LOC, NAPTR, PTR, RP, SPF, SSHFP, TLSA.
name Subdomain name.
data Record value (e.g., IP address).
prio (Optional) Priority for MX/SRV.
ttl (Optional) Time-To-Live in seconds. Default is 3600.

Delete DNS Record

POST action=domain-dns-delete

Delete a DNS record.

Parameter Description
serviceid ID of the domain service.
recordid ID of the record to delete.

Edit DNS Record

POST action=domain-dns-edit

Edit an existing DNS record by removing the old record and adding the new one with updated values.

Parameter Description
serviceid ID of the domain service.
recordid ID of the record to edit (will be deleted first).
type A, AAAA, CNAME, MX, TXT, SRV, ALIAS, CAA, DMARC, DNAME, DS, HINFO, LOC, NAPTR, PTR, RP, SPF, SSHFP, TLSA.
name Subdomain name.
data Record value (e.g., IP address).
prio (Optional) Priority for MX/SRV.
weight (Optional) Weight for SRV.
port (Optional) Port for SRV.
ttl (Optional) Time-To-Live in seconds. Default is 3600.

Export BIND Zone File

POST action=domain-dns-export

Export all DNS records as BIND zone file format.

Parameter Description
serviceid ID of the domain service.

Import BIND Zone File

POST action=domain-dns-import

Import DNS records from BIND zone file content. Existing NS records are always overwritten/replaced during this process.

Parameter Description
serviceid ID of the domain service.
zone_text Raw text content of the BIND zone file.
clear_existing (Optional) Set to 1 to delete all existing non-NS records first. Default is 0.

S3 Storage Management

Get S3 Credentials and Quota

POST action=s3-get-info

Retrieve S3 Object Storage API credentials (endpoint URL, access key, secret key) and current storage usage/quotas.

Parameter Description
serviceid ID of the S3 storage service.

List S3 Buckets

POST action=s3-buckets-list

List all storage buckets under the S3 account, along with their size and object count.

Parameter Description
serviceid ID of the S3 storage service.

Create S3 Bucket

POST action=s3-bucket-create

Create a new S3 object storage bucket with optional quota and access policy.

Parameter Description
serviceid ID of the S3 storage service.
bucket_name Bucket name (DNS compliant: lowercase letters, numbers, hyphens).
quota_gb (Optional) Bucket storage quota in Gigabytes.
policy (Optional) Access policy: none (private, default), download (public read), or public (public read/write).

Delete S3 Bucket

POST action=s3-bucket-delete

Delete an S3 object storage bucket (the bucket must be empty).

Parameter Description
serviceid ID of the S3 storage service.
bucket_name Name of the bucket to delete.

User Management

Get Balance

POST action=user-get-balance

Get your current account balance.

Parameter Description
currency HUF.

Set SSH Public Key

POST action=user-set-sshpubkey

Update your SSH public key.

Parameter Description
sshpubkey The SSH public key string.

List Invoices

POST action=user-get-invoices

Get billing invoices issued to your account, including PDF download links, payment statuses, and amounts.

Parameter Description
limit (Optional) Number of records to return (1-200, default: 50).

List Transactions

POST action=user-get-transactions

Get your financial transaction log (balance top-ups, service renewals/orders, refunds, etc.).

Parameter Description
limit (Optional) Number of records to return (1-200, default: 50).