# raghibrm/remote-pc-mcp architecture

> Architecture diagram of the GitHub repository raghibrm/remote-pc-mcp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/raghibrm/remote-pc-mcp
- Repository: https://github.com/raghibrm/remote-pc-mcp

## Overview

remote-pc-mcp is a Python MCP server that exposes remote PC control over authenticated streamable HTTP. An MCP client sends tool requests to the server, which dispatches them to host-operation capabilities and returns results. The README documents shell, filesystem, process, system-information, download, screenshot, and desktop-control tools. The graph groups related tools because their implementations share server.py; source excerpts do not show every tool body or registration detail.

Main entry points: [`server.py`](https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py) (HTTP MCP server), [`daemon.py`](https://github.com/raghibrm/remote-pc-mcp/blob/main/daemon.py) (Restart supervisor), [`_logging.py`](https://github.com/raghibrm/remote-pc-mcp/blob/main/_logging.py) (Logging setup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_transport["HTTP and MCP"]
  node_server["HTTP MCP server<br/>[server.py]"]
  node_auth["Bearer authentication<br/>[server.py]"]
end

subgraph group_host["Host capabilities"]
  node_shell["Shell commands<br/>[server.py]"]
  node_files["File operations<br/>[server.py]"]
  node_download["File download<br/>[server.py]"]
  node_system["System information<br/>[server.py]"]
  node_desktop["Desktop control<br/>[server.py]"]
  node_screenshots["Screenshots<br/>[server.py]"]
end

subgraph group_operations["Process operations"]
  node_process_tools["Process tools<br/>[server.py]"]
  node_process_registry[("Process registry<br/>[server.py]")]
end

subgraph group_runtime["Runtime support"]
  node_daemon["Restart supervisor<br/>[daemon.py]"]
  node_logging["Logging setup<br/>[_logging.py]"]
end

node_client(("MCP client"))
node_download_source(("Remote file source"))

node_client -->|"sends tool requests"| node_server
node_server -->|"checks requests"| node_auth
node_auth -->|"passes authorized requests"| node_server
node_server -->|"dispatches tools"| node_shell
node_server -->|"dispatches tools"| node_files
node_server -->|"dispatches tools"| node_download
node_server -->|"dispatches tools"| node_system
node_server -->|"dispatches tools"| node_desktop
node_server -->|"dispatches tools"| node_screenshots
node_server -->|"dispatches tools"| node_process_tools
node_process_tools -->|"persists process state"| node_process_registry
node_download -->|"downloads from"| node_download_source
node_daemon -->|"restarts on failure"| node_server
node_server -->|"configures logging"| node_logging

click node_server "https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py"
click node_auth "https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py"
click node_shell "https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py"
click node_files "https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py"
click node_download "https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py"
click node_system "https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py"
click node_desktop "https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py"
click node_screenshots "https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py"
click node_process_tools "https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py"
click node_process_registry "https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py"
click node_daemon "https://github.com/raghibrm/remote-pc-mcp/blob/main/daemon.py"
click node_logging "https://github.com/raghibrm/remote-pc-mcp/blob/main/_logging.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_server,node_auth,node_client toneBlue
class node_shell,node_files,node_download,node_system,node_desktop,node_screenshots toneAmber
class node_process_tools,node_process_registry toneMint
class node_daemon,node_logging toneRose
class node_download_source toneIndigo
```

## Components

### HTTP and MCP

- [HTTP MCP server](https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py): `server.py`
- [Bearer authentication](https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py): `server.py`

### Host capabilities

- [Shell commands](https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py): `server.py`
- [File operations](https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py): `server.py`
- [File download](https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py): `server.py`
- [System information](https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py): `server.py`
- [Desktop control](https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py): `server.py`
- [Screenshots](https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py): `server.py`

### Process operations

- [Process tools](https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py): `server.py`
- [Process registry](https://github.com/raghibrm/remote-pc-mcp/blob/main/server.py): `server.py`

### Runtime support

- [Restart supervisor](https://github.com/raghibrm/remote-pc-mcp/blob/main/daemon.py): `daemon.py`
- [Logging setup](https://github.com/raghibrm/remote-pc-mcp/blob/main/_logging.py): `_logging.py`

### Other components

- **MCP client**
- **Remote file source**

## Connections

- MCP client → HTTP MCP server: sends tool requests (evidence: `README.md`)
- HTTP MCP server → Bearer authentication: checks requests (evidence: `server.py`)
- Bearer authentication → HTTP MCP server: passes authorized requests (evidence: `server.py`)
- HTTP MCP server → Shell commands: dispatches tools (evidence: `README.md`)
- HTTP MCP server → File operations: dispatches tools (evidence: `README.md`)
- HTTP MCP server → File download: dispatches tools (evidence: `README.md`)
- HTTP MCP server → System information: dispatches tools (evidence: `README.md`)
- HTTP MCP server → Desktop control: dispatches tools (evidence: `README.md`)
- HTTP MCP server → Screenshots: dispatches tools (evidence: `README.md`)
- HTTP MCP server → Process tools: dispatches tools (evidence: `README.md`)
- Process tools → Process registry: persists process state (evidence: `server.py`)
- File download → Remote file source: downloads from (evidence: `server.py`)
- Restart supervisor → HTTP MCP server: restarts on failure (evidence: `daemon.py`)
- HTTP MCP server → Logging setup: configures logging (evidence: `server.py`)
