Skip to main content

Hostinger VPS Create Firewall Rule V1

Immutable Catalog Entry

This descriptor comes from the active versioned Portal catalog.

WRITEhostinger.VPS_createFirewallRuleV1
  • Contract tier: agent_ready
  • Risk: write
  • Catalog version: hostinger-2026.07.12.1
  • Descriptor hash: 8992b2c4725c40e5ba2117373f5642616a3c7f5dec9745db8124bcd0f0f40606

Use this tool when you need the Hostinger operation Create firewall rule. Create new firewall rule for a specified firewall. By default, the firewall drops all incoming traffic, which means you must add accept rules for all ports you want to use. Any virtual machine that has this firewall activated will lose sync with the firewall and will have to be synced again manually. Use this endpoint to add new security rules to firewalls. It calls POST /api/vps/v1/firewall/{firewallId}/rules against the configured Hostinger account. This changes external Hostinger state and requires confirm=true. Provider parameters: firewallId (path, required): Firewall ID 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_createFirewallRuleV1: Create firewall rule. Create new firewall rule for a specified firewall. By default, the firewall drops all incoming traffic, which means you must add accept rules for all ports you want to use. Any virtual machine that has this firewall activated will lose sync with the firewall and will have to be synced again manually. Use this endpoint to add new security rules to firewalls. Endpoint: POST /api/vps/v1/firewall/{firewallId}/rules. Path params: firewallId. Request body: required/accepted. Risk class: write. This write tool requires confirm=true. 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-createfirewallrulev1-example",
"method": "tools/call",
"params": {
"name": "hostinger.VPS_createFirewallRuleV1",
"arguments": {
"path_params": "",
"body": "",
"params": "",
"compact": "",
"confirm": false,
"dry_run": false,
"max_items": "",
"include_raw": false,
"confirmation_phrase": ""
}
}
}

Arguments Schema

{
"type": "object",
"required": [
"path_params",
"body"
],
"properties": {
"body": {
"anyOf": [
{
"type": "object",
"required": [
"protocol",
"port",
"source",
"source_detail"
],
"properties": {
"port": {
"type": "string",
"description": "Port or port range, ex: 1024:2048"
},
"source": {
"enum": [
"any",
"custom"
],
"type": "string",
"description": "Hostinger request body field source."
},
"protocol": {
"enum": [
"TCP",
"UDP",
"ICMP",
"GRE",
"any",
"ESP",
"AH",
"ICMPv6",
"SSH",
"HTTP",
"HTTPS",
"MySQL",
"PostgreSQL"
],
"type": "string",
"description": "Hostinger request body field protocol."
},
"source_detail": {
"type": "string",
"description": "IP range, CIDR, single IP or `any`"
}
}
},
{
"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",
"required": [
"firewallId"
],
"properties": {
"firewallId": {
"type": "integer",
"description": "Firewall ID"
}
},
"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 -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-createfirewallrulev1-example",
"method": "tools/call",
"params": {
"name": "hostinger.VPS_createFirewallRuleV1",
"arguments": {
"path_params": "",
"body": "",
"params": "",
"compact": "",
"confirm": false,
"dry_run": false,
"max_items": "",
"include_raw": false,
"confirmation_phrase": ""
}
}
}'

Example Responses

{
"ok": true,
"message": "Tool hostinger.VPS_createFirewallRuleV1 executed successfully.",
"note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
}