apkscope
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ANDROID_HOME | No | Path to the Android SDK. Used to locate adb if not already on PATH. | |
| APKSCOPE_ADB | No | Path to the adb binary. Used if adb is not on PATH and ANDROID_HOME/ANDROID_SDK_ROOT are not set. | |
| ANDROID_SDK_ROOT | No | Path to the Android SDK. Used to locate adb if not already on PATH. |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| screenshotA | Render the current screen as text. mode: 'palette' (default) one glyph per pixel with a legend mapping glyphs to true RGB -- layout, colour and shape. 'ramp' luminance ASCII, cheapest and structure only. 'ansi' truecolour half-blocks, roughly 40 characters per pixel, so keep it to small crops and low cols. crop: 'all', 'top', 'mid', 'bot', or 'a,b' as fractions of screen height. cols: output width in characters. squash: vertical scale factor, default 1.0 (true aspect); raise it to compress a tall screen. Does not convey small body text, subtle typography, or whether a screen matches a design intent -- use screen_tree for exact content. |
| screen_treeA | List every labelled element on screen with its bounds. The primary way to read a Flutter UI: Flutter publishes its semantics tree only while an accessibility service is bound, which this tool arranges temporarily and then reverts. Each line gives class, flags, pixel size, centre coordinate and label. Flags: C=clickable, F=focusable, E=enabled, k=checked, s=selected. Only elements marked C are real controls -- Flutter also marks plain text focusable, so do not treat F alone as tappable. Pass tappable=True to get just the tap-target table. |
| audit_layoutA | Check tap-target sizes, overlaps and (optionally) off-screen elements. Reports TAP-SMALL (a control below Full-bleed wrappers are excluded: Flutter often wraps a whole screen in one GestureDetector, which would otherwise appear to overlap everything. |
| tapA | Tap the on-screen element whose label contains Refuses an ambiguous label and lists the candidates, because a silent wrong tap navigates somewhere unexpected. Pass first=True to take the first match. Returns the resolved label and coordinates actually tapped. |
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 4 tools
Each tool has a clearly distinct role: screenshot renders pixels visually, screen_tree extracts semantic structure, audit_layout checks geometry heuristics, and tap performs an action. The descriptions explicitly cross-reference each other (e.g. screenshot points to screen_tree for exact content), eliminating overlap.
All names are lowercase snake_case, but the grammatical pattern is mixed: 'screenshot' and 'screen_tree' are output nouns, 'audit_layout' is verb_noun, and 'tap' is a bare verb. Readable and non-chaotic, but not a predictable single convention.
Four tools is a lean, well-scoped set covering the read/audit/interact loop for a Flutter screen. It is slightly thin (no gesture, input, or navigation helpers), but nothing feels redundant or out of place.
Read and audit coverage is solid, and tap handles basic interaction, but the surface lacks text input, scrolling/swiping, back navigation, and app launch/wait operations. These are notable gaps for a UI inspection/automation domain that will force agents to work around them.