# linux-mcp-server

A read-only MCP server for Linux administration, diagnostics, and troubleshooting. It fits RHEL-based systems and remote SSH checks.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 315
- Author: rhel-lightspeed
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/rhel-lightspeed/linux-mcp-server
- Updated: 2026-10-24
- HTML: https://affpapa.org/en/nevibecode/mcp/linux-mcp-server

## What it does

\`linux-mcp-server` gives an agent read-only access to Linux diagnostics. It can inspect system information, services, processes, logs, networking, and storage. The server is focused on RHEL-based systems and systemd.

Remote machines are reached over SSH with key-based authentication, and several hosts can be handled in the same session. Log access is controlled through environment variables. The server runs with `uvx linux-mcp-server`. Read-only operation is a real boundary here: it does not modify the system.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `LINUX_MCP_USER`, `LINUX_MCP_SSH_KEY_PATH`, `LINUX_MCP_KEY_PASSPHRASE`, `LINUX_MCP_SEARCH_FOR_SSH_KEY`, `LINUX_MCP_COMMAND_TIMEOUT`, `LINUX_MCP_VERIFY_HOST_KEYS`, `LINUX_MCP_KNOWN_HOSTS_PATH`, `LINUX_MCP_ALLOWED_LOG_PATHS`, `LINUX_MCP_LOG_DIR`, `LINUX_MCP_LOG_LEVEL` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env LINUX_MCP_USER=<LINUX_MCP_USER> --env LINUX_MCP_SSH_KEY_PATH=<LINUX_MCP_SSH_KEY_PATH> --env LINUX_MCP_KEY_PASSPHRASE=<LINUX_MCP_KEY_PASSPHRASE> --env LINUX_MCP_SEARCH_FOR_SSH_KEY=<LINUX_MCP_SEARCH_FOR_SSH_KEY> --env LINUX_MCP_COMMAND_TIMEOUT=<LINUX_MCP_COMMAND_TIMEOUT> --transport stdio linux-mcp-server -- uvx linux-mcp-server
```
Replace <…> with your own values. 6 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from linux-mcp-server <command>

### Codex

**Platform CLI**
```bash
codex mcp add linux-mcp-server --env LINUX_MCP_USER=<LINUX_MCP_USER> --env LINUX_MCP_SSH_KEY_PATH=<LINUX_MCP_SSH_KEY_PATH> --env LINUX_MCP_KEY_PASSPHRASE=<LINUX_MCP_KEY_PASSPHRASE> --env LINUX_MCP_SEARCH_FOR_SSH_KEY=<LINUX_MCP_SEARCH_FOR_SSH_KEY> --env LINUX_MCP_COMMAND_TIMEOUT=<LINUX_MCP_COMMAND_TIMEOUT> -- uvx linux-mcp-server
```
Replace <…> with your own values. 6 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from linux-mcp-server <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "linux-mcp-server": {
            "command": "uvx",
            "args": [
                "linux-mcp-server"
            ],
            "env": {
                "LINUX_MCP_USER": "<LINUX_MCP_USER>",
                "LINUX_MCP_SSH_KEY_PATH": "<LINUX_MCP_SSH_KEY_PATH>",
                "LINUX_MCP_KEY_PASSPHRASE": "<LINUX_MCP_KEY_PASSPHRASE>",
                "LINUX_MCP_SEARCH_FOR_SSH_KEY": "<LINUX_MCP_SEARCH_FOR_SSH_KEY>",
                "LINUX_MCP_COMMAND_TIMEOUT": "<LINUX_MCP_COMMAND_TIMEOUT>"
            }
        }
    }
}
```
Replace <…> with your own values. 6 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from linux-mcp-server <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "linux-mcp-server": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "linux-mcp-server"
            ],
            "env": {
                "LINUX_MCP_USER": "<LINUX_MCP_USER>",
                "LINUX_MCP_SSH_KEY_PATH": "<LINUX_MCP_SSH_KEY_PATH>",
                "LINUX_MCP_KEY_PASSPHRASE": "<LINUX_MCP_KEY_PASSPHRASE>",
                "LINUX_MCP_SEARCH_FOR_SSH_KEY": "<LINUX_MCP_SEARCH_FOR_SSH_KEY>",
                "LINUX_MCP_COMMAND_TIMEOUT": "<LINUX_MCP_COMMAND_TIMEOUT>"
            }
        }
    }
}
```
Replace <…> with your own values. 6 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from linux-mcp-server <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e LINUX_MCP_USER=<LINUX_MCP_USER> -e LINUX_MCP_SSH_KEY_PATH=<LINUX_MCP_SSH_KEY_PATH> -e LINUX_MCP_KEY_PASSPHRASE=<LINUX_MCP_KEY_PASSPHRASE> -e LINUX_MCP_SEARCH_FOR_SSH_KEY=<LINUX_MCP_SEARCH_FOR_SSH_KEY> -e LINUX_MCP_COMMAND_TIMEOUT=<LINUX_MCP_COMMAND_TIMEOUT> linux-mcp-server uvx linux-mcp-server
```
Replace <…> with your own values. 6 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from linux-mcp-server <command>

## When to use it
- check Linux services and running processes
- trace failures through system logs
- inspect network and storage state
- diagnose a remote host over SSH
- compare several hosts in one session

## Example prompts
- Check the services, processes, and system logs on this Linux host.
- Connect to the remote machine over SSH and investigate its network problem.
- Collect diagnostic details from several hosts and compare their state.

## Similar
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [Oh My Posh Validator](https://affpapa.org/en/nevibecode/mcp/oh-my-posh-validator.md) — MCP server · ★ 23643
- [Keploy](https://affpapa.org/en/nevibecode/mcp/keploy.md) — MCP server · ★ 18727
- [Coder](https://affpapa.org/en/nevibecode/mcp/coder.md) — MCP server · ★ 17160
- [mcp](https://affpapa.org/en/nevibecode/mcp/kubeshark-mcp.md) — MCP server · ★ 12109

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
