Skip to main content
Glama

RustDesk MCP Server

License: MIT

MCP (Model Context Protocol) server that lets AI agents control remote machines via RustDesk.

Architecture

┌────────────┐     MCP stdio      ┌──────────────┐      REST API      ┌─────────────────┐
│  AI Agent  │ ◄─────────────► │ rustdesk-mcp  │ ────────────────► │ rustdesk-api     │
│  (Claude/  │                  │  Server      │                   │ (lejianwen)      │
│   Cursor)  │                  └──────────────┘                   └─────────────────┘
└────────────┘                                              │
                                                           ▼
                                                      ┌──────────┐
                                                      │ RustDesk │
                                                      │ Devices  │
                                                      └──────────┘

Components and Where They Run

Component

Where

Description

rustdesk-mcp (this project)

NAS/server

MCP server that translates AI requests to rustdesk-api calls

rustdesk-api-server

NAS/server

Third-party RustDesk API server (by lejianwen, Go) — device management, shell, file ops

RustDesk client

Each target machine

Normal RustDesk client, registers with api-server

MCP client

Control machine

Cursor/Claude/etc. — where the AI agent runs

Features

Device Management

Tool

Description

rd_device_list

List all registered devices

rd_device_info

Get device details (OS, version, status)

rd_device_online

Check if device is currently online

Remote Commands

Tool

Description

rd_device_shell

Execute shell command on remote device

rd_device_screenshot

Take screenshot (returns base64 image)

File Operations

Tool

Description

rd_device_file_list

List files on remote device

rd_device_file_upload

Upload local file to remote device

rd_device_file_download

Download file from remote device

rd_device_file_delete

Delete file on remote device

Power Operations

Tool

Description

rd_device_restart

Restart remote device

rd_device_shutdown

Shutdown remote device

rd_device_lock

Lock remote device screen

Screen Control (via xdotool on target)

Tool

Description

rd_device_keypress

Send keystrokes

rd_device_mouse_move

Move mouse to coordinates

rd_device_mouse_click

Click mouse at coordinates

Prerequisites

  1. RustDesk client installed on target devices

  2. rustdesk-api-server running (default: http://127.0.0.1:21114)

Installation

cd /vol3/1000/app/rustdesk-mcp
pip install -r requirements.txt
# or: pip install -e .

Configuration

Edit .env with your rustdesk-api credentials:

Variable

Default

Description

RUSTDESK_API_BASE_URL

http://127.0.0.1:21114

rustdesk-api server URL

RUSTDESK_API_USERNAME

default

API login username

RUSTDESK_API_PASSWORD

default

API login password

RUSTDESK_TIMEOUT

30

Request timeout (seconds)

Usage

python -m rustdesk_mcp

Or add to MCP client config:

{
  "mcpServers": {
    "rustdesk": {
      "command": "python",
      "args": ["-m", "rustdesk_mcp"],
      "env": {
        "RUSTDESK_API_BASE_URL": "http://127.0.0.1:21114",
        "RUSTDESK_API_USERNAME": "default",
        "RUSTDESK_API_PASSWORD": "default"
      }
    }
  }
}

Project Structure

rustdesk-mcp/
├── README.md
├── LICENSE
├── .gitignore
├── pyproject.toml
├── requirements.txt
└── rustdesk_mcp/
    ├── __init__.py
    ├── __main__.py
    └── server.py

Roadmap

  • Native RustDesk protocol screen control (not via shell)

  • Session management

  • Multi-user device filtering

  • File search on remote devices

  • Docker deployment

License

MIT