Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ANDROID_MODENoAccess mode determining what the server can do (e.g. read-only, read-write, admin).read-only
ANDROID_DRY_RUNNoPreview operations without touching the device. Default is false.false
ANDROID_AUDIT_LOGNoEnable audit logging to stderr. Default is true.true
ANDROID_ALLOW_SHELLNoAllow raw `adb shell` usage (run_shell is not registered otherwise). Default is false.false
ANDROID_ALLOW_INSTALLNoAllow install/uninstall/clear operations. Default is false.false
ANDROID_PACKAGE_ALLOWLISTNoWhich packages are in scope. Defaults to all packages.*
ANDROID_PROTECTED_PACKAGESNoProtected packages that are never uninstalled or cleared. Defaults to settings, systemui, gms.settings, systemui, gms

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": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_devicesB

List connected adb devices and their state.

device_infoC

Model, manufacturer, Android version, and screen size.

screenshotA

Capture the current screen as a PNG image so you can see what's on the phone before acting.

ui_dumpA

Dump the current screen's UI hierarchy (uiautomator XML) with element text and bounds — use it to find exact tap coordinates.

current_appB

The package/activity currently in the foreground.

list_appsA

List installed packages. Third-party only by default.

get_notificationsA

Read current notifications (package + title/text), best-effort. Useful for clearing the pile-up.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 7 tools

Disambiguation4/5

Each tool targets a distinct inspection target (device list, device specs, screenshot, UI hierarchy, foreground app, installed packages, notifications). The only mild overlaps are list_devices vs device_info and screenshot vs ui_dump, but the descriptions explicitly differentiate them (visual preview vs. exact tap coordinates).

Naming Consistency3/5

All names are snake_case, but verb style is mixed: some use verb_noun (list_devices, list_apps, get_notifications) while others are bare nouns (screenshot, ui_dump, device_info, current_app). Still readable, but no single predictable pattern.

Tool Count4/5

Seven tools is a well-scoped size for a device inspection server, and each one covers a distinct piece of information. Slightly thin for a full Android control server, but no tool feels redundant.

Completeness2/5

The surface is entirely read-only: there is no tap, swipe, text input, app launch/install, or file push. This is especially glaring because screenshot and ui_dump descriptions explicitly frame themselves as preparation for acting ('before acting', 'find exact tap coordinates'), yet no action tool exists — a dead end for the primary workflow.

Maintenance

ActivityMaintained
ResponsivenessSyncing