polyscreen-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ADB_PATH | No | Absolute path to the adb executable. If not set, adb is expected 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": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| mobile_server_infoA | Return package version, active profiles, and the exact registered tool list. Call after reconnect to verify Cursor sees the full core surface. |
| mobile_devices_listA | List ADB devices with reachability, hardware serial grouping, preferred TCP serial, and aliases when the same device appears under multiple serials. |
| mobile_device_inspectB | Probe the selected device's actual ADB, input, command, build, and backend capabilities. |
| mobile_displays_listA | List logical displays and correlated physical capture IDs with evidence and focus state. |
| mobile_screen_captureA | Capture one logical display after resolving its SurfaceFlinger physical display ID. |
| mobile_screen_recordA | Blocking record of one physical-backed display for a bounded duration. Prefer mobile_record_start/mark/stop when input must be interleaved. |
| mobile_sessions_statusA | Return active async recording, focus, and logcat sessions (optional serial filter). Use before stop/mark to recover IDs after a reconnect. |
| mobile_record_startA | Start a non-blocking screenrecord on one logical display so input tools can run during capture. One active session per (serial, displayId). |
| mobile_record_markA | Attach a labeled timestamp (offsetMs from record start) for later correlation with analyze/focus/logcat. |
| mobile_record_stopA | Stop screenrecord with SIGINT, pull the MP4 into artifacts, and return marks with offsets. |
| mobile_analyze_recordingA | Sample mean grayscale over an MP4 (ffmpeg), detect black/dim runs, and classify OEM-agnostic brightness buckets (true_black, near_black_content, system_launcher_idle, dark_app_ui, light_app_ui). Bucket ranges are heuristics—calibrate with exportSampleFrames on the device under test. Use mode='flash' for one-call regressions. Full per-frame timeline is omitted unless includeFullTimeline=true. |
| mobile_theme_flash_reportC | Correlate system night mode with a recording analysis (mode=flash) and marks whose offsets fall inside any reported black/dim run (± markWindowMs). |
| mobile_focus_traceA | Blocking sample of focused package/activity/taskId for a fixed duration. Prefer mobile_focus_trace_start/stop when interleaving input or recording. Large sample sets are written to an artifact; only a compact prefix is inlined. |
| mobile_focus_trace_startA | Start non-blocking focus sampling for logical displays. Optionally bind to a recordId so samples include recordOffsetMs aligned with record marks. Default interval 250ms; samples are ring-buffered (maxSamples). |
| mobile_focus_trace_stopA | Stop an async focus session and return focus change events plus samples (wallClockIso, tMs, optional recordOffsetMs). Prefer |
| mobile_artifacts_listA | List metadata stubs (uri, name, mime, size) for files under the artifact root. Does not embed binary contents. |
| mobile_artifacts_pruneA | Delete old or excess artifact files by maxAgeMs and/or maxCount. Use dryRun to preview. |
| mobile_screen_capture_pairA | Capture multiple logical displays as tightly paired same-moment screenshots (parallel screencap after one display resolve). |
| mobile_ui_snapshotB | Return parsed accessibility nodes. Portable ADB supports only display 0; other displays require the companion. |
| mobile_ui_findB | Find accessibility nodes by text, content description, or resource ID. |
| mobile_ui_waitA | Poll until a matching accessibility node appears or the bounded timeout expires. |
| mobile_input_tapA | Inject a display-targeted touchscreen tap in logical display coordinates. |
| mobile_input_swipeC | Inject a display-targeted touchscreen swipe with explicit duration. |
| mobile_input_dragC | Inject a capability-gated long-press drag-and-drop on one logical display. |
| mobile_input_key_combinationA | Inject a device-supported key combination with explicit ordering and chord duration. |
| mobile_input_keyB | Send symbolic or numeric Android keys with gamepad source and capability-gated press options. |
| mobile_input_textA | Type text through ADB's virtual keyboard. Reports the Unicode limitation instead of hiding it. |
| mobile_app_inspectB | Read package state, permissions, components, users, and installation metadata. |
| mobile_app_launchC | Resolve and launch an activity on a logical display with ActivityManager wait diagnostics. |
| mobile_app_stopB | Force-stop a package, including its processes and pending implicit launches. |
| mobile_app_relaunch_on_displaysA | Force-stop a package, then launch its main (or given) activity on each logical display in order. Use for dual-display cold-start / flash reproduction. |
| mobile_app_installB | Install one local APK with a bounded timeout and structured ADB result. |
| mobile_app_uninstallB | Uninstall a package, optionally retaining its data. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Zyzto/polyscreen-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server