Expo Android MCP logo

Expo Android MCP

Automates Android devices and emulators through ADB, including UI inspection, interaction, screenshots, app launching, and package management.

Install Expo Android MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "expo-android-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@fndchagas/expo-android"
      ],
      "env": {
        "ADB_PATH": "YOUR_VALUE_HERE",
        "ADB_SERIAL": "YOUR_VALUE_HERE",
        "ADB_TIMEOUT_MS": "YOUR_VALUE_HERE",
        "ADB_MAX_BUFFER_MB": "YOUR_VALUE_HERE",
        "ADB_DEBUG": "YOUR_VALUE_HERE",
        "MCP_TRANSPORT": "YOUR_VALUE_HERE",
        "PORT": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

We couldn’t confirm it starts correctly

We ran the install command but it didn't respond within our test window — this can mean a slow first-time install rather than a real problem.

npx -y @fndchagas/expo-android

No response to initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 6d ago.

Overview

Expo Android MCP MCP server connects an MCP client to Android emulators or connected devices through ADB. It provides tools for device checks, UI inspection, element-based and coordinate-based interaction, screenshots, text entry, key events, app launching, package listing, and Expo Go installation. Use it when an agent needs to exercise or inspect an Android interface rather than only call an application API. Node 18+, Android SDK platform-tools, and an available device or emulator are required.

Use cases

  • Inspect Android UI elements and accessibility properties
  • Automate taps, swipes, text entry, and key events
  • Wait for and assert application UI states
  • Capture emulator screenshots for agent workflows
  • Launch packages and install Expo Go

Key features

  • ADB-based Android device and emulator control
  • Parsed UI inspection and element matching
  • Coordinate and element-based input actions
  • Screenshot capture as base64 or file path
  • Device selection and ADB diagnostics
  • Expo Go APK installation

Tools17

What Expo Android MCP lets your agent do. Expand a tool for its parameters.

Self-reported~237 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

8/8 checks healthy over the last 46d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 4d ago via OSV.dev · @fndchagas/expo-android (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars4Stargazers on the source repository.
npm downloads175Package downloads in the last 30 days.
Last commit1mo agoMost recent push to the default branch.
Install checkInconclusiveDidn't respond in our test window — often a slow first install.
Tools exposed17Callable tools this server registers over MCP.
Directory activity2 viewsConfig copies, upvotes, and views on AllMCPs.

How Expo Android MCP works

What Expo Android MCP MCP server does

Expo Android MCP MCP server exposes Android automation through the Model Context Protocol. It communicates with an emulator or physical device using the Android Debug Bridge, or ADB, and lets an MCP client inspect visible UI, perform input actions, and check device state.

The server supports both semantic and coordinate-based interaction. An agent can search UI elements by text, content description, resource ID, class, and related matching options, then tap or validate the result. It can also tap coordinates directly, swipe, long-press, type into the focused field, send Android key events, and wait for UI conditions.

Additional tools cover screenshots, installed package names, app launching by package name, and installation of the pinned Expo Go APK. The Expo Go URL override is restricted to official github.com/expo/expo-go-releases URLs.

How it works

The MCP client starts the package as a local process by default. The server runs ADB commands against the selected device and returns structured tool results. inspect obtains a UI dump and parses it into elements, with options for a summary, element limits, and an optional screenshot returned as base64 or written to a path. screenshot captures an image without performing a UI dump.

Device selection follows a defined order: a serial supplied to an individual tool call takes precedence, followed by the runtime setDevice override, the ADB_SERIAL environment variable, and automatic selection when only one device is connected. devices lists available targets, while doctor checks ADB availability and reports connected devices.

Setup and configuration

Expo Android MCP MCP server requires Node 18 or newer, Android SDK platform-tools with adb available, and a connected Android device or running emulator. Verify connectivity with adb devices before using the automation tools.

Install it globally with npm install -g @fndchagas/expo-android, or run it through npx -y @fndchagas/expo-android. Claude Desktop also has a release package that can be added through Settings → Extensions; with one connected device, the default configuration can be left empty.

ADB_PATH changes the executable location, and ADB_SERIAL selects a target or uses auto for automatic selection. ADB_TIMEOUT_MS and ADB_MAX_BUFFER_MB control command limits, while ADB_DEBUG=1 writes ADB diagnostics to standard error. MCP_TRANSPORT accepts stdio, http, or both; PORT sets the HTTP port and defaults to 7332.

Claude Code can register the server with claude mcp add, and Codex CLI can register it with codex mcp add. Both examples can pass ADB settings as environment variables.

Tools and capabilities

  • Check ADB and device availability with doctor and enumerate targets with devices.
  • Select a process-wide device with setDevice or target a device per call with serial.
  • Parse the Android UI with inspect, search with findElement, and capture images with screenshot.
  • Tap, wait for, or assert matching elements with tapElement, waitForElement, and assertElement.
  • Drive coordinates using tap, swipe, and longPress.
  • Enter text and system actions with inputText and keyEvent.
  • Launch packages, list installed packages, and install Expo Go with openApp, listPackages, and installExpoGo.

Limitations and notes

The server does not bundle ADB or an Android emulator. If ADB is missing, the process can still start, but tool calls report that the executable cannot be found until the path is corrected. If several devices are connected, configure ADB_SERIAL or select a target with setDevice.

Changing PATH or SDK-related environment settings requires restarting the MCP process. The server marks tools with MCP read-only or destructive annotations, allowing compatible clients to apply different approval behavior to inspection and device-control operations.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Expo Android MCP

Expo Android MCP is an MCP server that connects AI clients to Android emulators and devices through ADB. Its main tools check devices, inspect UI elements, capture screenshots, tap or gesture on interfaces, enter text, send key events, launch apps, list packages, and install the pinned Expo Go APK.

Install it with npm or run it with npx: `npm install -g @fndchagas/expo-android` or `npx -y @fndchagas/expo-android`. Claude Desktop users can also download the release `.mcpb` file and add it under Settings → Extensions.

It needs Node 18 or newer, Android SDK platform-tools with `adb` available, and a connected Android device or emulator. Run `adb devices` to verify the ADB connection before calling automation tools.

Set `ADB_SERIAL` to the device serial, call `setDevice` with a serial, or pass `serial` to an individual tool call. Per-call selection has the highest priority, followed by the runtime override, the environment variable, and automatic selection when only one device is connected.

Yes, it works with both Claude Code CLI and OpenAI Codex CLI. Register it with their respective `mcp add` commands and provide `ADB_PATH` or `ADB_SERIAL` when the defaults do not identify the intended device.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewExpo Android MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/expo-android-mcp?style=directory)](https://allmcps.com/mcp/expo-android-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/expo-android-mcp"><img src="https://allmcps.com/api/badge/expo-android-mcp?style=directory" alt="Expo Android MCP on AllMCPs" /></a>