home / mcp / awesome linux mcp server

Awesome Linux MCP Server

Provides SSH-based Linux control and browser automation through MCP, enabling remote commands, file operations, monitoring, and browser tasks.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "aitesthaj-awesome_linux_mcp": {
      "command": "python",
      "args": [
        "linux_mcp_server.py"
      ],
      "env": {
        "SSH_HOST": "your-server.com",
        "SSH_PORT": "22",
        "SSH_USER": "your-username",
        "LOG_LEVEL": "INFO",
        "SSH_KEY_PATH": "/path/to/your/key",
        "SSH_PASSWORD": "your-password",
        "BROWSER_HEADLESS": "true"
      }
    }
  }
}

You can run an MCP server that securely manages remote Linux hosts over SSH while also providing browser automation capabilities. This server lets you execute commands, manage scripts, monitor system resources, automate browser tasks, and access browser-derived resources—all through a structured MCP interface.

How to use

You connect to the MCP server using an MCP client. Once connected, you can perform a range of actions on your remote Linux hosts and in the browser automation environment. Use the SSH-based tools to run commands, manage scripts, and inspect files, and use the browser automation tools to navigate web pages, interact with elements, capture screenshots, and run JavaScript in the browser context. Monitor logs, network activity, and resources in real time to keep your operations secure and efficient.

How to install

Prerequisites you need before installation are Python 3.8 or later, SSH access to at least one Linux server, and a Chrome/Chromium browser for browser automation.

1. Create the project directory and move into it.

mkdir awesome-linux-mcp
cd awesome-linux-mcp

2. Install the required Python dependencies from the project requirements file.

pip install -r requirements.txt

3. Prepare environment configuration by copying the example configuration and editing it with your SSH and server settings.

cop config.example.env .env
# Edit .env with your SSH and configuration settings

4. Ensure you can SSH to your target Linux servers. Prefer SSH key authentication and test the connection manually.

ssh user@host

Additional configuration and running notes

To run the server in development mode, start the Python script that implements the MCP server:

python linux_mcp_server.py

You can also test the MCP endpoint directly by invoking the server with a simple request from a client that speaks MCP. This helps you verify that the server is responsive and ready to handle real client requests.

Configuring the MCP connection and environment

The server is configured via environment variables, which you set in your .env file. The following variables are required and commonly used:

SSH_HOST=your-server.com
SSH_PORT=22
SSH_USER=your-username
SSH_KEY_PATH=/path/to/your/key
BROWSER_HEADLESS=true
LOG_LEVEL=INFO

Available tools

execute_command

Run a single terminal command on the remote Linux server via the MCP interface.

execute_script

Execute a bash script on the remote server with optional arguments.

create_bash_script

Create and deploy a new bash script to the remote server.

list_directory

List directory contents with detailed information from the remote server.

get_system_info

Retrieve CPU, memory, and disk usage information from the remote server.

puppeteer_navigate

Navigate the browser to a URL with automatic wait conditions.

puppeteer_screenshot

Capture a screenshot of the full page or a specific element.

puppeteer_click

Click on a web page element identified by a selector.

puppeteer_hover

Hover over a web page element identified by a selector.

puppeteer_fill

Fill an input field in a web form.

puppeteer_select

Select an option from a dropdown in the browser.

puppeteer_evaluate

Execute JavaScript in the browser context and return the result.

puppeteer_get_console_logs

Retrieve browser console logs during automation.

puppeteer_get_screenshot

Get the current browser screenshot.

puppeteer_get_network_details

Obtain network request/response details from the browser.