Skip to main content
Glama

pikvm_ssh

Run read-only SSH commands on PiKVM as root with safeguards; require confirmation for risky changes and block files containing secrets.

Instructions

Run one command on the PiKVM over SSH (as root).

Safe read-only commands run right away (cat of /etc/kvmd files, systemctl status, journalctl, df, uptime, ip a, vcgencmd measure_temp, kvmd -m, pacman -Q, ls, and pipes into head, tail, grep, wc). Anything else needs confirm=true after the user says yes. Risky ones (rm, reboot, pacman, pikvm-update, passwd, stopping services and similar) also need confirm_phrase equal to the first word of the command. Files with passwords or keys are blocked. The PiKVM disk is read-only. To change a config file use pikvm_config_write instead.

Input Schema

NameRequiredDescriptionDefault
serverNo
commandYes
confirmNo
timeoutNo
max_charsNo
confirm_phraseNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations present, the description carries the full burden and does so well: it discloses the confirmation ladder, that secret-bearing files are blocked, that commands execute as root, and that the PiKVM disk is read-only. It stops short of explaining timeout behavior or that max_chars truncates output, which are material behavioral traits for a shell-execution 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?

The safety gate and the escalation path are front-loaded in the first three lines, with the config-write redirect at the end. Dense but each sentence carries an operational rule; minor redundancy in 'and similar' hedging.

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?

An output schema exists, so return values need not be described. For a root shell tool the critical unknowns (confirmation, blocking, disk state) are covered; the remaining gap is the undefined server/timeout/max_chars parameters, which leaves it just short of fully complete.

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 0%, so the description must compensate. It usefully defines the semantics of confirm and confirm_phrase (including that the phrase is the first word of the command) but says nothing about server selection, timeout, or max_chars, leaving half the parameters undocumented anywhere.

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 ('Run one command on the PiKVM over SSH (as root)') and immediately frames the guardrail model. It also names the sibling it is not for config edits (pikvm_config_write), so an agent can distinguish it from pikvm_call, pikvm_config_read, or pikvm_service without opening a schema.

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 a concrete allowlist of read-only commands that run without confirmation, states that everything else requires confirm=true after user approval, and adds a second escalation tier (confirm_phrase) for risky commands. It also routes the alternative case ('To change a config file use pikvm_config_write instead'), which is exactly the when/when-not/alternative structure.

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