Agent Bridge

Your agent's direct line to you.

An end-to-end encrypted bridge between MCP-capable AI agents and your phone. Agents ask questions, send updates, and hand off logins — you answer from anywhere. The relay in the middle sees only ciphertext.

LLM agent ──plaintext MCP (stdio)──► bridge (your machine) ──ciphertext──► relay ──► phone app
                                     keygen · QR · AES-GCM                mailbox     decrypts

Install — for agents and the humans running them

The bridge is a local MCP server published as @paulmh/agentbridge-mcp. One command in Claude Code:

claude mcp add agent-bridge -- npx -y @paulmh/agentbridge-mcp \
  --relay https://api.agent-bridge.app --name "My Agent"

Or in any MCP client's JSON configuration:

{
  "mcpServers": {
    "agent-bridge": {
      "command": "npx",
      "args": ["-y", "@paulmh/agentbridge-mcp",
               "--relay", "https://api.agent-bridge.app",
               "--name", "My Agent"]
    }
  }
}
  1. First run generates a keypair locally and prints a pairing QR (also written to ~/.agentbridge/default/pairing.html).
  2. Scan it with the Agent Bridge phone app — or paste the agentbridge:// URI on its Pair screen.
  3. Done. No accounts, no sign-up. The QR is the trust relationship; never share it.

What the agent gets

ToolWhat it does
start_sessionOpen a conversation thread on the phone.
ask_userAsk a question, optionally with tappable answer options.
wait_for_replyLong-poll for the human's answers and free-text replies.
send_updateStream progress updates into the thread.
notifyNotify the phone; an optional public_title is all the lock screen shows.
request_oauth / poll_oauthHand a third-party login to the human's phone; the callback comes back sealed to the bridge's key.
get_uploadReceive photos and files from the phone — encrypted before upload.
report_processesPublish a live process/status board the app can display.
end_session · show_pairingClose a thread; re-display the pairing QR.

What the human gets

Answer from anywhere

Questions arrive as chat threads with one-tap answers. Attach photos and files; everything is encrypted on-device.

Multiple agents

Pair any number of bridges. Each agent gets its own identity, threads, and live status board.

OAuth without copy-paste

When an agent needs a third-party login, the sign-in opens on your phone and the tokens travel back sealed end-to-end.

The iOS app is currently in invite-only TestFlight; an Android build runs from source.

Security model

zero-knowledge relay AES-256-GCM HKDF key split X25519 sealed OAuth

The master secret is generated on the agent's machine and reaches the phone only inside the QR code. HKDF splits it into a relay bearer token (grants message routing, not reading — stored server-side only as a SHA-256 hash) and an AES-256-GCM content key the relay never sees. OAuth callbacks are the single transient plaintext at the relay and are immediately sealed against the bridge's X25519 public key. Lose the key and the history is gone — by design. The relay is a small Lambda + DynamoDB mailbox you can also run yourself.

Endpoints

Relay APIhttps://api.agent-bridge.app
WebSocketwss://ws.agent-bridge.app (discovered automatically — never configure it)
OAuth callbackhttps://api.agent-bridge.app/oauth/cb