Inspiration
When your laptop's sound goes silent, the mouse buttons act swapped, or a window drifts off-screen, the usual fix needs exactly the thing that is broken, often minutes before an interview or a class. A second channel helps: your phone.
What it does
RescueBridge lets you talk to your Windows laptop from your phone. It handles three problems: swapped mouse buttons, no sound from the default speaker, and an app window that went off-screen.
- It inspects the real laptop state through a narrow helper that runs as you.
- It asks one focused question at a time (for example, which mouse button you want for normal clicks).
- It proposes an exact change and changes nothing until you tap Approve on your paired phone.
- After a change it looks again and reports what it observed, then asks you to confirm with a real check: a test tone, a test click, or "can you see the window".
- Stop works at any moment and is enforced by the laptop helper, not only by the UI.
- Anything else (Wi-Fi, printers, crashes) is recorded as unsupported with a manual next step; nothing is changed.
What it refuses to do matters as much: no remote mouse or keyboard control, no shell, the model cannot approve anything, API success is never reported as "fixed", and an unclear answer ("I think it works, maybe", "it was working yesterday") never marks an issue resolved.
How we built it
- A self-hosted MCP server (MCP Python SDK 2.3.0, spec 2025-11-25, Streamable HTTP) exposes nine goal-oriented recovery tools: start, inspect, propose, apply, verify, record result, status, stop, undo. There is deliberately no approve tool.
- The phone web app (Vite + TypeScript, an independent Alexa+-style concept simulator) talks to a backend that is a real MCP client (initialize, tools/list, tools/call) of that server.
get_recovery_statusalso ships a read-only status card as an MCP App. - A deterministic service (SQLite) owns all authority: proposals carry a digest of the exact change; approvals are bound to the device, the digest and a permission revision; Stop bumps the revision and fences the helper.
- A Windows helper (named pipe, current-user DACL, HMAC) observes and changes only mouse mapping, Core Audio mute/volume and one window position, re-checking every precondition at the OS-call boundary.
- Language understanding: a keyword interpreter by default; an optional local LLM (Ollama, qwen2.5 3B) fills a closed JSON schema, and deterministic code decides which MCP tools to call.
- A Controlled Live Lab creates real, reversible faults on the laptop for testing, armed for a named session, short duration and exact scope.
Challenges we ran into
- Making Stop trustworthy: an operation already waiting in the Windows worker queue, or one whose request timed out, must never change the system after a confirmed Stop. We ended with an admission gate entered in the OS-call's own thread, atomic with the Stop fence, and deterministic tests.
- Telling a real "yes" from "I think it works, maybe" or "it was working yesterday" in speech.
- Small local models could not pick among nine MCP tools (0 of 8 correct), so the model only fills a schema.
- The phone could not open the pairing QR code at first (it pointed at the phone itself); we added a USB-cable transport.
Accomplishments that we're proud of
- In 24 simulated scenarios RescueBridge made 0 wrong changes and 0 false "fixed" claims; a naive "just fix it" baseline on the same scenarios made 4 wrong changes and 7 false claims.
- 210 automated tests, including end-to-end MCP over real sockets and real-browser tests.
- Verified on a real Windows 11 laptop from a real phone: unmute, test tone, guarded Undo, and an off-screen window brought back with its unsaved text preserved.
What we learned
Trust comes from what an assistant cannot do. Keeping authorization in one deterministic service let a model, or any MCP host, call the tools without being able to approve anything.
What's next for RescueBridge
Independent user testing (nobody but the developer has tried it yet), the mouse repair on real Windows, a public Alexa+ host to validate the approval experience, and more languages.
Honest limits
Windows only; English only; not tested by anyone but the developer; the mouse repair has not run on real Windows; phone over Wi-Fi is untested (USB cable works).
Code: https://github.com/professor-200629/RescueBridge ยท Demo video: https://youtu.be/xQFmAb1c6qg
Built With
- core-audio
- mcp-python-sdk
- model-context-protocol
- ollama
- playwright
- pydantic
- python
- pywin32
- sqlite
- starlette
- typescript
- uvicorn
- vite
- windows
Log in or sign up for Devpost to join the conversation.