Skip to main content
Glama
Ronnietag
by Ronnietag
README.md
# Linux MCP Server

AI-driven Linux desktop control via Model Context Protocol.

## Overview

Linux MCP Server exposes Linux desktop operations (file management, app control, clipboard, notifications) as MCP tools. AI assistants can use these tools to perform actions on behalf of the user.

## Architecture

```
AI Assistant (Claude, Ollama, etc.)
    │
    │ MCP (HTTP+SSE)
    ▼
Linux MCP Server (Python)
    │
    ├── Safety Layer (Safe/Elevated/Blocked permissions)
    │
    └── Tools: file_read, app_launch, clipboard, notifications
```

## Security Model

| Level | Description | Example |
|-------|-------------|---------|
| **SAFE** | No confirmation needed | Read files, launch apps, clipboard |
| **ELEVATED** | Requires user confirmation | Write files, run shell commands |
| **BLOCKED** | Never allowed | sudo, kernel access |

All AI-initiated actions are logged to an audit trail.

## Quick Start

### Installation

```bash
pip install linux-mcp
```

### Run

```bash
# Set compositor auth key (optional but recommended)
export LINUX_MCP_COMPOSITOR_KEY="your-secret-key"

# Start the MCP server
linux-mcp
```

### Connect to Claude Desktop

Add to `~/.claude-desktop-config.json`:

```json
{
  "mcpServers": {
    "linux-desktop": {
      "command": "uvx",
      "args": ["linux-mcp"],
      "env": {
        "LINUX_MCP_COMPOSITOR_KEY": "your-secret-key"
      }
    }
  }
}
```

## Available Tools

### File Operations
- `file_read` - Read file contents
- `file_list` - List directory
- `file_write` (ELEVATED) - Write files

### App Control
- `app_launch` - Launch applications

### System
- `clipboard_read` - Read clipboard
- `notification_send` - Send notifications
- `settings_get` / `settings_set` - System settings

## Development

```bash
# Clone and install
git clone https://github.com/YOUR_USER/linux-mcp.git
cd linux-mcp
pip install -e ".[dev]"

# Run tests
pytest tests/ -v

# Run in dev mode
python -m linux_mcp
```

## License

MIT

TDQS

B3.3/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: launching apps, reading clipboard, listing files, reading files, writing files, and sending notifications. An agent can easily distinguish between these functions without confusion.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with clear verb_noun structure (e.g., app_launch, file_read, notification_send). There are no deviations in naming conventions across the set.

Tool Count5/5

With 6 tools, this server is well-scoped for Linux desktop automation, covering key operations like file management, app launching, clipboard access, and notifications. Each tool earns its place without being excessive or insufficient.

Completeness4/5

The toolset covers core Linux desktop workflows effectively, including file operations, app interaction, and notifications. A minor gap exists in file management (e.g., no delete or move operations), but agents can work around this with the provided tools.

Maintenance

ActivityInactive
ResponsivenessNo issues