# remote-pc-mcp [Health: Active]

**Category:** 🖥️ OS Automation  
**Repository:** https://github.com/raghibrm/remote-pc-mcp  
**GitHub Stars:** 6  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/remote-pc-mcp

## Description
Drive a PC over MCP: shell, files, processes, system stats, screenshots, mouse and keyboard.

## Tools
Capabilities this server exposes over MCP:

- **shell_exec** — Run any shell command — returns stdout, stderr, exit code
- **read_file** — Read a file as text or base64 (binary fallback)
- **write_file** — Write text or binary content to a file
- **list_directory** — List files and directories, optionally recursive
- **system_info** — OS, CPU, RAM, and GPU stats (NVIDIA GPUs via `nvidia-smi`; absent on non-GPU hosts)
- **start_process** — Start a long-running command in the background — returns a PID
- **get_process_output** — Poll stdout/stderr of a background process by PID
- **kill_process** — Terminate a process by PID
- **download_file** — Download a URL directly to this machine
- **take_screenshot** — Capture the primary display — returns base64-encoded PNG
- **click** — Click at screen coordinates `(x, y)` — left / right / middle, single or multi-click
- **move_mouse** — Move cursor to `(x, y)`, optionally animated
- **type_text** — Type a string into the focused window
- **press_key** — Press a single key or hotkey combo (e.g. `enter`, `f11`, `ctrl+c`, `win+d`)
- **scroll** — Scroll the mouse wheel up or down, optionally at a specific point

## Claude Desktop Quick Installation
No confirmed install details yet, so no config is published. Follow the setup steps in the repository above.

## Documentation

## What remote-pc-mcp does

The remote-pc-mcp MCP server gives an MCP client access to a remote computer’s command line, filesystem, background processes, hardware information, display, mouse, and keyboard. It is intended for machines that an agent needs to operate remotely, including workstations, home servers, media servers, build or CI machines, and Raspberry Pi systems where the stated platform requirements are met.

Its tools cover four broad areas:

- Execute shell commands and retrieve stdout, stderr, and exit codes.
- Read, write, list, and download files, including binary data handling.
- Start, inspect, and terminate long-running processes by PID.
- Capture the primary display and send mouse or keyboard input.

## How it works

The server uses the MCP SDK’s stateless streamable HTTP transport. Clients connect to an `/mcp` endpoint, normally at port 8765, and authenticate with an `Authorization: Bearer` header. Each request is self-contained, so the server does not depend on a persistent in-memory session between calls.

The `system_info` tool reports the operating system, CPU, and RAM, and checks for NVIDIA GPU information through `nvidia-smi` when available. Desktop automation operates on the primary display using screen coordinates. Screenshots are returned as base64-encoded PNG data.

The `shell_exec` tool can run arbitrary commands as the operating-system user that launched the server. Treat the bearer token as a credential with equivalent practical access to that account. Do not expose the listener directly to the public internet; the project recommends a protected network such as Tailscale, or a TLS-enabled reverse proxy for other remote deployments.

## Setup and configuration

The remote-pc-mcp MCP server requires Python 3.10 or newer and supports Windows 10/11 or Linux with systemd. The repository setup copies `.env.example` to `.env`, then requires `REMOTE_PC_MCP_TOKEN` to be set to a strong random value. The supplied Windows and Linux installers install dependencies, register startup behavior, launch the service, and supervise crashes. They can also remove the autostart entry and stop the service with their uninstall option.

For a foreground development run, execute `python server.py`. PyPI installation also provides `remote-pc-mcp` for foreground execution and `remote-pc-mcp-daemon` for supervised execution, but the PyPI route does not register autostart.

Clients use an HTTP MCP configuration similar to:

```json
{
  "type": "http",
  "url": "http://HOST:8765/mcp",
  "headers": {"Authorization": "Bearer TOKEN"}
}
```

The host, port, allowed-host list, command timeout cap, and file or download size limits can be changed with the documented `REMOTE_PC_MCP_*` variables. Restart the server after editing `.env`.

## Tools and capabilities

Available tools include `shell_exec`, `read_file`, `write_file`, `list_directory`, `download_file`, and `system_info`. Process management uses `start_process`, `get_process_output`, and `kill_process`, allowing an agent to launch a long-running command, poll its output, and terminate it.

For desktop interaction, `take_screenshot` captures the primary display. `click`, `move_mouse`, `type_text`, `press_key`, and `scroll` provide coordinate-based pointer and keyboard actions, including common hotkey combinations.

## Limitations and notes

Windows autostart begins after sign-in, so a machine left at the lock screen does not start the daemon. Linux can use the installer’s linger option to keep the systemd user service running across reboots without an interactive login. NVIDIA statistics are unavailable on hosts without the relevant GPU tooling.

The service has broad host access by design. Use a long random token, keep it out of source control, restrict the bind address where appropriate, and consider the network exposure before enabling remote access.

_Full upstream README: https://allmcps.com/mcp/remote-pc-mcp/readme_

