Skip to content

android-jev

MCP server that drives an Android phone over adb: it reads the screen, asks Jev the next action, acts, and reports if the goal was met.

ServiceprototypeMIT

Overview

android-jev lets any MCP client control an Android phone through a single run_task tool. You give a goal such as open the Play Store or turn on aeroplane mode; inside, it reads the phone's screen (accessibility tree, with a macOS Vision picture fallback), asks Jev what to do next, does it, checks the result and reports whether the goal was achieved and in how many steps. Everything runs over adb and nothing is installed on the phone.

It is verified only on a Pixel 8a running Android 17, so other phones are untested. It runs on macOS with Python 3.11+ and uv; on Linux the loop works with the accessibility tree but without the picture fallback. The README stresses key hygiene: the key never appears in state, logs, run folders or transcripts.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich on-screen control should be tapped or what action taken next?(inferred)—
Yes / noHas the goal been achieved?(inferred)yes · no

How it works

  1. MCP client calls run_task with a goal
  2. Read the screen via adb accessibility dump (or picture fallback)
  3. Jev picks the next action
  4. Perform it and check the result
  5. Repeat until achieved or stop, then report honestly

Strengths

  • Nothing installed on the phone
  • Honest achieved/not-achieved reporting
  • Key never written to logs or state

Caveats

  • Verified on one phone model only
  • Picture fallback is macOS-only
  • Needs USB debugging and a cable

Getting started

Enable USB debugging, confirm with adb devices, then clone the repo and install with uv (uvx android-jev).

At a glance

Type
Service
Status
prototype
Language
Python
Runtime
MCP server (adb)
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

Frequently asked questions

What does Jev decide?

The next action on the phone screen toward the goal.

Do I install anything on the phone?

No, everything runs over adb.

Which phones work?

Only a Pixel 8a on Android 17 has been measured; others are untested.

Related projects

  • Zero-dependency Node library with MCP and ACP adapters adding Jev decisions and gated computer use beside any LLM agent.

    MCP serverbetaTypeScript
  • Rust MCP server for desktop control via accessibility trees, with an optional decision model (Jev or compatible) for small choices.

    MCP serverproductionRust
  • Rust CLI for desktop computer use via accessibility trees, with optional jev-desktop scripts letting Jev pick the control and action.

    Agent skillbetaRust
  • macOS computer-use package: a background app driver for any agent, plus a loop where Jev picks each UI action for a bounded subtask.

    ProjectbetaPython
  • Local stdio MCP server that executes whole browser and macOS goals with a Jev-driven observe-decide-act loop.

    MCP serverbetaTypeScript
  • MCP server that lets agents observe and control Android phones over ADB, with Jev picking controls and judging goal completion.

    MCP serverbetaTypeScript