Private Desktop MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Private Desktop MCPlist the files on my Windows desktop"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Private Desktop MCP
Self-hosted multi-device Model Context Protocol bridge for Desktop Commander using Cloudflare Workers, Durable Objects and a one-command Windows connector.
Transport: Streamable HTTP to ChatGPT; outgoing WebSocket from the device to the relay.
Public npm release
npx.cmd --yes --prefer-online @juexibobi/private-desktop-mcp@latest connectEach release gets its own immutable npm version. Do not overwrite a fixed .tgz at a stable URL: npm caching might start an old version.
Related MCP server: MCP Cloud Gateway
Current independent endpoint
https://private-desktop-device-relay.ljx2043979076.workers.dev/mcpSet up a remote Streamable HTTP MCP connection with Cloudflare Access OAuth. The gateway and device pairing admin page share this free workers.dev host. The old qqking.top route is a temporary fallback, not a dependency of this connector.
Pairing devices
On a Windows machine with Node.js 20.18.1+ run
private-desktop-mcp connectafter installation (or the npx command above).The first run prints an expiring pairing code and an Access-protected approval URL.
Sign into Cloudflare Access and approve the matching code in the admin page.
The device saves a locally scoped credential in the user's AppData and connects via WebSocket. Never commit or share that credential.
Leave the terminal open while using tools. Press Ctrl+C to disconnect. No startup tasks or Windows services are installed.
Reconnecting the same paired device needs no further approval. Revoke old devices from the admin page.
If multiple devices are online, select the intended one at the admin page. The relay must never route to an arbitrary device when the target is ambiguous.
Running without npm publication
Install from your own checked-out repository with npm install then node bin/cli.mjs connect. To install globally from the project: npm install -g ..
Cloudflare deployment
The Worker source is in worker/index.mjs. The infrastructure is described by wrangler.toml. Production has a separate Cloudflare Access self-hosted application protecting exactly /mcp and /admin/*, with Owner-only policy. Device pairing paths /relay/* remain reachable but device WebSocket access is protected by a bearer token issued only after pairing approval.
Never protect the entire Worker with Worker-level Access: this would prevent WebSocket connections. Never deploy the Worker without first configuring path-based Access for the MCP and admin endpoints. Use Wrangler or Cloudflare API credentials provided directly in your own secure environment.
worker/index.mjs currently supports the legacy qqking.top host for rollback. The free workers.dev endpoint is the canonical address.
Releases
CI executes syntax tests and package validation.
Immutable versioned npm packages carry the authoritative
latestdist-tag.Release workflow uses GitHub Actions OIDC npm trusted publishing for this repository and release.yml; no long-lived npm publish token is needed.
GitHub Releases preserves the same immutable
.tgzas a backup.Secrets, local
device.json,.env,node_modulesand existing Cloudflare Access policies are not stored in Git.
Security
This tool has Windows filesystem and command-execution capabilities. Restrict Cloudflare Access to your own identity, approve only devices you control and never expose a naked HTTP MCP endpoint. See SECURITY.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
Termalin's hosted MCP server. Claude, ChatGPT or any MCP client runs commands, moves files over SFTP, queries databases and reads server metrics and monitoring alerts on your servers, keylessly through Termalin Connectors: no SSH key is handed over and no inbound port is opened. Per-host command policy and an audit log. Needs a termal.in Pro or Team account (new accounts start with a 14-day Pro trial).
9 remote MCP servers on Cloudflare Workers for AI agents. Free tier + Pro API keys.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables remote MCP clients to access local filesystem and shell commands by deploying a Cloudflare Worker relay and a local daemon, providing tools like read/write files, exec commands, git status, etc.221 npm1MIT
- AlicenseNot gradedqualityBmaintenanceUnifies local MCP servers into a single secure Cloudflare Tunnel endpoint, making them accessible to MCP clients like Notion and Claude. Supports HTTP/SSE/stdio servers, built-in file system tools, bearer authentication, and one-click Windows setup.MIT

SIN Mac Gatewayofficial
AlicenseNot gradedqualityCmaintenanceEnables remote MCP clients to securely access a trusted macOS machine's local file system and command execution tools (mcp-combiner) via OAuth-authenticated HTTPS through Cloudflare Tunnel, without opening router ports.MIT- AlicenseNot gradedqualityCmaintenanceEnables remote MCP clients like ChatGPT to run shell commands and manage files on your local machine via a Cloudflare tunnel, exposing tools for file operations, search, and task management.5MIT