Skip to main content
Glama

pikvm_config_write

Replaces a PiKVM config file over SSH after diff confirmation, creates a backup, validates changes, and restores read-only mode.

Instructions

Replace a PiKVM config file over SSH. Needs one PiKVM.

path: same allowed files as pikvm_config_read. content: the WHOLE new file (read it first with pikvm_config_read, change it, send it all back). The first call shows a diff and does nothing. After the user says yes, call again with confirm=true. The tool makes the disk writable, saves a backup next to the file (.bak-date), writes the file, runs "kvmd -m" to check /etc/kvmd/*.yaml files (and puts the old file back if the check fails), then makes the disk read-only again. restart: optional service to restart after a good write, usually kvmd. A restart of kvmd, kvmd-nginx or kvmd-otg also needs confirm_phrase equal to the service name.

Input Schema

NameRequiredDescriptionDefault
pathYes
serverNo
confirmNo
contentYes
restartNo
confirm_phraseNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so well: it discloses the disk writable/read-only cycle, a .bak-date backup, a 'kvmd -m' validation that rolls back the old file on failure, and the extra confirm_phrase gate for restarting kvmd, kvmd-nginx or kvmd-otg. This is exactly the context an agent needs before performing a destructive write.

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?

Front-loads the verb and the target, then moves through path/content, confirmation flow, side effects, and restart. Dense but almost every clause earns its place; the label-style line breaks ('path:', 'content:', 'restart:') read a bit terse and fragment the flow, which keeps it just short of a 5.

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 destructive 6-parameter write tool with no annotations, the description covers the confirmation protocol, the side effects and their rollback, the restart semantics, and the prerequisite read tool. An output schema exists, so the absence of return-value detail is not a gap.

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 coverage is 0%, so the description must compensate and mostly does: path is tied to pikvm_config_read's allowed set, content is defined as the WHOLE new file, confirm is bound to the second call, and restart/confirm_phrase are explained together with their values. The one gap is 'server', which is never described beyond the phrase 'Needs one PiKVM', even though it is the parameter that selects the target device.

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 and resource: 'Replace a PiKVM config file over SSH', with an explicit scope qualifier ('Needs one PiKVM'). An agent can immediately distinguish this write path from the sibling pikvm_config_read and from the other PiKVM tools.

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?

Gives an explicit workflow: read the file first with pikvm_config_read, edit, send the whole content back. It also spells out the two-step confirmation ('The first call shows a diff and does nothing. After the user says yes, call again with confirm=true') and names the sibling it depends on, leaving no ambiguity about when and how to invoke it.

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