Skip to main content
Glama
crunchtools

io.github.crunchtools/systemd

by crunchtools

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SYSTEMD_UNIT_DIRNoDirectory unit_file_write/remove operate on/etc/systemd/system
DBUS_SYSTEM_BUS_SOCKETNoD-Bus system bus socket path/run/dbus/system_bus_socket
SYSTEMD_EXTRA_PROTECTED_UNITSNoComma-separated units added to the built-in denylist

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": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
unit_list_toolC

List systemd units.

unit_status_toolB

Get curated status for a unit: active/sub/load state, PID, memory, CPU.

unit_show_toolB

Dump the full property set for a unit (dependencies, exec settings, cgroup, etc).

unit_start_toolC

Start a unit.

unit_stop_toolB

Stop a unit. Refused for units on the protected list.

unit_restart_toolB

Restart a unit. Refused for units on the protected list.

unit_reload_toolA

Ask a unit to reload its configuration without restarting.

unit_enable_toolC

Enable a unit to start on boot.

unit_disable_toolB

Disable a unit from starting on boot. Refused for units on the protected list.

unit_mask_toolA

Mask a unit so it cannot be started even manually. Refused for protected units.

unit_unmask_toolA

Unmask a previously masked unit.

daemon_reload_toolA

Reload systemd's unit file cache (equivalent to systemctl daemon-reload).

Returns: Reload confirmation

unit_file_write_toolA

Write a new unit file for setting up a service. Backs up any file it overwrites.

Requires the host's unit directory (default /etc/systemd/system) to be bind-mounted into the container. Runs daemon-reload after writing.

unit_file_remove_toolA

Decommission a unit: stop, disable, optionally mask, back up and remove its file.

Refused for units on the protected list. Best-effort on stop/disable — a unit that's already stopped or was never enabled doesn't block file removal.

journal_query_toolB

Query the journal — the main 2AM troubleshooting tool.

failed_units_toolA

List units currently in the 'failed' state — the first thing to check at 2AM.

Returns: List of failed units with count

list_jobs_toolA

List pending systemd jobs — reveals stuck starts/stops/reloads.

Returns: List of pending jobs with count

timer_list_toolA

List systemd timers with their next and last elapse times.

Returns: List of timers with count

system_status_toolA

Get overall systemd manager state: running/degraded, failed and job counts.

Returns: SystemState, Version, NFailedUnits, NJobs, NNames

hostinfo_toolA

Get host identity info: hostname, kernel, OS.

Returns: Hostname, kernel, and OS details

session_list_toolA

List logged-in sessions — who's on this box right now.

Returns: List of sessions with count

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 21 tools

Disambiguation4/5

Most tools have clearly distinct resource+action targets; lifecycle verbs (start/stop/restart/reload/enable/disable/mask/unmask) are distinct, and listing tools split by domain (units, timers, jobs, sessions, failed units). Minor overlap exists between unit_status_tool and unit_show_tool, and between system_status_tool and failed_units_tool, but descriptions clarify their boundaries.

Naming Consistency4/5

Almost all names follow a consistent snake_case <subject>_<action>_tool pattern (unit_start_tool, timer_list_tool, journal_query_tool), which is predictable. Small deviations like list_jobs_tool and hostinfo_tool break the pattern slightly but remain readable and unambiguous.

Tool Count4/5

21 tools is on the heavier side but each maps to a real systemd operation: unit lifecycle, journal querying, timers, jobs, failed units, system/host/session status. No obvious redundant tool; scope is broad but coherent for a systemd administration server.

Completeness4/5

Strong lifecycle coverage: list/status/show/start/stop/restart/reload/enable/disable/mask/unmask, plus file write/remove, daemon-reload, journal, timers, jobs, failed units, and system/host/session status. Minor gaps like reset-failed, unit kill, or journal maintenance exist but core admin workflows are covered.

Maintenance

ActivityActive
ResponsivenessNo issues