Skip to main content
Glama

hcl_apply_nat

Destructive

Applies static, dynamic, or interface/pool PAT NAT intent to one staged router, with bounded backup, readback, and same-VM recovery.

Instructions

Apply static, dynamic or interface/pool PAT intent to one staged router.

Uses recorded ACL/pool identities, bounded backup/readback/persistence and same-VM recovery. Comware outbound semantics and pool ranges do not prove IOS ingress-role/netmask equivalence.

Input Schema

NameRequiredDescriptionDefault
dry_runNo
topologyYes
parametersYes
project_pathYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.0

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already flag destructive=true, idempotent=false, and closed-world, so the description is not carrying the whole safety burden. It still adds real value by disclosing bounded backup/readback/persistence and same-VM recovery — behavior an agent cannot infer from the annotations. It omits whether failure rolls back automatically and what the response contains, which is why it is not a 5.

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

Conciseness4/5

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

Three tight sentences, front-loaded with the core action and scope before the operational caveats. No filler; the final sentence is dense but earns its place as a correctness warning. Slightly telegraphic phrasing ('same-VM recovery') costs a little readability.

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

Completeness2/5

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

For a destructive, non-idempotent mutation with a deep nested schema, no output schema, and near-zero parameter documentation, the description explains the transactional safety net but leaves too much open: dry_run semantics, the idempotency/operation_key contract, timeout behavior, and return payload are all unstated.

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

Parameters2/5

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

Schema description coverage is 0% against a nested parameters object with roughly twenty properties, so the description must compensate and largely does not. It touches mode and obliquely alludes to acl_namespace and pool_netmask in the Comware/IOS sentence, but dry_run, operation_key, timeout_seconds, use_interface_overload, pool_address_group, and the inside/outside interface constraints get no explanation.

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?

States a specific verb (apply) and resource (NAT intent) with explicit modes (static, dynamic, interface/pool PAT) and a scope boundary (one staged router). It implicitly separates from hcl_remove_nat and hcl_apply_acl, but never names an alternative, so it stops short of a 5.

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

Usage Guidelines3/5

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

"One staged router" implies the device must already be staged and that this operates on a single target, which is useful selection context. However there is no explicit when-to-use versus hcl_remove_nat / hcl_apply_acl, no stated prerequisites (must the ACL/pool already exist?), and no guidance on when dry_run should be chosen.

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