Start on Mac. Continue on Windows. Send it back. Nothing gets lost.
PCMCP is a WebMCP-powered cross-platform task handoff demo. It moves a neutral task capsule between browsers/computers without remote-controlling the destination machine.
September 2026 update: We just discovered that the README had been missing the single Cloudflare tunnel command required to reproduce the original two-computer demo. 😅 Sorry to everyone who cloned PCMCP and only found the localhost setup. The cross-computer handoff from the demo was real, and the current repo still supports it. The missing setup is documented below.
The original demo shows a Mac sending the capsule to a Windows 10 PC and receiving it back.
- Live task-state handoff between two computers through one shared PCMCP server.
- Mac → Windows → Mac round-trip demonstrated.
- Destination edits appear back on the other computer in about a second under normal conditions.
- Browser UI works without WebMCP for manual testing.
- When WebMCP is available, PCMCP exposes:
send_capsulereceive_capsule
- No remote desktop is involved.
PCMCP currently transfers task state. The platform selector labels the intended destination, but PCMCP does not itself execute programs or commands on the destination OS.
Requirements: Node.js.
git clone https://github.com/Missprincessish/PCMCP.git
cd PCMCP
npm startOpen:
http://localhost:4173
This is the step that was accidentally missing from the README.
npm startPCMCP listens on port 4173.
With cloudflared installed:
cloudflared tunnel --url http://localhost:4173Cloudflare will print a temporary https://....trycloudflare.com URL.
Host computer:
http://localhost:4173
Second computer:
Open the temporary trycloudflare.com URL produced above.
Both browsers now connect to the same capsule. PCMCP polls for state changes roughly every 700 ms, so sending/updating the capsule on one computer appears on the other almost immediately.
Quick Tunnel URLs are ephemeral. The old URL previously listed here expired, which is why it no longer worked.
PCMCP uses document.modelContext.registerTool(...) when the browser exposes WebMCP.
In a WebMCP-enabled environment:
send_capsulesends the current task state.receive_capsuleretrieves the latest state.
A normal browser can still use the PCMCP interface manually, but the WebMCP tools themselves require browser/runtime support for WebMCP.
The demo intentionally stays tiny:
Computer A browser
│
▼
PCMCP Node server
│
▼
Cloudflare tunnel
│
▼
Computer B browser
Both computers read and update the same capsule on the host server.
This is still a prototype:
- Capsule state is currently in memory and resets when the Node server restarts.
- The current demo uses one shared capsule rather than isolated user sessions.
- The demo server is not intended to be exposed as a production public relay.
- PCMCP transports state; destination-side execution/orchestration belongs to higher-level tooling built around it.
You probably did not have broken code. You were missing an embarrassingly important line of documentation. 😂
Pull the latest README and use:
cloudflared tunnel --url http://localhost:4173after npm start.
If you already have the same code revision, you do not need to reclone just to reproduce the original two-computer handoff.
MIT