linux-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LINUX_MCP_CONFIG | No | Path to the configuration file (JSON) for the linux-mcp server. If not set, the default path ~/.config/linux-mcp/config.json is used. |
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": true
} |
| logging | {} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_updatesA | Counts or lists available package updates without applying them (pacman -Qu or apt list --upgradable). Read-only, no cache refresh. Fatal if the package manager is unsupported; a pacman error with empty output returns an empty list. Use to see pending updates; get_installed_packages for current versions. |
| get_audit_logsA | Returns kernel audit events from journalctl -k or /var/log/audit/audit.log (AVC denials, system calls). source param: journalctl, audit.log, or auto (default). lines defaults to 50. Read-only; fatal if the chosen source is unavailable. Use for security forensics; get_failed_logins for login attempts. |
| get_block_devicesA | Returns block devices and partitions: names, sizes, filesystem types, and mount points. Read-only from sysfs and /proc/mounts. Loop, ram, and zram devices are skipped. Errors land in the errors field. Use for storage inventory; get_disk_info for usage percent. |
| get_boot_blameA | Returns systemd units ordered by init time from systemd-analyze blame: unit names with their start durations. Read-only; fatal only if systemd-analyze is missing or fails. Use to find slow-starting services; get_boot_critical_chain for the dependency chain. |
| get_boot_critical_chainA | Returns the time-critical boot chain from systemd-analyze critical-chain: a dependency tree of units with their active-time point and start duration. Optional unit param starts the chain from a specific unit. Read-only; fatal only if systemd-analyze is missing or fails. Use to find what delays the boot target. |
| get_boot_timeA | Returns the boot-time breakdown from systemd-analyze time: per-phase durations (firmware, loader, kernel, initrd, userspace), total startup time, and the reached target. Read-only; fatal only if systemd-analyze is missing or fails. Use to quantify where boot time goes. |
| get_cpu_infoA | Returns CPU model, frequency, core count, and current usage percent. Read-only from /proc/stat and /proc/cpuinfo. Fatal only if either source is unreadable. Use for capacity planning or busy/idle checks. |
| get_cpu_temperatureA | Returns current CPU temperature from hwmon sensors if available. Read-only. If no sensors are exposed, returns a message in the errors field instead of failing. Use for thermal monitoring; prefer get_system_health_check for an overall verdict. |
| get_cron_jobsA | Returns system-level cron jobs from /etc/crontab and the periodic cron directories (/etc/cron.daily, .weekly, .hourly). Read-only; no root needed. Missing paths land in the errors field. Use for system automation; get_user_automation for user-level tasks. |
| get_desktop_session_infoA | Returns display protocol (Wayland/X11), desktop environment, and related environment config. Read-only from environment variables; never fails. Use to understand the GUI session the server runs under. |
| get_disk_infoA | Returns disk usage per mounted partition. Params: mount_point (exact match, must start with /) and threshold (only partitions at or above it). Read-only via statfs. Fatal only if partitions cannot be listed; per-partition read errors are skipped. Use for capacity; get_inode_usage when 'disk full' persists with free space. |
| get_disk_io_metricsA | Returns per-device disk I/O: reads, writes, sectors, and timings. Read-only from /proc/diskstats (loop/ram/zram skipped); fatal only if unreadable. Use for storage performance; get_top_io_processes for per-process I/O. |
| get_docker_container_detailsA | Returns a container's state, config, env, mounts, and network settings. Read-only via the Docker API; fatal if the daemon is unreachable or the container is unknown. Use to inspect one container; get_docker_info to list them. |
| get_docker_container_diffA | Returns filesystem changes (added, modified, deleted) in a container since it started. Read-only via the Docker API. Use to see what a container wrote to its writable layer. |
| get_docker_container_logsA | Returns a container's stdout/stderr log lines. Params: tail (line count) and timestamps. Read-only via the Docker API. Fatal if the daemon is unreachable or the container is unknown. Environment values are redacted. |
| get_docker_container_statsA | Returns live CPU, memory, network I/O, and PID stats for running containers. Params: container_ids comma-separated or 'all' (running only). Read-only, one-shot sample. Stats only exist for running containers; unknown or stopped ids error. For all containers in one call use get_docker_stats_all. |
| get_docker_container_topA | Returns the processes running inside a container. Read-only via the Docker API; fatal if the daemon is unreachable or the container is unknown. Use to debug container-level process state. |
| get_docker_disk_usageA | Returns Docker disk usage broken down by containers, images, volumes, and build cache. Read-only via the Docker API. Use to find what is consuming disk space. |
| get_docker_image_detailsA | Returns an image's config, env, entrypoint, labels, and layers. Read-only via the Docker API; fatal if the daemon is unreachable or the image is unknown. Use to inspect a single image; get_docker_image_history for build steps. |
| get_docker_image_historyA | Returns an image's layer history: commands, sizes, and creation times. Read-only via the Docker API. Use to understand what an image is built from; get_docker_image_details for config and labels. |
| get_docker_infoA | Returns Docker containers (including stopped) and images. Read-only via the Docker API. Fatal if the daemon is unreachable. Use for a Docker inventory; get_docker_system_snapshot for a fuller view. |
| get_docker_networksA | Returns Docker networks with driver, scope, and configuration details. Read-only via the Docker API. Use for network topology debugging. |
| get_docker_stats_allA | Returns CPU, memory, network, and block I/O for all running containers in one call. Optional containers param filters by name or ID. Read-only, one-shot. Use instead of repeated get_docker_container_stats calls for a fleet overview. |
| get_docker_system_infoA | Returns Docker daemon info: version, storage driver, runtimes, and resource counts. Read-only via the Docker API; fatal if the daemon is unreachable. Use to check daemon config and health. |
| get_docker_system_snapshotA | Returns a combined Docker snapshot: containers, images, running stats, disk usage, and networks. Read-only via the Docker API. Per-part failures land in the errors field; the call still succeeds. Heaviest Docker call - prefer narrower get_docker_* tools for a specific question. |
| get_docker_volumesA | Returns Docker volumes with driver, mountpoint, size, and labels. Read-only via the Docker API. Use to inventory storage; get_docker_disk_usage for space accounting. |
| get_environment_variablesA | Returns the server process's environment as a sorted key-value map. search filters by name prefix or substring, case-insensitive. Read-only (os.Environ). Sensitive names (SECRET, TOKEN, PASSWORD, etc.) are redacted to ***. Use to debug PATH, locale, and server configuration. |
| get_failed_loginsA | Returns recent failed login attempts (excluding Boot records) with summary statistics. Read-only: lastb -n N, falling back to journalctl if btmp is not readable. Default 20 entries. Errors are non-fatal. Use for security triage; get_audit_logs for kernel and auditd events. |
| get_file_locksA | Returns active file locks from /proc/locks: type, mode, PID, byte range, and path. Read-only; an unreadable file is silently swallowed, parse errors go in the errors field. Use to find who holds a lock. |
| get_gpu_infoA | Returns GPU usage, memory, temperature, and power draw. Read-only, via nvidia-smi, rocm-smi, or intel_gpu_top in that order of availability. Fatal only if no GPU tool is installed. The Intel fallback reports presence, not metrics. Use for GPU workload monitoring. |
| get_hardware_bus_infoA | Lists PCI and USB devices detected on the system. Read-only via lspci/lsusb with a sysfs fallback; if both fail the error goes in the errors field. search filters any field (bus, slot, class, vendor, device). Use to identify network cards, audio interfaces, and expansion cards for driver troubleshooting. |
| get_inode_usageA | Returns inode usage per filesystem via df -i. mount_point is an optional exact filter. Read-only; fatal if df is missing or fails. Use when 'disk full' errors persist despite free space - inode exhaustion. |
| get_installed_packagesA | Queries installed packages: pacman -Q on Arch, dpkg -l on Debian. Optional name filter. Read-only. Fatal if the package manager is unsupported (e.g. rpm/dnf) or the query fails. Use to check what is installed; check_updates for available upgrades. |
| get_ip_infoA | Returns geolocation, ASN/organization, and provider tags (e.g. AWS, Cloudflare) for an IP or your public IP. Makes an external call to ip-api.com - network-dependent and can be slow offline. Invalid IPs return an error in the errors field. Use for network egress and remote-peer context. |
| get_journal_logsA | Reads systemd journal entries with optional filtering by unit, priority, and time range (since/until). Set user=true for the user journal. Read-only via journalctl. Fatal only if journalctl fails or an invalid unit is given. Returns structured entries with timestamp, message, priority, unit, and PID. For kernel-only events use get_audit_logs. |
| get_largest_filesA | Lists the top N largest entries in a directory by size (default path '.', limit 10-100). Read-only and non-recursive - only one directory level, and directory sizes show their own stat size, not contents. Failures silently return empty results. Use for quick space triage; get_disk_info for partition-level capacity. |
| get_listening_portsA | Returns listening TCP/UDP ports and associated processes via ss -tulnp. protocol filters to tcp or udp. Read-only; fatal if ss is missing. Process names may be empty without root. Use for port-conflict and exposure checks; get_network_connections for established connections. |
| get_load_averageA | Returns 1-, 5-, and 15-minute load averages. Read-only from /proc/loadavg; fatal only if unreadable. Use as a quick utilization check; get_system_health_check compares load against core count. |
| get_logged_in_usersA | Returns active user sessions via who -u: username, terminal, origin, and login time. Read-only; fatal only if who is missing. Use for security awareness and multi-user workload checks. |
| get_logrotate_statusA | Returns logrotate configuration files and the state file path. Read-only from /etc/logrotate.conf and /etc/logrotate.d. Errors land in the errors field. Use to verify rotation policies. |
| get_man_pageA | Fetches the authoritative man page for a command as plain text. command is required and validated. Read-only via man -P cat. Options: max_lines (500-10000) with a truncated flag, case-insensitive search with context_lines, and offset. Fatal if man is missing or there is no manual entry. Use when the user asks about flags, syntax, or edge cases. |
| get_memory_infoA | Returns RAM and swap usage including total, used, and free. Read-only from /proc/meminfo. Fatal only if /proc/meminfo is unreadable. Use for memory pressure checks; get_system_health_check for thresholds. |
| get_mount_optionsA | Returns mount sources, targets, filesystem types, and options via findmnt. mount_point filters to an exact target. Read-only; fatal if findmnt is missing. Use for mount flags (rw/ro, noexec, etc.); get_disk_info for usage. |
| get_network_connectionsA | Returns active TCP/UDP connections with state, addresses, process info, and optional reverse-DNS hostnames. Read-only from /proc/net. Params: status and type filters, grouped by PID, max_connections (0-200). resolve_hostnames does network lookups and is slow - keep it off unless needed. For listening sockets prefer get_listening_ports, which also gives process names. |
| get_network_infoA | Returns per-interface network I/O counters (bytes, packets, errors, drops). Read-only from /proc/net/dev. Fatal only if that file is unreadable. Use for bandwidth and drop analysis; get_network_connections for sockets. |
| get_power_analyticsA | Returns power state (AC vs battery), discharge rate in watts, battery percentage, and capacity degradation. Read-only from /sys/class/power_supply. Missing sysfs data lands in the errors field. Use for laptop power monitoring. |
| get_proc_diagnosticsA | Returns deep /proc diagnostics: interrupts, softirqs, vmstat, diskstats, filesystems, version, and slabinfo. The sections param selects a comma-separated subset (empty = all). Read-only; per-section failures land in the errors field. Use for kernel-level debugging. |
| get_process_fdsA | Lists open file descriptors (files, sockets, pipes) and the total count for a pid. Read-only via /proc//fd. pid is required; an unknown pid returns an error in the errors field, not a failure. Use for fd-leak and resource-hold debugging. |
| get_process_infoA | Returns running processes sortable by CPU, memory, or both with a configurable limit (default 10, max 100). Read-only but heavy: walks /proc and reads smaps for every process, so keep limit low. Per-process read errors are ignored; fails only if the process list cannot be read. Prefer get_top_io_processes for disk I/O ranking. |
| get_raid_statusA | Returns software RAID status from /proc/mdstat: devices, levels, sizes, and active/degraded/inactive health. Read-only; an unreadable file is silently swallowed. Use to check array health. |
| get_security_auditA | Runs a security audit: firewall rules, SSH hardening, SUID binaries, world-writable files, umask, and password policy, with a 0-100 score. Read-only but heavy - scans the filesystem for SUID and world-writable files. Needs root to see everything. Use for hardening reviews, ideally during low load. |
| get_selinux_apparmor_statusA | Returns SELinux and AppArmor enforcement status. Read-only via getenforce and sysfs/aa-status; never fatal, missing modules report 'not_enabled'. Use for security posture checks. |
| get_service_statusA | Returns detailed status of a systemd service (or --user service). name is required and validated. Read-only via systemctl status. Errors from systemctl (e.g. unit not found) appear in the errors field with the raw output; only a missing systemctl is fatal. Use to check why a service failed; get_systemd_units to list states. |
| get_shared_memory_segmentsA | Returns System V shared memory segments from /proc/sysvipc/shm: key, size, attached processes, and timestamps. Read-only; an unreadable file is silently swallowed. Use for IPC and leak investigation. |
| get_smart_healthA | Returns SMART disk health: status, temperature, power-on hours, and key attributes via smartctl. device is optional; empty probes all block devices, which is slow with many disks. Requires smartctl and typically root to read /dev. Per-device failures set status to unknown in the errors field; only a missing smartctl is fatal. |
| get_system_health_checkA | Returns an overall OK/WARNING/CRITICAL verdict from memory, disk (partitions at 80%+), load vs core count, and failed systemd units. Read-only aggregate; sub-failures land in the errors field, never fatal. Use as the first-line health check; get_system_snapshot for full detail. |
| get_system_infoA | Returns host info: hostname, OS, kernel, architecture, uptime, process count, boot time, virtualization, host UUID, and DMI hardware/BIOS/TPM details. Read-only (gopsutil host.Info plus sysfs). Fails only if host info is unavailable. Use for a single-machine identity summary; for a health verdict use get_system_health_check. |
| get_system_snapshotA | Returns a comprehensive snapshot combining system, CPU, temperature, memory, disk, network, load, top processes, and Docker data in one call. Read-only. Individual gather failures fall back to zero values in the errors field - never fatal, but the heaviest call in the server. Use for a broad overview; prefer targeted tools for deep questions. |
| get_systemd_unitsA | Lists all systemd units and their states. The state param filters by exact match on the Active column ('failed', 'active', 'inactive'). Read-only via systemctl; fatal if systemctl is missing or fails. Use for a full service inventory; get_service_status for one unit's details. |
| get_time_sync_statusA | Returns NTP/Chrony sync state: service, sync status, system and RTC time, stratum, and last offset. Read-only via timedatectl and chronyc; failures are non-fatal (errors field). Use for clock-drift diagnosis. |
| get_top_io_processesA | Returns processes with the highest disk I/O activity via pidstat -d 1 1 (samples for 1 second). Read-only. If pidstat is missing, returns an error in the errors field with empty results. Use to find which process is hammering the disk; get_disk_io_metrics for per-device totals. |
| get_user_automationA | Aggregates the current user's scheduled tasks: crontab -l entries and systemd user timers. Read-only; failures such as a missing crontab land in the errors field. Use for user-level automation; get_cron_jobs for system-wide cron. |
| get_user_infoA | Lists system users from /etc/passwd and /etc/group: username, UID, GID, home, shell, and supplementary groups. search does a case-insensitive substring match. Read-only; a passwd read failure is non-fatal. Use for account inventory and membership checks. |
| ping_hostA | Sends ICMP packets and returns latency, packet loss, and response times. host is required and validated; count defaults to 4, timeout to 10s. Read-only but network-bound, blocking up to timeout seconds. Fatal only for an invalid host; a failed ping returns partial results in the errors field. Use for reachability checks; resolve_dns to separate DNS from connectivity. |
| resolve_dnsA | Resolves a hostname to IP addresses via the system resolver. hostname is required; a lookup failure returns an error in the errors field. Network-dependent. Use to distinguish DNS failures from connectivity problems; ping_host to test reachability. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Block Devices | Block devices and partitions detected on the system |
| CPU Information | CPU usage, model, frequency, and core counts |
| Disk Information | Disk usage for all mounted partitions |
| Failed Logins | Recent failed login attempts |
| GPU Information | GPU usage, memory, temperature, and power (NVIDIA/AMD/Intel) |
| System Health Check | Comprehensive system health assessment |
| System Information | Hostname, OS, kernel version, architecture, and uptime |
| Listening Ports | Listening ports and associated processes |
| Load Average | 1-, 5-, and 15-minute load averages |
| Logged In Users | Active user sessions |
| Logrotate Status | Logrotate configuration and state file |
| Memory Information | RAM and swap usage statistics |
| Network Information | Network I/O statistics per interface |
| RAID Status | Software RAID status from /proc/mdstat |
| SELinux/AppArmor Status | Status of SELinux and AppArmor security modules |
| CPU Temperature | Current CPU temperature from available sensors |
| Time Sync Status | NTP/Chrony time synchronization status |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mohabdo21/linux-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server