{"name":"io.github.JuanCF/scrcpy-mcp","slug":"juancf-scrcpy-mcp","title":null,"description":"MCP server for Android device control via ADB and scrcpy","url":"https://mcp.market/server/juancf-scrcpy-mcp","rating":null,"grade":"A","score":88,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":43,"stars":125,"forks":21,"downloads_week":365,"last_push_at":"2026-09-23T04:45:08.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/JuanCF/scrcpy-mcp","website":null,"version":"0.5.0","remotes":[],"packages":[{"registryType":"npm","identifier":"scrcpy-mcp","version":"0.5.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Target device serial number (from `adb devices`). Required when multiple devices are connected.","format":"string","name":"ANDROID_SERIAL"},{"description":"Custom path to the adb binary. Defaults to 'adb' on PATH.","format":"string","name":"ADB_PATH"},{"description":"Path to the scrcpy-server.jar file. Only needed if not installed in a standard location.","format":"string","name":"SCRCPY_SERVER_PATH"}]}],"tools":[{"name":"app_current","description":"Get the currently foregrounded app package name and activity.","write_action":false,"price_micros":0,"input_schema":null},{"name":"app_install","description":"Install an APK file on the device from the host machine.","write_action":false,"price_micros":0,"input_schema":null},{"name":"app_list","description":"List installed packages on the device. Optionally filter by name or restrict to system/third-party apps.","write_action":false,"price_micros":0,"input_schema":null},{"name":"app_start","description":"Launch an app on the device. Uses scrcpy START_APP when a session is active for faster launch, falls back to ADB `am start`. Supports force-stop prefix (+) to stop the app before launching.","write_action":false,"price_micros":0,"input_schema":null},{"name":"app_stop","description":"Force-stop an app on the device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"app_uninstall","description":"Uninstall an app from the device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clipboard_get","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clipboard_set","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"collapse_panels","description":"Collapse all open panels (notification, settings) (requires active scrcpy session)","write_action":false,"price_micros":0,"input_schema":null},{"name":"connect_wifi","description":"Enable WiFi ADB and connect to the device wirelessly. Returns the connection address.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_info","description":"Get detailed info about a device: model, Android version, screen size, SDK level, battery level","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_list","description":"List all connected Android devices with their serial numbers, state, and model","write_action":false,"price_micros":0,"input_schema":null},{"name":"disconnect_wifi","description":"Disconnect from a wireless ADB device","write_action":false,"price_micros":0,"input_schema":null},{"name":"drag_drop","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"expand_notifications","description":"Expand the notification panel (requires active scrcpy session)","write_action":false,"price_micros":0,"input_schema":null},{"name":"expand_settings","description":"Expand the quick settings panel (requires active scrcpy session)","write_action":false,"price_micros":0,"input_schema":null},{"name":"file_list","description":"List directory contents on the device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"file_pull","description":"Pull a file from the device to the host machine.","write_action":false,"price_micros":0,"input_schema":null},{"name":"file_push","description":"Push a file from the host machine to the device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"input_text","description":"Type text into the currently focused input field","write_action":false,"price_micros":0,"input_schema":null},{"name":"key_event","description":"Send a key event to the device. Supports keycodes like HOME, BACK, ENTER, VOLUME_UP, etc.","write_action":true,"price_micros":0,"input_schema":null},{"name":"long_press","description":"Perform a long press at the specified coordinates","write_action":false,"price_micros":0,"input_schema":null},{"name":"rotate_device","description":"Rotate the device screen (requires active scrcpy session)","write_action":false,"price_micros":0,"input_schema":null},{"name":"screen_off","description":"Turn the device screen off","write_action":false,"price_micros":0,"input_schema":null},{"name":"screen_on","description":"Wake the device screen (turn screen on)","write_action":false,"price_micros":0,"input_schema":null},{"name":"screen_record_start","description":"Start recording the screen. Recording continues until screen_record_stop is called.","write_action":false,"price_micros":0,"input_schema":null},{"name":"screen_record_stop","description":"Stop screen recording and optionally pull the file to the host.","write_action":false,"price_micros":0,"input_schema":null},{"name":"screenshot","description":"Take a screenshot of the Android device screen. Returns the image as base64.","write_action":false,"price_micros":0,"input_schema":null},{"name":"scroll","description":"Scroll at the specified position. dx and dy are scroll amounts (-1 to 1 range approximated for ADB).","write_action":false,"price_micros":0,"input_schema":null},{"name":"shell_exec","description":"Execute an arbitrary ADB shell command on the device and return the output. Use this for any device operation not covered by other tools.","write_action":true,"price_micros":0,"input_schema":null},{"name":"start_session","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"start_video_stream","description":"Start an HTTP MJPEG video stream of the device screen and open a viewer window (ffplay). Starts a scrcpy session automatically if needed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"stop_session","description":"Stop the active scrcpy session. Tools will fall back to ADB commands.","write_action":false,"price_micros":0,"input_schema":null},{"name":"stop_video_stream","description":"Stop the HTTP MJPEG video stream and close the viewer window for a device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"swipe","description":"Perform a swipe gesture from one point to another","write_action":false,"price_micros":0,"input_schema":null},{"name":"tap","description":"Tap at the specified screen coordinates","write_action":false,"price_micros":0,"input_schema":null},{"name":"ui_dump","description":"Dump the full UI hierarchy of the current screen as XML. Useful for understanding screen structure before using ui_find_element.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ui_find_element","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"version","description":"Report which scrcpy version is being used by the MCP server. The version always describes the scrcpy-server file the session pushes: it comes from the SCRCPY_SERVER_VERSION environment variable, or from the scrcpy client belonging to the same install as that server, or a built-in default.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":88,"grade":"A","scanned_at":"2026-11-02T06:14:02.547Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-02T06:14:02.497Z","components":{"code":{"score":25,"max":25,"notes":["2 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":12,"max":15,"notes":["last push 40 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"scrcpy-mcp","version":"0.5.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-08-21T00:20:15.951Z","repositoryUrl":"git+https://github.com/JuanCF/scrcpy-mcp.git","weeklyDownloads":365}],"repo":{"found":true,"owner":"JuanCF","repo":"scrcpy-mcp","archived":false,"pushedAt":"2026-09-23T04:45:08Z","stars":125,"forks":21,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/20245734?v=4","ownerCreatedAt":"2016-07-01T16:07:39Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/20245734?v=4&s=128","source":"registry"},"presence":{"stars":125,"forks":21,"downloadsWeek":365,"license":"MIT","lastPushAt":"2026-09-23T04:45:08.000Z","score":43}}}},"grade_history":[],"reviews":[]}