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:
{
"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.