sysprobe-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SYSCONTROL_ALLOW_POWER | No | Enable power actions (reboot/poweroff). Set to 1 to allow; requires SYSCONTROL_ALLOW_ACTIONS=1. | 0 |
| SYSCONTROL_ALLOW_ACTIONS | No | Enable mutating actions (e.g., set brightness, launch apps). Set to 1 to allow. | 0 |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_directory_treeA | Compact directory tree (names + sizes), depth/entry-bounded. Understand a config dir's structure without reading any file contents. Args: path, max_depth (1–6), max_entries cap, show_hidden. |
| read_config_snippetA | Read a slice of a text/config file — never the whole thing blindly. If grep_pattern is set, returns only matching blocks (+context lines); otherwise returns lines [start_line, end_line]. Hard cap max_lines. |
| grep_fileC | Regex-search a single file, returning matching lines with numbers. |
| check_command_existsB | Is a CLI tool installed? Returns presence + absolute path. |
| get_process_topA | Top resource-consuming processes (sort_by 'cpu' or 'memory'). |
| get_process_infoA | Detailed info for one PID: cmdline, cpu/mem, threads, open files. |
| inspect_process_ioA | Open files & network connections held by a process (debug hangs). |
| find_processesC | Find processes whose name/cmdline matches a substring. |
| get_hardware_sensorsA | Live sensors: temps, fans, battery (category 'temps'/'fans'/'battery'/'all'). |
| get_battery_healthA | Battery health via upower: capacity, cycles, energy, state. |
| get_system_infoA | OS, kernel, uptime, CPU/mem summary, load average. One cheap call. |
| get_cpu_infoA | CPU model, core counts, per-core frequency and current governor. |
| get_disk_usageC | Mounted filesystems with usage % (real disks only). |
| get_block_devicesA | Block devices / partitions via |
| list_usb_devicesA | Connected USB devices ( |
| list_pci_devicesB | PCI devices ( |
| get_gpu_infoA | GPU summary: vendor (lspci VGA) + NVIDIA stats if nvidia-smi present. |
| get_service_statusA | Status of a systemd unit + last few journal lines. Args: service: unit name (e.g. 'bluetooth.service'). scope: 'system' or 'user'. log_lines: recent journal lines to include (0–40). |
| list_servicesC | List systemd units. state: 'running','failed','enabled','all'. |
| list_failed_servicesB | All failed units — fastest 'what's broken?' check. |
| query_journalctlB | Filtered journal query — never dump the whole journal. Args: service: unit to filter (empty = all). since: e.g. '10 min ago', 'today', '2026-06-10'. priority: e.g. 'err' to show err..emerg only. lines: max lines (1–300). grep_pattern: extra regex filter applied to the result. scope: 'system' or 'user'. kernel: kernel ring messages (journalctl -k). |
| list_coredumpsC | Recent application crashes ( |
| diagnose_crashA | Inspect a coredump ( Args: match: PID, executable name or COMM; empty = most recent crash. limit_lines: cap on returned lines. |
| check_kernel_ring_bufferA | Kernel messages by level (dmesg, falls back to journalctl -k). Surfaces driver/hardware issues (USB resets, audio, bluetooth drops) without reading the whole boot log. level e.g. 'err,warn' or 'err'. |
| get_boot_performanceC | Slowest units at boot ( |
| list_dbus_servicesA | List D-Bus names on the session or system bus (filterable). |
| get_dbus_propertyA | Read a D-Bus property (or all of an interface) via busctl. Example: service 'org.kde.KWin', path '/KWin', interface 'org.kde.KWin'. Leave name empty to dump the whole interface. |
| control_serviceA | [ACTION] start/stop/restart/reload/enable/disable a systemd unit. Gated by SYSCONTROL_ALLOW_ACTIONS. System scope may prompt for auth (polkit). Returns rc + new ActiveState. |
| kill_processB | [ACTION] Send a signal to a PID (default SIGTERM). Gated. |
| bluetooth_statusA | Bluetooth adapter status (powered, discoverable, pairable). |
| bluetooth_devicesC | List known/paired Bluetooth devices (name + MAC). |
| bluetooth_scanC | Scan for nearby Bluetooth devices for a few seconds. |
| bluetooth_powerA | [ACTION] Turn the Bluetooth adapter on or off. |
| bluetooth_connectB | [ACTION] Connect to a paired Bluetooth device by MAC. |
| bluetooth_disconnectB | [ACTION] Disconnect a Bluetooth device (empty MAC = all). |
| bluetooth_pairC | [ACTION] Pair (and optionally trust) a Bluetooth device. |
| get_brightnessA | Current display brightness (percent) for internal backlight(s). |
| set_brightnessA | [ACTION] Set display brightness to a percentage (1–100). |
| get_power_profileA | Active power profile + available ones (power-profiles-daemon). |
| set_power_profileA | [ACTION] Set power profile: performance / balanced / power-saver. |
| get_cpu_governorB | Current CPU frequency governor + the ones available. |
| set_cpu_governorA | [ACTION] Set the CPU governor on all cores (e.g. performance, powersave). Uses cpupower; needs root. Reports the permission requirement honestly. |
| get_volumeA | Default audio sink volume & mute state (PipeWire/wpctl or pactl). |
| set_volumeB | [ACTION] Set default sink volume to a percentage (0–150). |
| set_muteB | [ACTION] Mute or unmute the default audio sink. |
| get_now_playingA | Current media: player, status, artist/title (MPRIS via playerctl). |
| media_controlB | [ACTION] Control playback: play/pause/play-pause/next/previous/stop. |
| list_desktop_appsB | List installed .desktop application IDs (for launch_app). |
| launch_appA | [ACTION] Launch an app: a .desktop id, or a binary on PATH. Examples: 'firefox', 'org.kde.dolphin', 'code'. Extra args optional. Detaches the process so it outlives the request. |
| open_pathB | [ACTION] Open a file/folder/URL with the default handler (xdg-open). |
| get_kde_themeA | Current KDE color scheme, icon theme, look-and-feel & plasma version. |
| list_color_schemesA | Available KDE color schemes (for set_color_scheme). |
| set_color_schemeA | [ACTION] Apply a KDE color scheme by name (see list_color_schemes). |
| set_global_themeC | [ACTION] Apply a KDE global theme / look-and-feel package. |
| kde_notifyC | Send a desktop notification (notify-send). Harmless, ungated. |
| kwin_reconfigureA | [ACTION] Tell KWin to reload its configuration. |
| lock_sessionA | [ACTION] Lock the screen. |
| suspend_systemA | [ACTION] Suspend (sleep) the system. |
| power_actionB | [POWER] reboot / poweroff — needs SYSCONTROL_ALLOW_POWER too. Double-gated to avoid accidental data loss. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 59 tools
Each tool has a clearly defined and distinct purpose. Even related tools like get_process_info, find_processes, and get_process_top are differentiated by specific functions (single PID vs. substring search vs. top consumers). No ambiguity exists between tools.
All tool names follow a consistent verb_noun pattern in snake_case, with clear action prefixes such as get_, set_, list_, control_, etc. No mixing of conventions or irregular patterns.
With 59 tools, the server far exceeds the 50+ threshold for extreme mismatch. While each tool addresses a specific need, the sheer volume makes the server unwieldy and could be consolidated or split into multiple focused servers.
The server covers a wide range of system probing and control functions: Bluetooth, systemd, hardware, KDE desktop, audio, display, power, and file operations. However, it lacks common areas like network interfaces or user session info, which are notable gaps for a sysprobe server.