scrcpy-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ADB_PATH | No | Path to the ADB binary | adb |
| FFMPEG_PATH | No | Path to the ffmpeg binary | ffmpeg |
| ANDROID_SERIAL | No | Default device serial, overrides auto-detection | |
| SCRCPY_SERVER_PATH | No | Path to the scrcpy-server binary | |
| SCRCPY_SERVER_VERSION | No | Version of the scrcpy-server binary |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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. |
| 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_onB | Wake the device screen (turn screen on) |
| screen_offB | Turn the device screen off |
| connect_wifiB | Enable WiFi ADB and connect to the device wirelessly. Returns the connection address. |
| disconnect_wifiB | Disconnect from a wireless ADB device |
| rotate_deviceB | 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_stopA | Stop screen recording and optionally pull the file to the host. |
| tapA | Tap at the specified screen coordinates |
| swipeC | Perform a swipe gesture from one point to another |
| long_pressC | Perform a long press at the specified coordinates |
| drag_dropA | 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 currently focused input field |
| key_eventB | Send a key event to the device. Supports keycodes like HOME, BACK, ENTER, VOLUME_UP, etc. |
| scrollB | Scroll at the specified position. dx and dy are scroll amounts (-1 to 1 range approximated for ADB). |
| app_startA | Launch an app on the device. Uses scrcpy START_APP when a session is active for faster launch, falls back to ADB |
| app_stopB | Force-stop an app on the device. |
| app_installB | Install an APK file on the device from the host machine. |
| app_uninstallC | Uninstall an app from the device. |
| app_listB | List installed packages on the device. Optionally filter by name or restrict to system/third-party apps. |
| 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. Useful for understanding screen structure before using ui_find_element. |
| ui_find_elementA | Find UI elements on screen by text, resource ID, class name, or content description. Returns matching elements with their tap coordinates. At least one search criterion must be provided. |
| 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_pushB | Push a file from the host machine to the device. |
| file_pullB | Pull a file from the device to the host machine. |
| file_listC | List directory contents on the device. |
| start_video_streamB | Start an HTTP MJPEG video stream of the device screen. Opens a native ffplay window that connects to the stream URL. Requires an active scrcpy session. |
| stop_video_streamA | Stop the HTTP MJPEG video stream and close the viewer window for a device. |
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
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/JuanCF/scrcpy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server