erius-phone-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ERIUS_PHONE_API_KEY | Yes | Your ERIUS PHONE API key. Every request is authenticated with it and scoped to your account. | |
| ERIUS_PHONE_API_URL | No | API base URL. Default `https://api.eriusphone.com`; only set it if we gave you a different one. | https://api.eriusphone.com |
| ERIUS_PHONE_TIMEOUT | No | HTTP timeout per request, in seconds. Default `30`. | 30 |
| ERIUS_PHONE_DEFAULT_DEVICE | No | The device id to use when a tool call doesn't name one (e.g. `vanilla`). Without it, the agent passes `device` on each call; `list_devices` shows the ids. |
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
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_devicesA | List every Android device your API key can access, with live status (booted, Android version, screen size). Call this first to get device ids. |
| whoamiA | Show which ERIUS PHONE account (tenant) and key id this server is using, and the device ids it can access. Handy to check the API key works. |
| get_deviceA | Get full status of one device: boot state, Android version, screen size,
and the app currently in the foreground. Omit |
| snapshotA | Get an accessibility-tree snapshot of the current screen: every visible
element with its text, role, and a |
| screenshotA | Take a screenshot of the device screen right now and return it as an image you can look at, plus one line of text with the image size and the device's real screen size. The default is a JPEG whose longest side is 1024 px (tens of KB). A full-size PNG of a 1440x3120 phone is about 3 MB, which is more than many MCP clients accept in a tool result, so ask for it only when you need it: format="png", max_side=None.
|
| foregroundA | Get just the foreground app: package, activity, and whether a crash dialog is showing. Cheaper than a full snapshot when you only need this. |
| tapA | Tap an element. Prefer |
| long_pressA | Long-press an element (e.g. to open a context menu or start a drag).
Targets work like tap(): |
| type_textA | Type text into a field. Optionally tap a |
| press_keyB | Press a hardware/navigation key: back, home, enter, delete, tab, escape, up, down, left, right, space, power, volup, voldown, recent, menu, wakeup. |
| swipeB | Swipe from one point to another: in device pixel coordinates, or, with
|
| scrollA | Scroll a list/container up, down, left, or right. |
| wait_for_textB | Wait until |
| launch_appA | Launch an installed app by package name (e.g. com.android.chrome).
Pass |
| open_urlC | Open a URL (http/https/market) on the device, optionally forcing it into a specific app package (e.g. open a link in Chrome specifically). |
| send_intentB | Start an activity with an arbitrary Android intent ( |
| stop_appB | Force-stop a running app by package name. |
| list_appsB | List installed apps on the device. Set third_party_only=True to skip pre-installed system apps and see only user-installed ones. |
| uninstall_appC | Uninstall an app by package name. |
| get_crash_logA | Read the device's crash log buffer (logcat -b crash) — use this after an app crashes during QA testing to see the real stack trace. |
| install_apkA | Install an APK from a local file path on the machine running this MCP server (not on the phone) onto the device. Use this for APK QA testing — the real use case ERIUS PHONE is built for. Returns the parsed package info (name, version) and whether the install actually succeeded. |
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 21 tools
Most tools map to clearly distinct device actions, and the descriptions proactively explain when to use alternatives (e.g. snapshot vs screenshot vs foreground, tap vs swipe vs scroll). Minor overlap exists: whoami and list_devices both surface device ids, and launch_app, open_url, and send_intent can all start an app/activity. Descriptions mostly resolve these, so an agent can usually pick the right one.
All names are snake_case with a consistent convention and no style mixing. Most have a clear verb_noun form (get_device, launch_app, install_apk, wait_for_text), though several core interaction tools are bare nouns (snapshot, screenshot, foreground) or verbs (tap, swipe, scroll), which is a slight deviation.
21 tools is on the heavier end but appropriate for a full device-automation/QA surface. Each tool corresponds to a real, distinct capability (input gestures, app lifecycle, inspection, crash logs). A few could theoretically be consolidated (whoami into list_devices) but nothing feels wasted.
Coverage is strong: device discovery, screen reading (snapshot/screenshot/foreground), all input gestures, app launch/install/uninstall, intents, URL opening, and crash logs are present. Minor gaps remain—no general logcat capture beyond crash buffer, and no file push/pull or clipboard for richer QA workflows.