Skip to main content
Glama

Upsert DNS record

upsert_dns_record
Destructive

Create or update a forward DNS record in a VPSnet zone by name, type, and content, preserving existing values or updating TTL and comment when identical.

Instructions

Add a forward DNS desired-state record to a native zone, identified by name, type and content together. Different content adds another record and keeps existing values; it does not replace them. An identical tuple updates its TTL/comment and re-enables it if disabled. To replace an existing record's content, read get_dns_zone and pass its exact record_id to update_dns_record. Changes affect public answers after publication. PTR and *.arpa are rejected; use change_rdns for reverse DNS. Requires dns:write when using an API key.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ttlNoTTL in seconds, allowed range 60-604800. Defaults to 120.
nameYesRecord name. Use @ for apex, or a relative name inside the zone.
typeYesDNS record type. PTR is intentionally not supported here.
commentNoOptional note about this record, max 255 chars.
contentYesDNS record value for the selected type
zone_idYesDNS zone ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.3.16

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint/openWorldHint annotations, the description discloses non-obvious semantics: additive rather than replacement behavior, re-enabling of disabled records on an identical tuple, the auth scope (dns:write), and the fact that changes only affect public answers after publication. These are meaningful behavioral traits an agent could not infer from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Business logic is front-loaded, followed by alternatives and constraints, in five dense sentences with no filler. Every sentence carries actionable information and none merely restates the name or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating tool with no output schema, the description covers identity semantics, mutation behavior, auth requirement, and routing to sibling tools, while annotations carry the safety profile. Nothing critical to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description adds real meaning by explaining that name, type and content jointly identify a record and how ttl/comment behave on a matching tuple. It does not add per-parameter format detail (e.g., TTL ranges), which the schema already supplies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (add/upsert) and resource (forward DNS desired-state record in a native zone) and immediately clarifies the identity key as the name+type+content tuple. It explicitly names and distinguishes the sibling tools update_dns_record and change_rdns, so an agent can tell them apart without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use behavior (different content appends, identical tuple updates TTL/comment) and states when NOT to use it (PTR and *.arpa are rejected; use change_rdns for reverse DNS) plus the alternative for replacement (get_dns_zone + update_dns_record). Preconditions and the required dns:write permission are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools