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"]
}
}
}
- First run generates a keypair locally and prints a pairing QR
(also written to
~/.agentbridge/default/pairing.html). - Scan it with the Agent Bridge phone app — or paste the
agentbridge://URI on its Pair screen. - Done. No accounts, no sign-up. The QR is the trust relationship; never share it.
What the agent gets
| Tool | What it does |
|---|---|
start_session | Open a conversation thread on the phone. |
ask_user | Ask a question, optionally with tappable answer options. |
wait_for_reply | Long-poll for the human's answers and free-text replies. |
send_update | Stream progress updates into the thread. |
notify | Notify the phone; an optional public_title is all the lock screen shows. |
request_oauth / poll_oauth | Hand a third-party login to the human's phone; the callback comes back sealed to the bridge's key. |
get_upload | Receive photos and files from the phone — encrypted before upload. |
report_processes | Publish a live process/status board the app can display. |
end_session · show_pairing | Close 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 OAuthThe 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 API | https://api.agent-bridge.app |
|---|---|
| WebSocket | wss://ws.agent-bridge.app (discovered automatically — never configure it) |
| OAuth callback | https://api.agent-bridge.app/oauth/cb |