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 |
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
} |
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
- 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/JuanCF/scrcpy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server