Skip to main content
Glama

fleet_host_edit

Edit a host in fleet.yaml: add, update, disable/enable, move groups, or remove via dry-run diff, then apply with backup; refuses changed file.

Instructions

Edit a host in fleet.yaml (this machine's inventory, not the server): add, change fields, move between groups, switch off/on (disabled), remove. The dry run shows the diff of fleet.yaml (layout and comments kept) and refuses a result mia could not load; apply writes it with a backup in the state directory and refuses if the file changed since the plan.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
opYesadd a host, update its fields, disable/enable it (disabled: true), remove it
nameYeshost key in fleet.yaml, e.g. pl3
portNossh port
sudoNorun commands through sudo -n
tagsNotags, e.g. prod
userNossh user (default: defaults.user)
applyNofalse (default) = dry run: show what will happen on which hosts and a planHash. true = run it; needs planHash
notesNo
rolesNoroles: edge | remnanode | panel | docker
titleNoname for people: the animal with its emoji, e.g. "🐧 penguin"
unsetNofields to remove: address, user, port, sudo, roles, tags, domain, panelNode, title, provider, notes
domainNoremnanode TLS domain
groupsNothe groups the host is in after the edit (missing ones are created; omit to leave membership as is)
addressNossh target: tailnet name (node-pl3), IP or ~/.ssh/config alias
planHashNoplanHash from the dry run of the very same call, good for one apply; refused if targets or their state changed since
providerNo
panelNodeNonode name in the Remnawave panel

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: it discloses that the dry run preserves layout and comments and refuses an unloadable result, and that apply creates a backup in the state directory and refuses if the file changed since the plan (optimistic-concurrency guard). It does not mention permissions or the exact failure surface, but the safety and workflow profile is unusually complete for a mutation tool.

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?

Two dense sentences, front-loaded with purpose then behavior. No filler, though the second sentence is long and packs the dry-run/apply mechanics tightly.

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?

For a 17-parameter mutation tool with no annotations and no output schema, the description supplies the missing behavioral layer (dry run vs apply, backup, conflict refusal, comment preservation) while the schema covers parameter detail. An agent has what it needs to call it correctly, though explicit alternative routing is absent.

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 description coverage is 88%, so the schema already documents the parameters, and the baseline is 3. The description loosely maps the op enum to operations ('switch off/on (disabled)') and mentions group-membership editing, adding marginal meaning but no syntax or format detail beyond the schema.

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?

States a specific verb (Edit) and resource (a host in fleet.yaml) and then disambiguates scope explicitly with 'this machine's inventory, not the server', which separates it from server-side siblings like remnanode_update or host_inspect. It also enumerates the operations covered (add, change, move, disable/enable, remove), so an agent knows the tool's full remit without opening the schema.

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?

The description explains the dry-run-then-apply workflow (dry run default, apply writes), which implicitly tells the agent how to invoke it, but it names no alternative or 'when not to use' condition. With siblings like fleet_hosts and host_inspect present, the absence of routing guidance leaves selection to inference.

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