Skip to main content
Glama

Set private network DNS

set_private_network_dns
DestructiveIdempotent

Set a VPSnet private network's DHCP DNS mode and resolver addresses; use custom mode with dns_servers, and changes affect attached guest name resolution.

Instructions

Replace the network's DHCP DNS mode and resolver addresses; changing or disabling them can interrupt name resolution for attached guests. Use dns_servers only for custom mode. Poll get_private_network.settings.dns_change; its DNS update UUID is not in the network operations feed. Requires explicit networking:read for reads or networking:manage for changes; full/read defaults do not grant networking. The backend enforces ownership, feature availability and service 2FA locks. Read current capabilities and owned resource state first; obtain approval for the exact change. An accepted operation is pending, not proof of connectivity. Poll the returned operation/resource on its in_progress flag, waiting next_check_seconds between reads: while in_progress is true its reason_code is what is awaited (reason_kind waiting, e.g. a queued or pending reason, or a control plane that has not answered yet), never an error; only in_progress false with reason_kind failure is a failure. Preserve reason_code. On transport uncertainty inspect state and reuse only the original key and unchanged request; never automatically retry.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dns_modeYes
network_idYesExact lowercase UUID returned by an owned networking resource
dns_serversNo
idempotencyKeyYesIdempotency-Key for this exact change; preserve it and the unchanged body on uncertain recovery

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.3.16

TDQS

A4/5.0
Behavior5/5

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

Far exceeds the annotations: it discloses disruption risk to attached guests, the exact scope required (networking:read vs networking:manage, and that full/read defaults do not grant networking), backend ownership/feature/2FA enforcement, the fact that an accepted operation is pending rather than proven connectivity, and a full polling protocol for reason_code/reason_kind, plus idempotency-recovery rules. This is unusually rich disclosure for a destructive mutation.

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

Conciseness3/5

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

Purpose and the interruption warning are correctly front-loaded, but the back half is a long generic operation-polling/idempotency protocol that reads as boilerplate shared across many mutating tools. Much of it is operational guidance rather than tool-specific semantics, inflating the size without proportional per-sentence value.

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

Completeness4/5

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

With no output schema and only 50% schema description coverage, the description compensates well on auth, safety, pending-vs-success semantics, and recovery. The remaining gap is the dns_mode mode values and the shape of the returned operation/resource the agent is told to poll.

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

Parameters3/5

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

Schema coverage is 50%, so the description must carry part of the burden; it meaningfully constrains dns_servers to custom mode. However, the three dns_mode enum values (provider/custom/none) are never explained, and the description does not clarify what each mode does to DHCP behavior, leaving the highest-impact parameter under-defined.

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

Purpose4/5

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

The opening clause gives a precise verb+resource+scope: 'Replace the network's DHCP DNS mode and resolver addresses,' which clearly separates it from guest- or domain-level DNS siblings. It stops short of naming a specific alternative tool, so the differentiation is implied rather than explicit.

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

Usage Guidelines4/5

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

Gives a concrete parameter-usage rule ('Use dns_servers only for custom mode'), a prerequisite sequence ('Read current capabilities and owned resource state first; obtain approval'), and a risk warning that changing/disabling interrupts guest name resolution. It never names a competing sibling tool to route the agent elsewhere, so it lands at 4 rather than 5.

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