Hostinger VPS Purchase New Virtual Machine V1
This descriptor comes from the active versioned Portal catalog.
- Contract tier:
agent_ready - Risk:
destructive - Catalog version:
hostinger-2026.07.12.1 - Descriptor hash:
c50367d4c4b988ef8c9a2be7820eb31e4ad7a32eeb22da6c05845e678ad10ba1
Use this tool when you need the Hostinger operation Purchase new virtual machine. Purchase and setup a new virtual machine. If virtual machine setup fails for any reason, login to hPanel and complete the setup manually. If no payment method is provided, your default payment method will be used automatically. Use this endpoint to create new VPS instances. It calls POST /api/vps/v1/virtual-machines against the configured Hostinger account. This can delete, overwrite, change credentials, or spend money and requires both the declared confirmation controls and a Portal destructive preview. Provider parameters: This operation has no path or query parameters. The body follows the complete Hostinger schema in inputSchema. Do not place API tokens in arguments; credentials arrive only through protected Portal headers. The result is the normalized Hostinger MCP envelope with data, safe error details, HTTP/rate metadata, and pagination metadata when available. Runtime summary: Use this when you need Hostinger API operation VPS_purchaseNewVirtualMachineV1: Purchase new virtual machine. Purchase and setup a new virtual machine. If virtual machine setup fails for any reason, login to hPanel and complete the setup manually. If no payment method is provided, your default payment method will be used automatically. Use this endpoint to create new VPS instances. Endpoint: POST /api/vps/v1/virtual-machines. Path params: none. Request body: required/accepted. Risk class: spend. This spend tool requires confirm=true and confirmation_phrase='I understand this may charge my Hostinger account'. Returns the compact MAD envelope {ok,data,error,meta}; set dry_run=true to preview without calling Hostinger.
Request Body
{
"jsonrpc": "2.0",
"id": "hostinger-vps-purchasenewvirtualmachinev1-example",
"method": "tools/call",
"params": {
"name": "hostinger.VPS_purchaseNewVirtualMachineV1",
"arguments": {
"body": "",
"params": "",
"compact": "",
"confirm": false,
"dry_run": false,
"max_items": "",
"include_raw": false,
"path_params": "",
"confirmation_phrase": ""
}
}
}
Arguments Schema
{
"type": "object",
"required": [
"body"
],
"properties": {
"body": {
"anyOf": [
{
"type": "object",
"required": [
"item_id",
"setup"
],
"properties": {
"setup": {
"type": "object",
"required": [
"data_center_id",
"template_id"
],
"properties": {
"ns1": {
"type": "string",
"description": "Name server 1"
},
"ns2": {
"type": "string",
"description": "Name server 2"
},
"hostname": {
"type": "string",
"description": "Override default hostname of the virtual machine"
},
"password": {
"type": "string",
"description": "Password for the virtual machine. If not provided, random password will be generated.\nPassword will not be shown in the response. Provider format: password."
},
"public_key": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Contents of the SSH key"
},
"name": {
"type": "string",
"description": "Name of the SSH key"
}
},
"description": "Use SSH key"
},
"template_id": {
"type": "integer",
"description": "Template ID"
},
"data_center_id": {
"type": "integer",
"description": "Data center ID"
},
"enable_backups": {
"type": "boolean",
"description": "Enable weekly backup schedule"
},
"install_monarx": {
"type": "boolean",
"description": "Install Monarx malware scanner (if supported)"
},
"post_install_script_id": {
"type": "integer",
"description": "Post-install script ID"
}
},
"description": "Hostinger request body field setup."
},
"coupons": {
"type": "array",
"items": {},
"description": "Discount coupon codes"
},
"item_id": {
"type": "string",
"description": "Catalog price item ID"
},
"payment_method_id": {
"type": "integer",
"description": "Payment method ID, default will be used if not provided"
}
}
},
{
"type": "null"
}
],
"default": null,
"description": "JSON request body using the complete checked-in Hostinger provider schema."
},
"params": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": false
},
{
"type": "null"
}
],
"default": null,
"description": "Exact query parameters for this Hostinger operation, keyed by the provider names shown here."
},
"compact": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "When true, truncate large arrays using MCP_MAX_ITEMS_* limits."
},
"confirm": {
"type": "boolean",
"default": false,
"description": "Required as true for any Hostinger write, spend, or destructive call."
},
"dry_run": {
"type": "boolean",
"default": false,
"description": "Preview the request and risk gates without calling Hostinger."
},
"max_items": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum array items to keep when compacting responses."
},
"include_raw": {
"type": "boolean",
"default": false,
"description": "When true, include raw Hostinger response alongside normalized data."
},
"path_params": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": false
},
{
"type": "null"
}
],
"default": null,
"description": "Exact path parameters for this Hostinger operation, keyed by the provider names shown here."
},
"confirmation_phrase": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Required exact phrase for spend, credential, and destructive tools."
}
},
"additionalProperties": false
}
Output Schema
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ok",
"data",
"error",
"meta"
],
"properties": {
"ok": {
"type": "boolean",
"description": "True only when the requested Hostinger or local catalog operation succeeded."
},
"data": {
"description": "Normalized result data, or null when the operation failed."
},
"meta": {
"type": "object",
"description": "Safe endpoint, timing, pagination, rate, catalog, and next-action metadata.",
"additionalProperties": true
},
"error": {
"description": "Secret-safe structured error details, or null on success."
}
},
"description": "Normalized Hostinger MCP response envelope.",
"additionalProperties": false
}
Code Examples
- cURL
- Node.js
- Python
curl -X POST 'https://portal.madpanda3d.com/api/mcp' \
-H 'Authorization: Bearer mad_live_***' \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": "hostinger-vps-purchasenewvirtualmachinev1-example",
"method": "tools/call",
"params": {
"name": "hostinger.VPS_purchaseNewVirtualMachineV1",
"arguments": {
"body": "",
"params": "",
"compact": "",
"confirm": false,
"dry_run": false,
"max_items": "",
"include_raw": false,
"path_params": "",
"confirmation_phrase": ""
}
}
}'
const response = await fetch('https://portal.madpanda3d.com/api/mcp', {
method: 'POST',
headers: {
Authorization: 'Bearer mad_live_***',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": "hostinger-vps-purchasenewvirtualmachinev1-example",
"method": "tools/call",
"params": {
"name": "hostinger.VPS_purchaseNewVirtualMachineV1",
"arguments": {
"body": "",
"params": "",
"compact": "",
"confirm": false,
"dry_run": false,
"max_items": "",
"include_raw": false,
"path_params": "",
"confirmation_phrase": ""
}
}
}),
});
const data = await response.json();
console.log(data);
import requests
url = 'https://portal.madpanda3d.com/api/mcp'
headers = {
'Authorization': 'Bearer mad_live_***',
'Content-Type': 'application/json',
}
payload = {
"jsonrpc": "2.0",
"id": "hostinger-vps-purchasenewvirtualmachinev1-example",
"method": "tools/call",
"params": {
"name": "hostinger.VPS_purchaseNewVirtualMachineV1",
"arguments": {
"body": "",
"params": "",
"compact": "",
"confirm": false,
"dry_run": false,
"max_items": "",
"include_raw": false,
"path_params": "",
"confirmation_phrase": ""
}
}
}
response = requests.post(url, headers=headers, json=payload, timeout=60)
print(response.json())
Example Responses
- 200 Success
- 502 Upstream Error
{
"ok": true,
"message": "Tool hostinger.VPS_purchaseNewVirtualMachineV1 executed successfully.",
"note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
}
{
"ok": false,
"classification": "upstream_http_error",
"message": "Upstream MCP returned a non-success status."
}