Skip to content
Conduit

mcp server

latch

Let any AI app use your Android phone, on your terms. Open-source MCP server and Android app: Claude, ChatGPT and Cursor can see the screen and tap, with per-app permissions, approval for Send and Pay

aspershupadhyay/latchcommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

This project does not publish an install method we can turn into a config. Follow the README instead.

README

synced Oct 21, 2026

CI Android beta MCP License: AGPL-3.0

Download the beta  ·  Set up in 5 minutes  ·  Website  ·  Safety  ·  Benchmarks


Latch is an Android app and a small gateway that you own. Claude, ChatGPT, Cursor, or any other MCP app connects to your gateway and can read your screen, tap, type, and move files, but only in the apps you switch on, and never past a payment, a password, or the Stop button. Developers can also switch on full ADB shell access over Wi-Fi.

Your phone connects out to a gateway you run: on your computer, your free Vercel account, or your own server. No cable, and no Latch server in the middle.

[!NOTE] Latch is in beta. Every change passes CI, including the real app on an Android emulator, but it has not yet been tested on many phones. Report what breaks.

How it works

flowchart LR
    AI["<b>Your AI app</b><br/>Claude · ChatGPT · Cursor"] -- "MCP" --> GW["<b>Your gateway</b><br/>your computer, Vercel, or a server"]
    Phone["<b>Latch app</b><br/>your Android phone"] -- "connects out, signed" --> GW
  • The app reads the screen through Android's accessibility service and performs the taps. Every rule is checked again on the phone, against what is on screen at that moment.
  • The gateway speaks MCP to your AI app and passes typed commands to the phone. It cannot do anything the phone refuses.
  • You choose which apps the AI may use, approve anything risky on the phone, and stop everything with one tap.

Quick start

1. Install the app on an Android 11+ phone: latch-android.apk.

2. Run a gateway. Pick one:

  • On your computer, for a phone on the same Wi-Fi:

    macOS, Linuxcurl -fsSL https://github.com/aspershupadhyay/latch/releases/download/beta/install-gateway.sh | sh
    Windows (PowerShell)irm https://github.com/aspershupadhyay/latch/releases/download/beta/install-gateway.ps1 | iex
    From v0.1.0brew install latch · winget install AspershUpadhyay.Latch · scoop install latch (how)

    Then run latch start and, in the app, tap Scan the QR code.

  • Anywhere, on your free Vercel account: in the app, tap Create my own gateway, copy the owner key, and

    Deploy with Vercel

3. Connect your AI app. Add the gateway's /mcp address as a remote MCP server (latch start prints the exact command for Claude Code), then approve the 4-letter code on the phone.

Start a session on the phone and ask: "What's on my screen right now?" Every tap, screen by screen: setup guide.

Why Latch

Any AI appOne MCP address for Claude, ChatGPT, Cursor, Codex, VS Code, and the rest. Each signs in with OAuth that you approve on the phone, or gets its own key.
You stay in chargeEvery app is off until you switch it on. Send, Pay, Install, and permission prompts ask you first. Password, PIN, and one-time-code fields are refused. Screen text is data, never an instruction. A Stop button is always on screen.
Every gesture, fastTap, swipe, drag, pinch, and any multi-finger gesture. Actions return only what changed; run_steps and saved skills do several steps in one call.
Full ADB, no cableOptional and off by default: pair wireless debugging once, and your AI app runs any adb shell command over Wi-Fi, with complete output. You turn it on; Stop ends it. Compared with ADB agents →
Files and a live mirrorFiles up to 2 GB over encrypted 15-minute links, and the phone's screen live in your browser, with mouse and keyboard.
Yours to runYour computer, a free Vercel deploy, or a small container. No Latch server in the middle, and Latch collects nothing. AGPL-3.0.

Documentation

GuideWhat it covers
Setup · Install the gateway · Connect your phoneGetting started, screen by screen
TroubleshootingPlay Protect, Restricted setting, sessions that drop, slow actions, updating your gateway
Safety and privacyWhat the AI can and cannot do, and what is stored where
MCP toolsEvery tool an AI app can call, including any gesture and full-access ADB
Run on Vercel · Self-host · ReleasesOperating a gateway, keys, big files, and how releases are made
Device protocol · Decisions · HandbookThe phone ↔ gateway contract, why it looks this way, and the roadmap

Stuck? "App blocked", a greyed-out accessibility switch, a session that stops with the screen off, or slow actions: troubleshooting has each fix. Anything else: open an issue.

iPhone: iOS has no public way for one app to operate another, so a full iPhone version is not possible (why).

Develop

scripts/cloud-session-setup.sh   # once: Rust, the Android SDK, and the test clients
scripts/dev.sh                   # a local gateway and a simulated phone, no device needed
scripts/check.sh                 # everything CI runs
PathWhat lives there
apps/androidThe app (Kotlin, Jetpack Compose)
servers/mcp · servers/vercelThe gateway for computers and containers (Rust) and for Vercel (TypeScript)
crates/protocol · crates/policyThe device protocol and the rules that decide what is allowed
crates/fake-device · packages/schemasA simulated phone, and the schemas and fixtures every implementation shares
packaging · scriptsThe latch command, the package manifests, and the installers

CI runs on every pull request: Rust, both gateways end to end, the official MCP SDK client, the Android build, the real app on an emulator, both installers on Linux and Windows, the container image, and a dependency audit. Read CONTRIBUTING.md first, and report vulnerabilities privately via SECURITY.md. Also: GOVERNANCE.md · CHANGELOG.md · SUPPORT.md.

License

GNU AGPL-3.0, with the attribution terms in NOTICE. You may use, study, and change Latch. If you share a changed version, or run it as a service other people connect to, publish your source under the same license and keep the credit Based on Latch by Aspersh Upadhyay. The name and logo are not licensed for forks: see TRADEMARKS.md.

↑↓ navigate openesc close