Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
alertsA

Check resource alerts for CPU, memory, and disk usage against configured thresholds. It reads and compares; nothing is sent anywhere and nothing is recorded, which is what a running watcher does instead

alerts_historyA

Show recorded alert and remediation history. Entries are only written while a watcher is running, so an empty list means nothing was recording rather than nothing went wrong

backup_createA

Create a Docker compose backup archive for all services or one service. Volumes are read while the containers run, so a database mid-write can land inconsistent; an archive is not evidence it restores, which is what backup_drill answers

backup_drillA

Verify a backup by booting an app in an isolated Docker environment and checking that it responds. A second copy runs beside the live one on a network and port of its own, and everything it made is removed either way. A pass means the archive is not corrupt and the app starts on it, not that every row is there

backup_listA

List existing backup archives in the configured backup directory. It reads names, sizes and dates — that an archive is here says nothing about whether it restores, which is what backup_drill answers

backup_restoreA

Restore Docker volumes from a backup archive, overwriting the data the app is running on. Destructive: confirm intent before calling. Bind mounts declared by the archive are always refused here, because an agent has no way to name a host path it may write to

config_validateA

Check the config file this server is running on: which file was used, which rule selected it, what was read from each section, and anything wrong or silently ignored

docker_inspectA

Summarize a Docker container's image, state, restart policy, ports, mounts, networks, and health. Environment variable values are never included

docker_listA

List Docker containers with their status, image, and ports. Stopped containers are included, so a name appearing here is not a name that is running — read state

docker_logsA

Get logs from a Docker container: the last lines only, 50 by default, and it returns rather than following the stream

docker_restartA

Restart a Docker container by name. It goes down and comes back, and the result says the restart command succeeded, not that the app inside is serving again. Read the logs first if you do not know why it needs restarting

docker_statsA

Get resource usage statistics (CPU, memory, network, block I/O) for all running Docker containers

docker_stopA

Stop a Docker container by name. Nothing here starts it again: there is no start tool, so the operator brings it back themselves

docker_topA

List the processes running inside a Docker container, read from the host. Read-only: no exec, no TTY

doctorB

Run a read-only diagnosis for resource pressure, stopped containers, public ports, backup hygiene, notifications, and report baseline readiness

install_appB

Install a self-hosted app via docker compose. Pre-checks docker, ports, and duplicates automatically, and a refusal comes back as a result with the reasons rather than as an error

install_listA

List available self-hosted apps that can be installed. The catalogue is compiled into the binary, so this reaches no network and answers the same on any machine

install_purgeA

Stop an installed app and delete all data including containers, config, and volumes. Nothing here restores it and no backup is taken first: take one before calling if the data matters

install_statusA

Check the status of an installed app, as its containers report it. An app homebutler did not install is not known here

install_uninstallA

Stop an installed app and remove its containers. The app directory and its volumes stay on disk; install_purge is the one that deletes them

inventory_exportB

Export server inventory/topology as a Mermaid diagram locally, or JSON locally/remotely

inventory_scanB

Collect server inventory/topology including system status, Docker containers, app ports, and system ports

network_scanA

Scan the local network to discover devices (IP, MAC, hostname). It probes every address on the subnet and takes up to 30 seconds, so it is an answer to a question somebody asked rather than a way to begin

notify_testA

Send one test notification through every configured channel and report which ones arrived. A real message goes out to each, so anyone reading those channels sees it

open_portsA

List open network ports with associated process information. The process behind a port is not always readable without privilege, and missing_process says so rather than leaving the field quietly empty

processesB

List the top processes by CPU or memory, with a total count and any zombies broken out separately

proxmox_guest_rebootB

Reboot one explicitly targeted Proxmox guest after confirmation and return the accepted task UPID

proxmox_guest_shutdownA

Gracefully shut down one explicitly targeted Proxmox guest after confirmation and return the accepted task UPID

proxmox_guest_startA

Start one explicitly targeted Proxmox guest after confirmation and return the accepted task UPID

proxmox_guestsA

List Proxmox QEMU and LXC guests, optionally filtered by node, status, or type

proxmox_nodeC

Get detailed Proxmox node status

proxmox_script_commandA

Render the pinned install command for one Proxmox VE Community Script. Never fetches or runs it; the caller reviews and runs it themselves on the Proxmox host

proxmox_script_listA

List the curated Proxmox VE Community Scripts catalog (community-scripts/ProxmoxVE)

proxmox_statusB

Get Proxmox VE version, cluster status, and resources

proxmox_task_statusA

Inspect one asynchronous Proxmox task by node and opaque UPID

proxmox_tasksA

Get the 50 most recent Proxmox tasks for a node

reportA

Generate a butler-style health report with snapshot comparison, warnings, notable changes, and suggested actions. It saves a snapshot unless no_save is set, which moves the window every later comparison is measured from — so a loop that calls this leaves nothing to compare against

system_statusA

Get system status including CPU, memory, disk usage, and uptime, for the machine this binary runs on. Inside a container that is the container, not the host underneath it

wakeA

Send a Wake-on-LAN magic packet to wake a machine. The packet is fire-and-forget: a successful result means it was sent, not that anything woke up

watch_addA

Add a Docker container, systemd unit, or PM2 app to the watch list. This writes the list and nothing begins watching it — a supervisor has to be installed separately, which only the operator can do. Adding a target twice is reported as added=false rather than an error

watch_checkA

Run a one-shot restart check on watched targets and report restarts detected since the last check. Only docker targets can be inspected this way; systemd and pm2 targets are reported as skipped rather than assumed healthy

watch_historyB

List recorded restart incidents, newest first. Captured logs are excluded unless include_logs is set, because every incident carries a hundred lines of output twice over

watch_listA

List the targets being watched, with their kind and what the last check recorded

watch_removeA

Remove a target from the watch list, leaving its recorded incidents in place. Only the list changes: whatever was supervising it keeps running until the operator stops it

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 44 tools

Disambiguation4/5

Most tools have sharply distinct purposes, and descriptions explicitly cross-reference siblings (install_uninstall vs install_purge, backup_list vs backup_drill) to steer selection. However a few boundaries blur, notably doctor/report (both produce health diagnoses), install_status vs install_list, and system_status vs docker_stats vs inventory_scan, which could be confused.

Naming Consistency4/5

Names follow a largely predictable prefix_verb/noun scheme grouped by subsystem (docker_*, install_*, backup_*, watch_*, proxmox_*), each readable and consistent within its group. Minor deviations exist in bare noun tools (alerts, doctor, report, processes, wake) that break the otherwise uniform convention.

Tool Count3/5

At 44 tools this is heavy, and the surface spans many subsystems (docker, proxmox, backups, installs, watching, network, reporting) so the total is large rather than redundant. Most tools earn their place, but the sheer count raises discovery and misselection cost.

Completeness4/5

Coverage is broad and deep: full docker control, backup lifecycle including restore and verification, install lifecycle, proxmox guest management, and monitoring/watching. The one obvious dead end is that docker_stop has no docker_start (acknowledged in the description), leaving containers needing an out-of-band start.

Maintenance

ActivityActive
ResponsivenessResponsive