{"jsonrpc":"2.0","id":1,"result":{"tools":[{"annotations":{"title":"Add Dns Record","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Adds a DNS record to a zone via DNSManager.","inputSchema":{"properties":{"domain_name":{"description":"DNS zone domain name (FQDN); optional when zone_id is provided","type":"string"},"record":{"description":"DNS record fields for add, edit, or delete via DNSManager.\n\nSee `DnsRecordInfo` for how `content` and structured fields map to upstream record data.\nDelete requires only `id`, `name`, and `type`.","properties":{"content":{"description":"Primary record value; required for add and edit. Meaning depends on type — see DnsRecordInfo","type":"string"},"id":{"description":"Record line/id from get-dns-zone-details; required for edit and delete","type":"string"},"name":{"description":"Record host/name (e.g. @, www, mail); required for add","type":"string"},"port":{"description":"SRV port when type is SRV; required for add and edit when type is SRV","type":"integer"},"priority":{"description":"MX preference when type is MX; SRV priority when type is SRV","type":"integer"},"ttl":{"description":"Time-to-live in seconds; defaults to 3600 on add when omitted","type":"integer"},"type":{"description":"Record type (e.g. A, AAAA, CNAME, MX, TXT, NS, SRV); required for add","type":"string"},"weight":{"description":"SRV weight when type is SRV","type":"integer"}},"type":"object"},"zone_id":{"description":"DNS zone identifier from list-dns-zones or get-dns-zone-details","type":"string"}},"required":["record","zone_id"],"type":"object"},"name":"add_dns_record"},{"annotations":{"title":"Cancel Vps","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Cancels a VPS service. This action is irreversible","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"},"type":{"description":"Cancel type enum - controls when a VPS service cancellation takes effect","enum":["immediate","end_of_billing_period"],"type":"string"}},"required":["service_id"],"type":"object"},"name":"cancel_vps"},{"annotations":{"title":"Check Domain Availability","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"description":"Checks domain name availability for a single domain or a comma-separated batch. Exactly one of domain or domains must be provided. Returns pricing, suggestions, and register_url scoped to the requested currency.","inputSchema":{"properties":{"currency":{"description":"Currency for pricing. Accepts ISO code, symbol, country name, or numeric ID. Defaults to ZAR.","type":"string"},"domain":{"description":"A single domain name to look up, e.g. \"example.co.za\". Required unless domains is provided.","type":"string"},"domains":{"description":"Comma-separated list of domain names for a batch check. Required unless domain is provided.","type":"string"}},"required":[],"type":"object"},"name":"check_domain_availability"},{"annotations":{"title":"Create Backup","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Creates a new backup for a VPS service","inputSchema":{"properties":{"compress":{"description":"Backup compression type enum","enum":["0","lzo","gzip","zstd"],"type":"string"},"mode":{"description":"Backup mode enum - controls how the VM is handled during backup","enum":["snapshot","suspend","stop"],"type":"string"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"create_backup"},{"annotations":{"title":"Create Backup Schedule","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Creates a new backup schedule for a VPS service","inputSchema":{"properties":{"compress":{"description":"Backup compression type enum","enum":["0","lzo","gzip","zstd"],"type":"string"},"dow":{"description":"Days of week when backup should run","items":{"type":"string"},"type":"array"},"mailto":{"description":"Email notification setting. Set to true to send notifications to client's email, false or omit to disable","type":"boolean"},"mode":{"description":"Backup mode enum - controls how the VM is handled during backup","enum":["snapshot","suspend","stop"],"type":"string"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"},"starttime":{"description":"Time in HH:MM format (e.g., '03:00'). Hours must be between 00-23, minutes must be between 00-59","pattern":"^([01]?[0-9]|2[0-3]):[0-5][0-9]$","type":"string"}},"required":["compress","dow","mode","service_id","starttime"],"type":"object"},"name":"create_backup_schedule"},{"annotations":{"title":"Create Firewall Rule","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Creates a new firewall rule for a VPS service","inputSchema":{"properties":{"comment":{"description":"Comment/description for the rule","type":"string"},"dest":{"description":"Destination address/network","type":"string"},"dport":{"description":"Destination port","type":"string"},"enable":{"description":"Whether the rule is enabled (1=enabled, 0=disabled)","type":"number"},"iface":{"description":"Network interface name","type":"string"},"log":{"description":"Log level","type":"string"},"macro":{"description":"Firewall macro name","type":"string"},"pos":{"description":"Position/priority of the rule","type":"number"},"proto":{"description":"Protocol (tcp, udp, icmp, etc). Use '0' or omit for none","type":"string"},"rule_action":{"description":"Firewall rule action enum","enum":["ACCEPT","DROP","REJECT"],"type":"string"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"},"source":{"description":"Source address/network","type":"string"},"sport":{"description":"Source port","type":"string"},"type":{"description":"Firewall rule type enum","enum":["in","out","group"],"type":"string"}},"required":["rule_action","service_id","type"],"type":"object"},"name":"create_firewall_rule"},{"annotations":{"title":"Create Notification","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Creates a new notification for a VPS service with customizable thresholds for CPU, memory, network, and disk metrics","inputSchema":{"properties":{"cpu_usage":{"description":"CPU usage threshold percentage (0-100)","type":"number"},"data_timeframe":{"description":"Data timeframe in minutes (must be > 0)","type":"number"},"disk_read":{"description":"Disk read threshold percentage (0-100)","type":"number"},"disk_write":{"description":"Disk write threshold percentage (0-100)","type":"number"},"email_address":{"description":"Email addresses for notifications (comma-separated string or array)","items":{"type":"string"},"type":"array"},"exceed_all":{"description":"Whether all thresholds must be exceeded (true) or any one (false)","type":"boolean"},"memory_usage":{"description":"Memory usage threshold percentage (0-100)","type":"number"},"name":{"description":"Name/title for the notification","type":"string"},"network_traffic":{"description":"Network traffic threshold percentage (0-100)","type":"number"},"notification_interval":{"description":"Notification interval in minutes (must be > 0)","type":"number"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"},"status":{"description":"Notification status values","enum":["on","off","yes","no","true","false","1","0"],"type":"string"}},"required":["name","service_id"],"type":"object"},"name":"create_notification"},{"annotations":{"title":"Create Order","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Creates an order for a VPS service. Returns payment status; on failure also includes payment_error with code and message.","inputSchema":{"properties":{"products":{"description":"List of products to order","items":{"properties":{"additional_data":{"description":"Additional data as a free-form map"},"billing_cycle":{},"config_options":{"description":"Configuration options as a free-form map"},"hostname":{"description":"Hostname to assign to the service","type":"string"},"pid":{"description":"Product ID","format":"int32","type":"integer"},"plan_id":{"description":"Plan ID for the selected product configuration","format":"int32","type":"integer"}},"required":["billing_cycle","config_options","hostname","pid","plan_id"],"type":"object"},"type":"array"},"promo":{"description":"Promotional code to apply to the order","type":"string"}},"required":["products"],"type":"object"},"name":"create_order"},{"annotations":{"title":"Create Power Task","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Creates a new power task (scheduled start/stop/restart operation) for a VPS service","inputSchema":{"properties":{"days":{"description":"Days of the week for weekly jobs","items":{"type":"string"},"type":"array"},"description":{"description":"Description of the power task","type":"string"},"end_date":{"description":"End date in Y-m-d format (e.g., 2026-12-31)","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"end_time":{"description":"End time in HH:MM or HH:MM:SS format","pattern":"^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$","type":"string"},"job_hour":{"description":"Job hour (alternative to job_time)","type":"number"},"job_minutes":{"description":"Job minutes (alternative to job_time)","type":"number"},"job_time":{"description":"Job execution time in HH:MM or HH:MM:SS format","pattern":"^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$","type":"string"},"job_type":{"description":"Power task job type enum","enum":["oneTime","daily","weekly"],"type":"string"},"power_task_action":{"description":"Power task action enum","enum":["start","stop","restart"],"type":"string"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"},"start_date":{"description":"Start date in Y-m-d format (e.g., 2026-03-25)","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"start_time":{"description":"Start time in HH:MM or HH:MM:SS format","pattern":"^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$","type":"string"}},"required":["power_task_action","service_id","start_date"],"type":"object"},"name":"create_power_task"},{"annotations":{"title":"Create Rdns Record","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Creates (or upserts) a PTR record for the authenticated client. If the client already owns a PTR for the same (serverid, ip) it is updated in place; if another client owns it a 409 is returned.","inputSchema":{"properties":{"hostname":{"description":"PTR target hostname","type":"string"},"ip":{"description":"IPv4 or IPv6 address the PTR record should point from","type":"string"},"relid":{"description":"Related service id matching the zone type (hosting, addon, or domain)","type":"number"},"ttl":{"description":"Time-to-live in seconds. Defaults to 14400; clamped to [30, 86400]","type":"number"},"type":{"description":"Zone type: 0=OTHER, 1=DOMAIN, 2=HOSTING, 3=ADDON","type":"number"}},"required":["hostname","ip","relid","type"],"type":"object"},"name":"create_rdns_record"},{"annotations":{"title":"Create Snapshot","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Creates a new snapshot for a VPS service","inputSchema":{"properties":{"description":{"description":"Description for the snapshot","type":"string"},"include_ram":{"description":"Whether to include RAM state in the snapshot. Defaults to false when omitted.","type":"boolean"},"name":{"description":"Name for the snapshot","type":"string"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["name","service_id"],"type":"object"},"name":"create_snapshot"},{"annotations":{"title":"Create Snapshot Job","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Creates a new snapshot job for a VPS service. Use period='hourly' with run_every, or period='daily' with days and start_time.","inputSchema":{"properties":{"days":{"description":"For daily jobs: days of week when the job should run","items":{"type":"string"},"type":"array"},"description":{"description":"Description for the snapshot job","type":"string"},"name":{"description":"Name for the snapshot job (e.g. 'auto_hourly')","type":"string"},"period":{"description":"Schedule period for snapshot jobs","enum":["hourly","daily"],"type":"string"},"run_every":{"description":"For hourly jobs: run every N hours (e.g. 6 = every 6 hours)","type":"number"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"},"start_time":{"description":"For daily jobs: start time in HH:MM format (e.g. '02:30')","pattern":"^([01]?[0-9]|2[0-3]):[0-5][0-9]$","type":"string"},"vmstate":{"description":"Whether to include VM state in the snapshot","type":"boolean"}},"required":["name","period","service_id"],"type":"object"},"name":"create_snapshot_job"},{"annotations":{"title":"Delete Backup","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Deletes a specific backup from a VPS service","inputSchema":{"properties":{"backup_id":{"description":"Backup ID to delete","type":"string"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["backup_id","service_id"],"type":"object"},"name":"delete_backup"},{"annotations":{"title":"Delete Backup Schedule","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Deletes a backup schedule from a VPS service","inputSchema":{"properties":{"schedule_id":{"description":"Backup schedule ID to delete","type":"string"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["schedule_id","service_id"],"type":"object"},"name":"delete_backup_schedule"},{"annotations":{"title":"Delete Dns Record","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Deletes a DNS record from a zone via DNSManager.","inputSchema":{"properties":{"domain_name":{"description":"DNS zone domain name (FQDN); optional when zone_id is provided","type":"string"},"record":{"description":"DNS record fields for add, edit, or delete via DNSManager.\n\nSee `DnsRecordInfo` for how `content` and structured fields map to upstream record data.\nDelete requires only `id`, `name`, and `type`.","properties":{"content":{"description":"Primary record value; required for add and edit. Meaning depends on type — see DnsRecordInfo","type":"string"},"id":{"description":"Record line/id from get-dns-zone-details; required for edit and delete","type":"string"},"name":{"description":"Record host/name (e.g. @, www, mail); required for add","type":"string"},"port":{"description":"SRV port when type is SRV; required for add and edit when type is SRV","type":"integer"},"priority":{"description":"MX preference when type is MX; SRV priority when type is SRV","type":"integer"},"ttl":{"description":"Time-to-live in seconds; defaults to 3600 on add when omitted","type":"integer"},"type":{"description":"Record type (e.g. A, AAAA, CNAME, MX, TXT, NS, SRV); required for add","type":"string"},"weight":{"description":"SRV weight when type is SRV","type":"integer"}},"type":"object"},"zone_id":{"description":"DNS zone identifier from list-dns-zones or get-dns-zone-details","type":"string"}},"required":["record","zone_id"],"type":"object"},"name":"delete_dns_record"},{"annotations":{"title":"Delete Firewall Rule","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Deletes a firewall rule from a VPS service","inputSchema":{"properties":{"pos":{"description":"Position/index of the rule to delete","type":"number"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["pos","service_id"],"type":"object"},"name":"delete_firewall_rule"},{"annotations":{"title":"Delete Notification","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Deletes a notification from a VPS service","inputSchema":{"properties":{"notification_id":{"description":"Notification ID to delete","type":"number"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["notification_id","service_id"],"type":"object"},"name":"delete_notification"},{"annotations":{"title":"Delete Power Task","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Deletes a power task from a VPS service","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"},"task_id":{"description":"Power task ID to delete","type":"number"}},"required":["service_id","task_id"],"type":"object"},"name":"delete_power_task"},{"annotations":{"title":"Delete Rdns Record","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Deletes a PTR (rDNS) record owned by the authenticated client","inputSchema":{"properties":{"record_id":{"description":"ID of the PTR record to delete","type":"number"}},"required":["record_id"],"type":"object"},"name":"delete_rdns_record"},{"annotations":{"title":"Delete Snapshot","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Deletes a specific snapshot from a VPS service","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"},"snapshot_name":{"description":"Snapshot name to delete","type":"string"}},"required":["service_id","snapshot_name"],"type":"object"},"name":"delete_snapshot"},{"annotations":{"title":"Delete Snapshot Job","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Deletes a snapshot job from a VPS service","inputSchema":{"properties":{"job_id":{"description":"Snapshot job ID to delete","type":"string"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["job_id","service_id"],"type":"object"},"name":"delete_snapshot_job"},{"annotations":{"title":"Edit Backup Schedule","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Edits an existing backup schedule for a VPS service","inputSchema":{"properties":{"compress":{"description":"Backup compression type enum","enum":["0","lzo","gzip","zstd"],"type":"string"},"dow":{"description":"Days of week when backup should run","items":{"type":"string"},"type":"array"},"mailto":{"description":"Email notification setting. Set to true to send notifications to client's email, false or omit to disable","type":"boolean"},"mode":{"description":"Backup mode enum - controls how the VM is handled during backup","enum":["snapshot","suspend","stop"],"type":"string"},"schedule_id":{"description":"Backup schedule ID to edit","type":"string"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"},"starttime":{"description":"Time in HH:MM format (e.g., '03:00'). Hours must be between 00-23, minutes must be between 00-59","pattern":"^([01]?[0-9]|2[0-3]):[0-5][0-9]$","type":"string"}},"required":["compress","dow","mode","schedule_id","service_id","starttime"],"type":"object"},"name":"edit_backup_schedule"},{"annotations":{"title":"Edit Dns Record","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Edits a DNS record in a zone via DNSManager.","inputSchema":{"properties":{"domain_name":{"description":"DNS zone domain name (FQDN); optional when zone_id is provided","type":"string"},"record":{"description":"DNS record fields for add, edit, or delete via DNSManager.\n\nSee `DnsRecordInfo` for how `content` and structured fields map to upstream record data.\nDelete requires only `id`, `name`, and `type`.","properties":{"content":{"description":"Primary record value; required for add and edit. Meaning depends on type — see DnsRecordInfo","type":"string"},"id":{"description":"Record line/id from get-dns-zone-details; required for edit and delete","type":"string"},"name":{"description":"Record host/name (e.g. @, www, mail); required for add","type":"string"},"port":{"description":"SRV port when type is SRV; required for add and edit when type is SRV","type":"integer"},"priority":{"description":"MX preference when type is MX; SRV priority when type is SRV","type":"integer"},"ttl":{"description":"Time-to-live in seconds; defaults to 3600 on add when omitted","type":"integer"},"type":{"description":"Record type (e.g. A, AAAA, CNAME, MX, TXT, NS, SRV); required for add","type":"string"},"weight":{"description":"SRV weight when type is SRV","type":"integer"}},"type":"object"},"zone_id":{"description":"DNS zone identifier from list-dns-zones or get-dns-zone-details","type":"string"}},"required":["record","zone_id"],"type":"object"},"name":"edit_dns_record"},{"annotations":{"title":"Get Catalogue","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Retrieves the product catalogue, optionally filtered by group or product","inputSchema":{"properties":{"group_id":{"description":"Optional group identifier to filter catalogue results","type":"string"},"product_id":{"description":"Optional product identifier to filter catalogue results","type":"string"}},"required":[],"type":"object"},"name":"get_catalogue"},{"annotations":{"title":"Get Dns Zone Details","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Retrieves DNS zone details and records for an owned domain.","inputSchema":{"properties":{"domain_id":{"description":"Domain service id - must be sent as a string","type":"string"}},"required":["domain_id"],"type":"object"},"name":"get_dns_zone_details"},{"annotations":{"title":"Get Domain","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Gets details for an owned domain.","inputSchema":{"properties":{"domain_id":{"description":"Domain service id - must be sent as a string","type":"string"}},"required":["domain_id"],"type":"object"},"name":"get_domain"},{"annotations":{"title":"Get Domain Contacts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Retrieves WHOIS contact information for an owned domain. Contact field names vary by TLD and registrar; use the returned structure when building custom contact update payloads.","inputSchema":{"properties":{"domain_id":{"description":"Domain service id - must be sent as a string","type":"string"}},"required":["domain_id"],"type":"object"},"name":"get_domain_contacts"},{"annotations":{"title":"Get No Vnc Console","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Retrieves noVNC console access credentials and connection details for a VPS","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"get_no_vnc_console"},{"annotations":{"title":"Get Vps Config","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Retrieves VPS configuration settings including name, hostname, auto-start, boot order, and CD-ROM","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"get_vps_config"},{"annotations":{"title":"Get Vps Details","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Gets detailed information about a VPS service including configuration, network settings, and statistics","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"get_vps_details"},{"annotations":{"title":"List Backup Schedules","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Retrieves the list of backup schedules for a VPS service","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"list_backup_schedules"},{"annotations":{"title":"List Backups","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Retrieves the list of backups for a VPS service including quota information and backup configuration options","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"list_backups"},{"annotations":{"title":"List Dns Create Candidates","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Lists domains and services eligible for new DNS zone creation.","inputSchema":{"properties":{},"required":[],"type":"object"},"name":"list_dns_create_candidates"},{"annotations":{"title":"List Dns Zones","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Lists DNS zones belonging to the authenticated client.","inputSchema":{"properties":{},"required":[],"type":"object"},"name":"list_dns_zones"},{"annotations":{"title":"List Dnssec Records","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Lists DNSSEC DS records configured for an owned domain.","inputSchema":{"properties":{"domain_id":{"description":"Domain service id - must be sent as a string","type":"string"}},"required":["domain_id"],"type":"object"},"name":"list_dnssec_records"},{"annotations":{"title":"List Domains","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"List all domains belonging to the authenticated client.","inputSchema":{"properties":{},"required":[],"type":"object"},"name":"list_domains"},{"annotations":{"title":"List Domains Requiring Data","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Lists domains belonging to the authenticated client that require additional registrar or contact data.","inputSchema":{"properties":{},"required":[],"type":"object"},"name":"list_domains_requiring_data"},{"annotations":{"title":"List Firewall Rules","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Retrieves the list of firewall rules and available options for a VPS service","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"list_firewall_rules"},{"annotations":{"title":"List Isos","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Retrieves the list of available ISO images for a VPS service","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"list_isos"},{"annotations":{"title":"List Notifications","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Retrieves the list of notifications for a VPS service along with dialog rules for creating notifications","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"list_notifications"},{"annotations":{"title":"List Orders","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Lists all orders for the authenticated user, including payment and invoice status","inputSchema":{"properties":{},"required":[],"type":"object"},"name":"list_orders"},{"annotations":{"title":"List Power Tasks","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Retrieves the list of power tasks (scheduled start/stop/restart operations) for a VPS service","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"list_power_tasks"},{"annotations":{"title":"List Rdns Records","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Lists all rDNS (PTR) records and available services for the authenticated client","inputSchema":{"properties":{},"required":[],"type":"object"},"name":"list_rdns_records"},{"annotations":{"title":"List Reinstall Os","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Retrieves the list of available OS images for VPS reinstallation","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"list_reinstall_os"},{"annotations":{"title":"List Snapshot Jobs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Retrieves the list of snapshot jobs for a VPS service","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"list_snapshot_jobs"},{"annotations":{"title":"List Snapshots","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Retrieves the list of snapshots for a VPS service","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"list_snapshots"},{"annotations":{"title":"List Vps Services","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Lists all VPS services accessible by the authenticated user","inputSchema":{"properties":{},"required":[],"type":"object"},"name":"list_vps_services"},{"annotations":{"title":"Mount Iso","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Mounts an ISO image on a VPS service","inputSchema":{"properties":{"format_master_disk":{"description":"Whether to format the master disk before mounting the ISO","type":"boolean"},"iso":{"description":"Name of the ISO image to mount","type":"string"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["iso","service_id"],"type":"object"},"name":"mount_iso"},{"annotations":{"title":"Move Firewall Rule","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Moves a firewall rule to a different position in the rule list. Supports both absolute positioning (target_pos) and relative movement (direction). Exactly one of target_pos or direction must be provided.","inputSchema":{"properties":{"direction":{"description":"Firewall rule move direction enum","enum":["up","down","top","bottom"],"type":"string"},"pos":{"description":"Current position/index of the rule to move","type":"number"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"},"target_pos":{"description":"Target position/index for the rule (mutually exclusive with direction)","type":"number"}},"required":["pos","service_id"],"type":"object"},"name":"move_firewall_rule"},{"annotations":{"title":"Reboot Vps","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Gracefully reboot a VPS service. Sends ACPI reboot signal to guest OS","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"reboot_vps"},{"annotations":{"title":"Restore Backup","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Restores a VPS from a backup with the specified backup identifier","inputSchema":{"properties":{"backup_id":{"description":"Backup identifier for the backup to restore","type":"string"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["backup_id","service_id"],"type":"object"},"name":"restore_backup"},{"annotations":{"title":"Retry Payment","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Retries a failed or pending payment for an existing order","inputSchema":{"properties":{"order_id":{"description":"The order identifier to retry payment for","type":"number"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["order_id","service_id"],"type":"object"},"name":"retry_payment"},{"annotations":{"title":"Rollback Snapshot","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Rolls back a VPS to a previous snapshot state","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"},"snapshot_name":{"description":"Snapshot name to rollback to","type":"string"}},"required":["service_id","snapshot_name"],"type":"object"},"name":"rollback_snapshot"},{"annotations":{"title":"Save Domain Required Data","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Saves additional registrar field values for a pending domain. Keys must match additionalFields[].name from list-domains-requiring-data.","inputSchema":{"properties":{"domain_id":{"description":"Domain service id - must be sent as a string","type":"string"},"fields":{"additionalProperties":{"type":"string"},"description":"Registrar field values keyed by additionalFields[].name","properties":{},"type":"object"}},"required":["domain_id","fields"],"type":"object"},"name":"save_domain_required_data"},{"annotations":{"title":"Shutdown Vps","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Gracefully shutdown a VPS service. Sends ACPI shutdown signal to guest OS","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"shutdown_vps"},{"annotations":{"title":"Start Vps","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Starts a stopped VPS service","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"start_vps"},{"annotations":{"title":"Stop Vps","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Hard stops a running VPS service","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"stop_vps"},{"annotations":{"title":"Suggest Domains","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"description":"Generates AI-powered domain name suggestions from a natural-language description. Returns suggested domains with availability status and pricing.","inputSchema":{"properties":{"currency":{"description":"Currency for pricing. Accepts ISO code, symbol, country name, or numeric ID. Defaults to ZAR.","type":"string"},"prompt":{"description":"Natural-language description of the business or idea, e.g. \"my coffee shop\"","type":"string"}},"required":["prompt"],"type":"object"},"name":"suggest_domains"},{"annotations":{"title":"Trigger Reinstall","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Triggers a VPS reinstallation with the specified OS template","inputSchema":{"properties":{"service_id":{"description":"Service ID - must be sent as a string","type":"string"},"template":{"description":"Template identifier for the OS to reinstall","type":"string"}},"required":["service_id","template"],"type":"object"},"name":"trigger_reinstall"},{"annotations":{"title":"Update Domain Contacts","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Updates WHOIS contact information for an owned domain. Each role (Registrant, Admin, Tech, Billing) uses a source type: owner (client profile), contact (saved WHMCS contact id), or custom (inline WHOIS fields). WHOIS values must be nested under fields; for owner and contact they are flattened upstream when present.","inputSchema":{"properties":{"contacts":{"description":"WHOIS contact updates keyed by Registrant, Admin, Tech, and Billing","properties":{"Admin":{},"Billing":{},"Registrant":{},"Tech":{}},"type":"object"},"domain_id":{"description":"Domain service id - must be sent as a string","type":"string"}},"required":["contacts","domain_id"],"type":"object"},"name":"update_domain_contacts"},{"annotations":{"title":"Update Domain Nameservers","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Updates nameservers for an owned domain. ns1 and ns2 are required; ns3 through ns5 are optional.","inputSchema":{"properties":{"domain_id":{"description":"Domain service id - must be sent as a string","type":"string"},"ns1":{"description":"Primary nameserver hostname","type":"string"},"ns2":{"description":"Secondary nameserver hostname","type":"string"},"ns3":{"description":"Optional tertiary nameserver hostname","type":"string"},"ns4":{"description":"Optional quaternary nameserver hostname","type":"string"},"ns5":{"description":"Optional fifth nameserver hostname","type":"string"}},"required":["domain_id","ns1","ns2"],"type":"object"},"name":"update_domain_nameservers"},{"annotations":{"title":"Update Domain Settings","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Updates a single domain setting (auto-renew, ID protection, or paid addons). One setting per request.","inputSchema":{"properties":{"domain_id":{"description":"Domain service id - must be sent as a string","type":"string"},"gateway":{"description":"Payment gateway slug when enabling a paid addon (e.g. stripe)","type":"string"},"setting":{"description":"Allowed domain setting keys for update-domain-settings","enum":["donotrenew","idprotection","dnsmanagement","emailforwarding"],"type":"string"},"value":{"description":"New boolean value","type":"boolean"}},"required":["domain_id","setting","value"],"type":"object"},"name":"update_domain_settings"},{"annotations":{"title":"Update Firewall Rule","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Updates an existing firewall rule for a VPS service","inputSchema":{"properties":{"comment":{"description":"Comment/description for the rule","type":"string"},"pos":{"description":"Position/index of the rule to update","type":"number"},"rule_action":{"description":"Firewall rule action enum","enum":["ACCEPT","DROP","REJECT"],"type":"string"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["pos","service_id"],"type":"object"},"name":"update_firewall_rule"},{"annotations":{"title":"Update Notification","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Updates an existing notification for a VPS service with customizable thresholds for CPU, memory, network, and disk metrics","inputSchema":{"properties":{"cpu_usage":{"description":"CPU usage threshold percentage (0-100)","type":"number"},"data_timeframe":{"description":"Data timeframe in minutes (must be > 0)","type":"number"},"disk_read":{"description":"Disk read threshold percentage (0-100)","type":"number"},"disk_write":{"description":"Disk write threshold percentage (0-100)","type":"number"},"email_address":{"description":"Email addresses for notifications (comma-separated string or array)","items":{"type":"string"},"type":"array"},"exceed_all":{"description":"Whether all thresholds must be exceeded (true) or any one (false)","type":"boolean"},"memory_usage":{"description":"Memory usage threshold percentage (0-100)","type":"number"},"name":{"description":"Name/title for the notification","type":"string"},"network_traffic":{"description":"Network traffic threshold percentage (0-100)","type":"number"},"notification_id":{"description":"Notification ID to update","type":"number"},"notification_interval":{"description":"Notification interval in minutes (must be > 0)","type":"number"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"},"status":{"description":"Notification status values","enum":["on","off","yes","no","true","false","1","0"],"type":"string"}},"required":["notification_id","service_id"],"type":"object"},"name":"update_notification"},{"annotations":{"title":"Update Power Task","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Updates an existing power task (scheduled start/stop/restart operation) for a VPS service","inputSchema":{"properties":{"days":{"description":"Days of the week for weekly jobs","items":{"type":"string"},"type":"array"},"description":{"description":"Description of the power task","type":"string"},"end_date":{"description":"End date in Y-m-d format (e.g., 2026-12-31)","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"end_time":{"description":"End time in HH:MM or HH:MM:SS format","pattern":"^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$","type":"string"},"job_hour":{"description":"Job hour (alternative to job_time)","type":"number"},"job_minutes":{"description":"Job minutes (alternative to job_time)","type":"number"},"job_time":{"description":"Job execution time in HH:MM or HH:MM:SS format","pattern":"^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$","type":"string"},"job_type":{"description":"Power task job type enum","enum":["oneTime","daily","weekly"],"type":"string"},"power_task_action":{"description":"Power action to perform (start, stop, restart)","type":"string"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"},"start_date":{"description":"Start date in Y-m-d format (e.g., 2026-03-25)","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"start_time":{"description":"Start time in HH:MM or HH:MM:SS format","pattern":"^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$","type":"string"},"task_id":{"description":"Power task ID to update","type":"number"}},"required":["service_id","task_id"],"type":"object"},"name":"update_power_task"},{"annotations":{"title":"Update Snapshot","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Updates a snapshot's metadata","inputSchema":{"properties":{"description":{"description":"New description for the snapshot","type":"string"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"},"snapshot_name":{"description":"Snapshot name to update","type":"string"}},"required":["service_id","snapshot_name"],"type":"object"},"name":"update_snapshot"},{"annotations":{"title":"Update Snapshot Job","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Updates an existing snapshot job. Only provide fields you want to change.","inputSchema":{"properties":{"days":{"description":"For daily jobs: days of week when the job should run","items":{"type":"string"},"type":"array"},"description":{"description":"New description for the snapshot job","type":"string"},"job_id":{"description":"Snapshot job ID to update","type":"string"},"name":{"description":"New name for the snapshot job","type":"string"},"period":{"description":"Schedule period for snapshot jobs","enum":["hourly","daily"],"type":"string"},"run_every":{"description":"For hourly jobs: run every N hours (e.g. 6 = every 6 hours)","type":"number"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"},"start_time":{"description":"For daily jobs: start time in HH:MM format (e.g. '02:30')","pattern":"^([01]?[0-9]|2[0-3]):[0-5][0-9]$","type":"string"},"vmstate":{"description":"Whether to include VM state in the snapshot","type":"boolean"}},"required":["job_id","service_id"],"type":"object"},"name":"update_snapshot_job"},{"annotations":{"title":"Update Vps Config","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"description":"Updates VPS configuration settings such as name, hostname, auto-start, boot order, and CD-ROM","inputSchema":{"properties":{"auto_start":{"description":"Auto-start on boot (0 or 1)","type":"number"},"boot":{"description":"Boot order configuration","type":"string"},"cdrom":{"description":"CD-ROM configuration","type":"string"},"hostname":{"description":"New hostname for the VPS","type":"string"},"ide2":{"description":"IDE2 device configuration","type":"string"},"name":{"description":"New name for the VPS","type":"string"},"service_id":{"description":"Service ID - must be sent as a string","type":"string"}},"required":["service_id"],"type":"object"},"name":"update_vps_config"},{"annotations":{"title":"Validate Pricing","readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Validates pricing for one or more VPC service products, returning per-product breakdown and order summary","inputSchema":{"properties":{"products":{"description":"List of products to validate pricing for","items":{"properties":{"billing_cycle":{},"config_options":{"description":"Configuration options as a free-form map (option_id -> value)"},"hostname":{"description":"Hostname to assign to the service","type":"string"},"pid":{"description":"Product ID","format":"int32","type":"integer"},"plan_id":{"description":"Plan ID for the selected product configuration","format":"int32","type":"integer"}},"required":["billing_cycle","config_options","pid","plan_id"],"type":"object"},"type":"array"},"promo":{"description":"Optional promotional code to apply","type":"string"}},"required":["products"],"type":"object"},"name":"validate_pricing"}]}}