expo-android
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP port when using http/both | 7332 |
| ADB_PATH | No | Path to adb executable | adb |
| ADB_DEBUG | No | Log adb diagnostics to stderr | 0 |
| ADB_SERIAL | No | Device serial to target (auto to clear and auto-detect) | |
| MCP_TRANSPORT | No | Transport: stdio, http, or both | stdio |
| ADB_TIMEOUT_MS | No | Timeout for adb commands | 15000 |
| ADB_MAX_BUFFER_MB | No | Max output buffer size | 10 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| devicesA | List connected Android devices and emulators. |
| doctorB | Check adb availability and connected devices. |
| setDeviceA | Override the active device serial for this MCP process. Use "auto" to clear override. |
| inspectB | Capture a screenshot and parse UI hierarchy into structured elements. |
| screenshotA | Capture a screenshot without UI element parsing. |
| findElementC | Find UI elements by criteria. |
| tapElementC | Find an element and tap its center coordinate. |
| waitForElementB | Wait until an element appears or timeout is reached. |
| assertElementC | Assert element presence and state. |
| tapC | Tap on screen at coordinates. |
| swipeB | Swipe on screen from one coordinate to another. |
| longPressC | Press and hold on screen at coordinates. |
| inputTextC | Type text into the focused input field. |
| keyEventC | Send an Android key event to the device. |
| openAppB | Launch an Android app by package name. |
| listPackagesB | List installed package names. |
| installExpoGoA | Download the pinned Expo Go APK and install it on the device via adb install -r. Pass url to install a different official Expo Go release (only github.com/expo/expo-go-releases URLs are accepted). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Most tools are clearly distinct, such as screenshot vs. inspect (with UI parsing) and coordinate-based tap vs. element-based tapElement. Minor overlap exists between devices and doctor, both listing devices, but descriptions differentiate their purposes.
Naming mixes imperative verbs (tap, swipe, inspect) with verb+noun compounds (findElement, openApp) and a few noun-only names (devices, doctor). The pattern is not fully consistent but remains readable and predictable.
At 17 tools, the set is slightly above the ideal 3-15 range, but each tool serves a distinct function in device management, UI interaction, and app handling. The count feels justified for a comprehensive Android automation server.
The toolset covers core device lifecycle, UI inspection/interaction, and Expo Go installation. Minor gaps include lack of arbitrary APK installation or text clearing, but essential workflows are well represented.