Skip to main content
Glama
narmaku

Linux MCP Server

by narmaku

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LINUX_MCP_LOG_DIRNoCustom log directory~/.local/share/linux-mcp-server/logs/
LINUX_MCP_LOG_LEVELNoSet log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)INFO
LINUX_MCP_SSH_KEY_PATHNoSpecify SSH private key path (defaults to ~/.ssh/id_ed25519, ~/.ssh/id_rsa, etc.)
LINUX_MCP_ALLOWED_LOG_PATHSNoComma-separated list of allowed log file paths
LINUX_MCP_LOG_RETENTION_DAYSNoLog retention in days10

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
get_system_infoA

Get basic system information including OS version, kernel, hostname, and uptime.

Args:
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
get_cpu_infoB

Get CPU information and load averages.

Args:
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
get_memory_infoB

Get memory usage including RAM and swap details.

Args:
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
get_disk_usageB

Get filesystem usage and mount points.

Args:
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
get_hardware_infoB

Get hardware information including CPU architecture, PCI devices, USB devices, and memory hardware.

Args:
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
list_servicesA

List all systemd services with their current status.

Args:
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
get_service_statusB

Get detailed status of a specific systemd service.

Args:
    service_name: Name of the service
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
get_service_logsA

Get recent logs for a specific systemd service.

Args:
    service_name: Name of the service
    lines: Number of log lines to retrieve (default: 50)
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
list_processesA

List running processes with CPU and memory usage.

Args:
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
get_process_infoB

Get detailed information about a specific process.

Args:
    pid: Process ID
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
get_journal_logsA

Query systemd journal logs with optional filters.

Args:
    unit: Filter by systemd unit
    priority: Filter by priority (emerg, alert, crit, err, warning, notice, info, debug)
    since: Show entries since specified time (e.g., '1 hour ago', '2024-01-01')
    lines: Number of log lines to retrieve (default: 100)
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
get_audit_logsC

Get audit logs if available.

Args:
    lines: Number of log lines to retrieve (default: 100)
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
read_log_fileA

Read a specific log file (whitelist-controlled via LINUX_MCP_ALLOWED_LOG_PATHS).

Args:
    log_path: Path to the log file
    lines: Number of lines to retrieve from the end (default: 100)
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
get_network_interfacesB

Get network interface information including IP addresses.

Args:
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
get_network_connectionsB

Get active network connections.

Args:
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
get_listening_portsB

Get ports that are listening on the system.

Args:
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
list_block_devicesA

List block devices and partitions.

Args:
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
list_directories_by_sizeA

List directories sorted by size (largest first). Uses efficient Linux du command.

Args:
    path: Directory path to analyze
    top_n: Number of top largest directories to return (1-1000)
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
list_directories_by_nameA

List directories sorted alphabetically by name. Uses efficient Linux find command.

Args:
    path: Directory path to analyze
    reverse: Sort in reverse order (Z-A) (default: False)
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)
list_directories_by_modified_dateA

List directories sorted by modification date. Uses efficient Linux find command.

Args:
    path: Directory path to analyze
    newest_first: Show newest first (default: True)
    host: Remote host to connect to via SSH (optional, executes locally if not provided)
    username: SSH username for remote host (required if host is provided)

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 20 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific Linux system components or operations. Tools like get_cpu_info, get_memory_info, and get_disk_usage focus on different system resources, while list_directories_by_modified_date, list_directories_by_name, and list_directories_by_size offer distinct sorting methods for directory listings. No significant overlap exists between tools.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case throughout. The naming convention is highly predictable: 'get_' for retrieval operations, 'list_' for enumeration, and 'read_' for file reading. This consistency makes the tool set easy to navigate and understand.

Tool Count4/5

With 20 tools, the count is slightly high but reasonable for a comprehensive Linux system monitoring and management server. The tools cover various system aspects (CPU, memory, disk, network, processes, services, logs), which justifies the number, though it borders on being heavy for some use cases.

Completeness4/5

The tool set provides excellent coverage for monitoring and querying Linux system state, including hardware, processes, services, logs, and network information. Minor gaps exist, such as the lack of tools for modifying system state (e.g., starting/stopping services, killing processes) or file operations beyond log reading, but core read-only operations are well-covered.

Maintenance

ActivityInactive
ResponsivenessNo issues