Skip to main content
Glama
oddlyspaced

Ultimate Android MCP

by oddlyspaced

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ADB_CLIENT_HOSTNoThe host address of the ADB server.127.0.0.1
ADB_CLIENT_PORTNoThe port of the ADB server.5037
ADB_DEVICE_SERIALNoThe serial number or IP address of the connected device. If not specified, the first available device will be used.

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
all_packagesA

Returns a list of all packages (both system and user-installed) currently installed on the connected Android device. No parameters are required.

user_packagesA

Returns a list of user-installed application package names on the connected Android device. No parameters are required.

system_packagesA

Returns a list of system application package names (pre-installed apps) on the connected Android device. No parameters are required.

launch_appC

Launches the app with the specified package name on the connected Android device. Requires the package_name parameter, which is the package name of the app to be launched.

get_current_ui_labelsA

Returns a list of UI nodes currently visible on the device screen, focusing on text labels and content descriptions. Each node contains properties like text, bounds, clickable, focusable, and others. No parameters are required.

get_current_focused_nodesA

Returns a list of UI nodes that are currently focused on the connected Android device screen. No parameters are required.

input_keyeventC

Simulates a key event with the specified keycode on the connected Android device. Requires the keycode parameter, which is the keycode of the key to simulate.

input_backB

Simulates a back button event on the connected Android device. No parameters are required.

input_homeA

Simulates a home button event on the connected Android device. No parameters are required.

input_tapA

Simulates a tap gesture at the specified (x, y) coordinates on the connected Android device screen. Requires x and y parameters, which are the coordinates of the tap.

input_textA

Simulates typing the given text input into the currently focused field on the connected Android device. Requires the text parameter, which is the string to be typed.

input_pressC

Simulates a key press event with the specified keycode on the connected Android device. Requires the keycode parameter, which is the keycode of the key to press.

input_rollB

Simulates a rolling gesture with the specified dx and dy values on the connected Android device. Requires dx and dy parameters, which are the rolling distances in the x and y directions respectively.

input_swipeB

Simulates a swipe gesture from (x1, y1) to (x2, y2) with an optional duration on the connected Android device. Requires x1, y1, x2, y2 parameters for the start and end coordinates, and an optional duration_ms parameter for the swipe duration in milliseconds.

is_keyboard_openA

Checks if the virtual keyboard is currently open on the connected Android device. No parameters are required.

execute_adb_shellC

Executes a raw ADB shell command on the connected Android device and returns the output. Requires the command parameter, which is the shell command to execute.

cpu_countA

Returns the number of CPU cores on the connected Android device. No parameters are required.

cpu_percentA

Returns the current CPU load percentage on the connected Android device. No parameters are required.

get_serial_noA

Returns the serial number of the connected Android device. No parameters are required.

get_propertiesA

Returns the build.prop properties of the connected Android device. No parameters are required.

list_featuresA

Returns the device overlay configuration properties of the connected Android device. No parameters are required.

get_battery_levelA

Returns the battery level of the connected Android device. No parameters are required.

wm_densityA

Returns the screen density of the connected Android device. No parameters are required.

wm_sizeA

Returns the screen size of the connected Android device. No parameters are required.

pull_fileA

Pulls a file from the connected Android device to the local machine. Requires remote and local parameters, which are the paths of the file on the device and the local machine respectively.

push_fileA

Pushes a file from the local machine to the connected Android device. Requires local and remote parameters, which are the paths of the file on the local machine and the device respectively.

get_pidB

Returns the process ID (PID) for the specified package name on the connected Android device. Requires the package_name parameter, which is the name of the package to query.

get_top_activitiesB

Returns the activities currently on top on the connected Android device. No parameters are required.

get_top_activityA

Returns the singular activity currently on top on the connected Android device. No parameters are required.

install_apkB

Installs an APK on the connected Android device. Requires the apk_path parameter, which is the path to the APK file to be installed.

uninstall_packageA

Uninstalls the specified package from the connected Android device. Requires the package_name parameter, which is the name of the package to uninstall.

is_installedA

Checks if the specified package is installed on the connected Android device. Requires the package_name parameter, which is the name of the package to check.

get_all_packagesB

Returns a list of all packages on the connected Android device, with optional filters for user-installed or system-installed packages. Accepts user_installed_only and system_installed_only as optional boolean parameters to filter the results.

get_system_packagesB

Returns a list of system-installed packages on the connected Android device. No parameters are required.

get_user_packagesA

Returns a list of user-installed packages on the connected Android device. No parameters are required.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3/5.0

Scored across 35 tools

Disambiguation1/5

Several tools are exact duplicates in purpose: all_packages/get_all_packages, user_packages/get_user_packages, system_packages/get_system_packages, and input_keyevent/input_press both accept a keycode. get_top_activity and get_top_activities also blur together, so an agent would frequently misselect.

Naming Consistency2/5

Naming mixes bare nouns (all_packages, cpu_count, wm_size), get_-prefixed getters (get_properties, get_serial_no), and verb-first actions (launch_app, pull_file). The get_/no-prefix duplication for package listing makes the inconsistency worse, though the input_ prefix shows some grouping.

Tool Count2/5

35 tools is well above the typical coherent range, mostly because of redundant package-list and input commands. A tighter set of 20-25 tools would cover the same functionality without the duplication.

Completeness4/5

The surface covers package management, UI inspection, input injection, device info, file transfer, and raw shell access, which is broad enough for many Android automation workflows. Gaps like screenshot capture or logcat are workarounds via execute_adb_shell.

Maintenance

ActivityInactive
ResponsivenessNo issues