open source · public beta

Your AI,
with a real device.

rish-mcp connects any MCP client to the Android phone you actually use. Inspect it, debug it, and let your AI work with the real thing.

no emulator  ·  no VPN  ·  no root
rish-mcp
Overview
Commands
Devices
Settings
relay online
OverviewAI
YOUR DEVICE / 01

Good morning, AI.

Everything is connected and ready to run.

connected
DEVICEPixel 8 ProAndroid 15 · shell
RELAY LATENCY142 ms↓ 18% this week
Recent commandjust now
$ dumpsys battery
level: 81status: chargingtemperature: 29.4°C
142 msrelay response
uid 2000
REAL DEVICENot an emulator
UID 2000Same as adb shell
OUTBOUND ONLYNo port exposed
OPEN SOURCEGo + Kotlin
01 / features

Everything your AI needs
from your actual phone.

From shell commands to device state, rish-mcp keeps the useful parts close to the hardware.

Real hardware

Work with the sensors, battery, OEM behavior, and Android build that actually matter.

Learn more

Outbound by default

Your phone dials the relay. No VPN, no open port, and no inbound connection to expose.

Learn more

MCP native

Connect any compatible AI client and call run_shell or list_devices like regular tools.

Learn more

Shell-level access

Commands run at uid 2000, the same predictable ceiling as adb shell. No root required.

Learn more

Self-hosted relay

Keep the private control plane on infrastructure you own, with static bearer or OAuth.

Learn more

Small and focused

A Go relay and one Android agent keep the path clear, inspectable, and easy to debug.

Learn more
02 / product

The real device,
in one clear view.

A small control plane for the commands, connection, and hardware that your AI needs to see.

COMMAND CENTER

Ask in plain language.

Your AI turns a question into a shell command, then brings the result back with exit code and timing.

you check my battery run_shell({ cmd: 'dumpsys battery' }) exit=0  level: 81  charging
DEVICE STATUS

See what is really happening.

Battery, network, package state, logs, and sensors — from the phone in your hand, not an emulator.

Pixel 8 ProAndroid 15
SAFE CONNECTION

One socket. No exposure.

The Android agent keeps an outbound WebSocket to your relay and never listens for the internet.

AIrelayphone
OPEN SOURCE

Follow every hop.

Go, Kotlin, and documented wire frames make the whole path available for inspection.

gokotlinmcpws
03 / how it works

From question to
command in seconds.

01

Connect your device

Pair the app with adbd, then let the Android agent dial your self-hosted relay.

02

Connect your AI

Add the relay's HTTP MCP endpoint to Claude or any compatible MCP client.

03

Ask for the real thing

Your AI calls the device, receives stdout and stderr, and explains what happened.

04 / FAQ

Good to know
before you start.

Read the full usage guide
Does rish-mcp need root?+

No. Commands run as Android shell uid 2000 — the same privilege level as adb shell. Root-only operations still remain unavailable.

Does the phone need an open port?+

No. The phone always makes the outbound connection to your relay, so it can work behind CGNAT without exposing an inbound device port.

What does the first setup require?+

Android 11+ uses the phone's Wireless debugging pairing flow. Older devices use a one-time PC plus adb tcpip bridge.

Can I use it with my AI client?+

Yes. The relay exposes a standard HTTP MCP endpoint with run_shell and list_devices. Static bearer authentication and OAuth are supported.

ready when you are

Make your AI
device-aware.

Build the relay. Install the agent. Put the phone in the loop.