Hostinger DNS Update Dnsrecords 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:
a716935ca11e5140fa9e94f5a4d1a8e455bc152fcd0f375cb0ffa62d2cb8c75a
Use this tool when you need the Hostinger operation Update DNS records. Update DNS records for the selected domain. Using overwrite = true will replace existing records with the provided ones. Otherwise existing records will be updated and new records will be added. Use this endpoint to modify domain DNS configuration. It calls PUT /api/dns/v1/zones/{domain} 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: domain (path, required): Domain name 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 DNS_updateDNSRecordsV1: Update DNS records. Update DNS records for the selected domain. Using overwrite = true will replace existing records with the provided ones. Otherwise existing records will be updated and new records will be added. Use this endpoint to modify domain DNS configuration. Endpoint: PUT /api/dns/v1/zones/{domain}. Path params: domain. Request body: required/accepted. Risk class: destructive. This destructive tool requires confirm=true and confirmation_phrase='I understand this may delete or overwrite Hostinger resources'. 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-dns-updatednsrecordsv1-example",
"method": "tools/call",
"params": {
"name": "hostinger.DNS_updateDNSRecordsV1",
"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": [
"zone"
],
"properties": {
"zone": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"records",
"type"
],
"properties": {
"ttl": {
"type": "integer",
"description": "TTL (Time-To-Live) of the record"
},
"name": {
"type": "string",
"description": "Name of the record (use `@` for wildcard name)"
},
"type": {
"enum": [
"A",
"AAAA",
"CNAME",
"ALIAS",
"MX",
"TXT",
"NS",
"SOA",
"SRV",
"CAA"
],
"type": "string",
"description": "Type of the record"
},
"records": {
"type": "array",
"items": {
"type": "object",
"required": [
"content"
],
"properties": {
"content": {
"type": "string",
"description": "Content of the name record"
}
}
},
"description": "Records assigned to the name"
}
}
},
"description": "Hostinger request body field zone."
},
"overwrite": {
"type": "boolean",
"description": "If `true`, resource records (RRs) matching name and type will be deleted and new RRs will be created,\notherwise resource records' ttl's are updated and new records are appended.\nIf no matching RRs are found, they are created."
}
}
},
{
"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": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Domain name"
}
},
"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-dns-updatednsrecordsv1-example",
"method": "tools/call",
"params": {
"name": "hostinger.DNS_updateDNSRecordsV1",
"arguments": {
"path_params": "",
"body": "",
"params": "",
"compact": "",
"confirm": false,
"dry_run": false,
"max_items": "",
"include_raw": false,
"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-dns-updatednsrecordsv1-example",
"method": "tools/call",
"params": {
"name": "hostinger.DNS_updateDNSRecordsV1",
"arguments": {
"path_params": "",
"body": "",
"params": "",
"compact": "",
"confirm": false,
"dry_run": false,
"max_items": "",
"include_raw": false,
"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-dns-updatednsrecordsv1-example",
"method": "tools/call",
"params": {
"name": "hostinger.DNS_updateDNSRecordsV1",
"arguments": {
"path_params": "",
"body": "",
"params": "",
"compact": "",
"confirm": false,
"dry_run": false,
"max_items": "",
"include_raw": false,
"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.DNS_updateDNSRecordsV1 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."
}