Skip to main content
Glama
1999AZZAR

scrcpy-mcp

by 1999AZZAR

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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
start_sessionA

Start a scrcpy session for fast input control and screenshots. When a session is active, tap/swipe/text/screenshot are 10-50x faster. Requires scrcpy-server to be installed.

stop_sessionA

Stop the active scrcpy session. Tools will fall back to ADB commands.

versionA

Report which scrcpy version is being used by the MCP server. The version is detected from the SCRCPY_SERVER_VERSION environment variable, the scrcpy --version binary, or a built-in default.

device_listA

List all connected Android devices with their serial numbers, state, and model

device_infoA

Get detailed info about a device: model, Android version, screen size, SDK level, battery level

screen_onA

Wake the device screen (turn screen on)

screen_offB

Turn the device screen off

connect_wifiA

Enable WiFi ADB and connect to the device wirelessly. Returns the connection address.

disconnect_wifiB

Disconnect from a wireless ADB device

rotate_deviceA

Rotate the device screen (requires active scrcpy session)

expand_notificationsA

Expand the notification panel (requires active scrcpy session)

expand_settingsA

Expand the quick settings panel (requires active scrcpy session)

collapse_panelsA

Collapse all open panels (notification, settings) (requires active scrcpy session)

screenshotA

Take a screenshot of the Android device screen. Returns the image as base64.

screen_record_startA

Start recording the screen. Recording continues until screen_record_stop is called.

screen_record_stopB

Stop screen recording and optionally pull the file to the host.

tapB

Tap at the specified screen coordinates

swipeB

Perform a swipe gesture from one point to another

long_pressB

Perform a long press at the specified coordinates

drag_dropB

Perform a drag and drop gesture from one point to another. Uses input draganddrop on Android 8.0+ (API 26), falls back to swipe on older versions.

input_textA

Type text into the input field. Reports device context (screen, app, session). When submit=true, auto-detects and taps the send button. Optionally target a specific input field by text label, resource ID, or content description instead of auto-focus.

key_eventB

Send a key event to the device. Supports keycodes like HOME, BACK, ENTER, VOLUME_UP, etc.

scrollA

Scroll at the specified position. dy=negative scrolls UP (reveals content above), dy=positive scrolls DOWN (reveals content below). Use large values (e.g. -400, 500) for meaningful scroll distance.

app_startA

Launch an app by package name. PREFERRED over swiping the app drawer / manual UI navigation. Uses scrcpy START_APP (fast) when session is active, falls back to ADB am start. Supports force-stop prefix (+).

app_stopC

Force-stop an app on the device.

app_installB

Install an APK file on the device from the host machine.

app_uninstallA

Uninstall an app from the device.

app_listA

List installed packages on the device. Optionally filter by name or restrict to system/third-party apps. Use to find package names for app_start.

app_currentA

Get the currently foregrounded app package name and activity.

clipboard_getA

Get the current clipboard content from the device. Uses scrcpy GET_CLIPBOARD when a session is active (works on Android 10+), falls back to ADB clipboard commands.

clipboard_setA

Set the clipboard content on the device. Uses scrcpy SET_CLIPBOARD when a session is active (with optional paste flag), falls back to ADB clipboard commands.

ui_dumpA

Dump the full UI hierarchy of the current screen as XML.

ui_find_elementA

Find UI elements on screen by text, resource ID, class name, or content description. Returns matching elements with their tap coordinates.

ui_tap_elementA

Find a UI element by text, resource ID, class name, or content description, and immediately tap it. Smartly finds the nearest input field when targeting a label.

ui_get_stateA

Dump the UI and return a clean Markdown-like tree of visible and clickable elements with viewport coordinates. NOTE: WebView elements may report identical y-coordinates when scrolled; use scroll_to_element first to bring target fields into view.

ui_wait_for_elementB

Wait for a UI element to appear on screen. Polls the UI until the element matches criteria or timeout is reached.

ui_smart_fillA

Find a UI element, tap it, inject text, and optionally press ENTER. Smartly finds the nearest input field when targeting a label.

waitA

Wait for a specified number of milliseconds. Use between actions to wait for animations, page loads, or network responses.

scroll_to_elementB

Scroll the page to bring a specific UI element into view. Tries to find the element by text, then swipes up/down until it becomes visible or timeout is reached.

form_fillB

Fill a multi-field form. Provide an array of {label, value} pairs. For each pair, finds the nearest input field to the label text, taps it, and types the value. Handles checkboxes and dropdowns by label matching.

shell_execA

Execute an arbitrary ADB shell command on the device and return the output. Use this for any device operation not covered by other tools.

file_pushA

Push a file from the host machine to the device.

file_pullC

Pull a file from the device to the host machine.

file_listB

List directory contents on the device.

start_video_streamA

Start an HTTP MJPEG video stream of the device screen and open a viewer window (ffplay). Starts a scrcpy session automatically if needed.

stop_video_streamA

Stop the HTTP MJPEG video stream and close the viewer window for a device.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/1999AZZAR/scrcpy-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server