Skip to content

jev-mobile-mcp

Fork of mobile-mcp that adds OCR and lets Jev pick which recognised text element to tap on Android and iOS devices.

MCP serverbeta

Overview

jev-mobile-mcp is an MCP server built on mobile-next/mobile-mcp for agents that drive Android and iOS devices, emulators and simulators, aimed at device testing. It keeps every upstream feature and adds an OCR layer (screenshot plus macOS Vision) between the accessibility tree and screenshots, so agents need full screenshots less often. Many screens, such as Flutter drawers without semantics or canvas UIs, never expose their text in the accessibility tree.

With a TypeSafe key, mobile_tap reads OCR first and asks Jev to pick the matching text; if no confident match, it merges the tree and OCR and asks again; if still unsure, nothing is tapped and candidates are returned for the agent to choose. The README notes OCR takes about 1-1.5 s versus 6-10 s for reading a Flutter debug tree. Element lists are also compacted for all users, roughly 60% shorter.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich on-screen text element matches the tap target?—

How it works

  1. Agent calls mobile_tap with a target
  2. OCR reads the screen; Jev picks the matching text
  3. If not confident, merge accessibility tree and OCR and ask again
  4. If still unsure, tap nothing and return candidates to the agent

Strengths

  • Fewer screenshots sent to the agent model
  • Faster than reading slow accessibility trees in some apps
  • Never taps on low confidence

Caveats

  • OCR relies on macOS Vision
  • Jev element choice requires a TypeSafe key
  • Licence not stated in the list data

At a glance

Type
MCP server
Status
beta
Language
TypeScript
Runtime
Node MCP server
Has code
yes

Use cases and integrations

How curated lists describe it

Frequently asked questions

What does Jev decide?

Which OCR or tree element matches the target the agent wants to tap.

What if Jev is not confident?

Nothing is tapped and the candidates are returned for the agent to pick.

Does it work without a TypeSafe key?

The OCR and compact element features work; Jev element choice needs a key.

Related projects

  • Single-file MCP server giving coding agents typed, budgeted Jev control over the iOS Simulator with gated destructive actions.

    MCP serverprototypeJavaScript
  • 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
  • CodexQA browser skill that indexes in-page controls and has Jev pick the operation and target each step, with no screenshots needed.

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

    MCP serverbetaTypeScript