Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ADBAI_ADBNoPath to the adb binary if it lives somewhere unusual.
ADBAI_DEVICENoDefault Android device alias or serial to use when no -d option is supplied.
ADBAI_ALLOW_SHELLNoSet to 1 in the MCP server's environment to enable the adb_shell tool. It is disabled by default.

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
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
adb_list_devicesA

List the Android devices adb currently knows about.

adb_scanA

Scan the local network for devices with the adb port open. Use when a device's IP changed (DHCP) or nothing is connected.

adb_connectC

Connect to a device over the network by ip[:port] or alias.

adb_pair_qr_startA

Begin pairing an Android 11+ phone or tablet by QR code. Returns a QR image to show the person; they point the device's camera at it from Wireless debugging > 'Pair device with QR code'. Then call adb_pair_qr_finish. Use this when a device has never been paired with this machine; an already-paired device just needs adb_connect.

adb_pair_qr_finishA

Wait for the device to scan the code from adb_pair_qr_start, pair with it, and connect. Blocks until it happens or the timeout runs out.

adb_keyB

Press remote-control keys, in order. Names: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, apps, back, blue, captions, channeldown, channelup, delete, down, enter, forward, green, guide, home, info, input, left, menu, mute, next, notifications, ok, pause, play, playpause, power, prev, record, red, rewind, right, search, settings, sleep, space, stop, tab, tv, up, voldown, volup, wake, yellow

adb_type_textB

Type text into the field that currently has focus.

adb_tapA

Tap a point on the screen. For phones and tablets - a TV is driven with adb_key instead. Take a screenshot first to find the coordinates, and adb_screen_size to know the bounds.

adb_swipeA

Swipe from one point to another. The same point twice, with a longer duration_ms, is a long press.

adb_scrollB

Scroll the screen up, down, left or right without working out coordinates.

adb_screen_sizeB

The screen size in pixels, so taps and swipes can be aimed.

adb_list_appsB

List installed packages (third-party by default).

adb_open_appA

Launch an app by friendly alias (netflix, youtube, spotify...), full package name, or a fragment of one.

adb_close_appC

Force-stop an app.

adb_open_urlB

Open a URL or deep link, optionally in a specific app.

adb_youtube_searchC

Search YouTube on the device without using the on-screen keyboard.

adb_set_alarmA

Set an alarm in the device's clock app. Phones and tablets only - most TVs have no clock app and the call will say so.

adb_set_timerB

Start a countdown timer in the device's clock app.

adb_stateA

What is in the foreground, whether the screen is on, and whether media is playing. Call this to check an action worked.

adb_screenshotA

Capture the screen and return it as an image you can look at. Large screens are scaled down on the way (ffmpeg, when it is installed) so you get the picture sooner; pass max_size to change that, or 0 for the untouched original.

adb_volumeB

Change the volume: up, down, mute, or set an exact level.

adb_powerC

Put the screen to sleep or wake the device.

adb_mirrorA

Open a live window of the device's screen on the operator's computer, using scrcpy, so a human can watch what you are doing and take over with mouse and keyboard. It is for them, not for you: you cannot see the window, so keep using adb_screenshot to look at the screen. Needs scrcpy installed and a desktop session; it does not work from Termux.

adb_shellA

Run any adb shell command on the device and return its output - dumpsys, pm, am, settings, getprop, input, wm, content, and so on. Use it for what the other tools do not cover; prefer them when they do. Runs as the shell user (no root). Can be switched off with ADBAI_NO_SHELL=1.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 24 tools

Disambiguation4/5

Most tools have clearly distinct purposes, including separate pairing, connection, input, app, and device-state operations. Some overlap exists between convenience tools and lower-level ones, such as adb_scroll vs adb_swipe, adb_volume vs adb_key volume keys, and adb_power vs adb_key power/sleep/wake, but the descriptions generally clarify when to prefer each.

Naming Consistency4/5

All tool names share a consistent adb_ prefix and snake_case formatting, making the set easy to scan. The main inconsistency is that many names are noun-style resource tools (adb_state, adb_screenshot, adb_volume) while others are verb-first actions (adb_open_app, adb_list_apps, adb_set_alarm).

Tool Count3/5

At 24 tools, the surface is heavy and includes several convenience wrappers that could be folded into broader tools. The domain is broad enough to justify many operations, but this sits in the borderline 16-25 range rather than being tightly scoped.

Completeness4/5

The server covers device discovery, pairing, connection, input, app control, media/search, alarms/timers, screenshots, state inspection, power, volume, mirroring, and arbitrary shell access. Dedicated tools for file transfer, app install/uninstall, reboot, or screen recording are missing, but adb_shell provides a workaround for most gaps.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues