Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PIKVM_URLNoThe URL of the PiKVM web interface, e.g., https://172.16.10.29
PIKVM_USERNoThe username for the PiKVM web login (default: admin)admin
PIKVM_SERVERSNoComma-separated list of PiKVM names for multiple PiKVM mode. For each name, you must also provide PIKVM_URL_<NAME>, PIKVM_PASSWORD_<NAME>, PIKVM_SSH_PASSWORD_<NAME>, and optionally PIKVM_TOTP_SECRET_<NAME>. <NAME> is the name in capitals with non-alphanumeric characters replaced by underscore.
PIKVM_SSH_KEYNoPath to a private key for SSH authentication
PIKVM_PASSWORDNoThe password for the PiKVM web login
PIKVM_SSH_HOSTNoThe SSH host for the PiKVM (default: the host in PIKVM_URL)
PIKVM_SSH_PORTNoThe SSH port (default: 22)22
PIKVM_SSH_USERNoThe SSH username (default: root)root
PIKVM_VERIFY_TLSNoSet to true to verify the TLS certificate (default: false)false
PIKVM_TOTP_SECRETNoTOTP secret for 2FA on the PiKVM web login (if 2FA is enabled). To get the secret, SSH in and run cat /etc/kvmd/totp.secret
PIKVM_DOWNLOAD_DIRNoDirectory to store downloaded files
PIKVM_SSH_PASSWORDNoThe SSH password for the PiKVM

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
pikvm_serversA

List the PiKVMs this tool can reach.

Shows names, addresses and whether SSH is set up. Never shows passwords.

pikvm_endpointsA

List the PiKVM web API paths this tool knows, with their options.

query: a word to look for. group: system, hid, atx, msd, gpio, streamer, switch, export. Use pikvm_call to run one.

pikvm_infoC

Show PiKVM details: version, hardware, health (throttling, temperature), name.

fields: any of auth, extras, fan, hw, meta, system (comma separated).

pikvm_statusB

One look at the target machine: power (ATX), screen (streamer), keyboard and mouse (HID), and virtual drive (MSD).

pikvm_callA

Call any PiKVM web API path (see pikvm_endpoints).

method: GET or POST (DELETE too). path: starts with /api/. params: query options. Reads run right away. Changes need confirm=true after the user says yes. Power off, reset, deleting images and similar also need confirm_phrase equal to the path. Login and websocket paths are blocked.

pikvm_powerA

Power control of the target machine through ATX.

action: status, on, off (soft, like a short press), off_hard (cut power, long press), reset_hard, click_power, click_power_long, click_reset. Everything except status and on can shut the machine down or restart it. Those need confirm=true and confirm_phrase equal to the path shown in the reply.

pikvm_snapshotA

Take a picture of what the target machine is showing on its screen.

ocr: also read the text on the screen. max_width: shrink the picture (pixels). save: also keep the full size picture as a file on this computer. Needs one PiKVM (not "all").

pikvm_typeB

Type on the target machine like a USB keyboard.

text: text to type. shortcut: keys together, like ControlLeft,AltLeft,Delete. Give one of them. This changes what the machine does, so it needs confirm=true.

pikvm_msdA

The virtual USB drive (mass storage) that shows an ISO or disk image to the target.

action: status (also lists images), select (pick an image), connect, disconnect, download (fetch an image from url into the PiKVM), remove (delete an image). select: image name, cdrom=true for ISO, read_write=true for a writable disk. download: url, plus image for the file name. remove needs confirm_phrase equal to the path.

pikvm_logC

Show the PiKVM (kvmd) log. Newest lines at the end.

lines: how many lines from the end to keep.

pikvm_sshA

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.

pikvm_system_infoB

A read-only health check over SSH: OS, kvmd version, uptime, disk, memory, temperature, throttling, USB gadget, network addresses, and the state of the main PiKVM services.

pikvm_config_readA

Read a PiKVM config file over SSH.

Default is /etc/kvmd/override.yaml, the file where your own settings live. Allowed: text files in /etc/kvmd/, /boot/config.txt, /boot/cmdline.txt, /etc/hostname. Files with passwords, keys or 2FA secrets are blocked.

pikvm_config_writeA

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.

pikvm_serviceA

Check or control a service on the PiKVM over SSH.

action: status, start, restart, reload, enable, disable, stop. unit: for example kvmd, kvmd-nginx, kvmd-vnc, kvmd-ipmi, kvmd-janus, kvmd-webterm. Status runs right away. Stop and disable, and any restart of kvmd, kvmd-nginx, kvmd-otg, ssh or networking, need confirm_phrase equal to the unit name.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 15 tools

Disambiguation4/5

Most tools target distinct resources (power, HID, MSD, config, services, logs). The main soft spots are pikvm_info vs pikvm_system_info vs pikvm_status, and pikvm_ssh vs pikvm_system_info, but descriptions clarify the API-vs-SSH vs target-state split, and pikvm_call is explicitly framed as an escape hatch rather than a competing tool.

Naming Consistency4/5

Every tool shares the pikvm_ prefix with consistent snake_case, which makes the set very legible. The only deviation is mixing noun-oriented names (pikvm_info, pikvm_status, pikvm_servers) with verb-oriented ones (pikvm_call, pikvm_type, pikvm_power), but the pattern remains predictable.

Tool Count4/5

15 tools is a reasonable, well-scoped surface for a device-control server spanning power, HID, storage, config, and services. A few tools (pikvm_info/pikvm_status, pikvm_system_info) feel slightly redundant, but each still covers a distinct slice.

Completeness4/5

Core lifecycle coverage is strong: read/write config, service control, power actions, HID input, MSD management, snapshots, logs, and a generic API passthrough that fills remaining gaps. Minor omissions like local image upload to MSD are workable via pikvm_call.

Maintenance

ActivityMaintained
ResponsivenessNo issues