Scrcpy MCP Server

MCP server for Android device control via ADB and scrcpy

Local serverstdio

What is the Scrcpy MCP server?

If you already use Scrcpy, the scrcpy mcp server is the piece that lets your assistant work with it directly. MCP server for Android device control via ADB and scrcpy.

What the server does

MCP server that gives AI agents full vision and control over Android devices via ADB and scrcpy.

  • 36 tools — covering screenshots, input, apps, UI automation, shell, files, clipboard, and video streaming
  • scrcpy-first — uses scrcpy's binary control protocol for 10-50x faster input and near-instant screenshots (~33ms)
  • ADB fallback — every tool works without scrcpy — slower but always available
  • Image-returning screenshots — the AI actually sees the screen, not just a file path
  • UI element finding — ui_find_element returns tap coordinates so the AI can act on what it sees
  • Clipboard that works on Android 10+ — scrcpy bypasses the restrictions that break ADB-only solutions

Available tools

The toolset is worth reading before you wire it up, because it tells you what the integration is really for:

  • scrcpy-first — uses scrcpy's binary control protocol for 10-50x faster input and near-instant screenshots (~33ms)
  • Image — returning screenshots**: the AI actually sees the screen, not just a file path
  • Requirement — Install
  • scrcpygithub.com/Genymobile/scrcpy
  • ffmpeg — apt install ffmpeg / brew install ffmpeg
  • start_session — Start a scrcpy session. When active, input and screenshots use the fast path (10-50x faster)
  • stop_session — Stop the scrcpy session. Tools fall back to ADB
  • start_video_stream — Start an HTTP MJPEG video stream and open an ffplay viewer window. Auto-starts a scrcpy session if needed
  • stop_video_stream — Stop the video stream and close the viewer window
  • device_list — List all connected devices with serial, state, and model
  • device_info — Get model, Android version, screen size, SDK level, battery
  • screen_on — Wake the device screen

Installation

scrcpy-mcp on npm is all you need. Most clients run it directly, so configuration is a few lines and a restart.

Credentials and setup notes

Configuration is passed through the environment: SCRCPY_SERVER_PATH, SCRCPY_SERVER_VERSION, FFMPEG_PATH, FFPLAY_PATH. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

Where it fits

Plenty of developer tooling servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Scrcpy's toolset — scrcpy-first, Image, Requirement and 11 more — is a fair guide to whether it matches your workflow. It is maintained by JuanCF; worth a glance at recent repository activity before you build anything load-bearing on it.

We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.

Worth knowing first

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 14 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Scrcpy.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Available tools

ToolWhat it does
scrcpy-firstuses scrcpy's binary control protocol for 10-50x faster input and near-instant screenshots (~33ms)
Imagereturning screenshots**: the AI actually sees the screen, not just a file path
RequirementInstall
scrcpy[github.com/Genymobile/scrcpy](https://github.com/Genymobile/scrcpy/releases)
ffmpegapt install ffmpeg / brew install ffmpeg
start_sessionStart a scrcpy session. When active, input and screenshots use the fast path (10-50x faster).
stop_sessionStop the scrcpy session. Tools fall back to ADB.
start_video_streamStart an HTTP MJPEG video stream and open an ffplay viewer window. Auto-starts a scrcpy session if needed.
stop_video_streamStop the video stream and close the viewer window.
device_listList all connected devices with serial, state, and model
device_infoGet model, Android version, screen size, SDK level, battery
screen_onWake the device screen
screen_offTurn the screen off
rotate_deviceRotate the screen (requires active session)

How to install the Scrcpy MCP server

### OpenCode

Add to `.mcp.json`:

```json
{
  "mcpServers": {
    "android": {
      "command": "npx",
      "args": ["scrcpy-mcp"]
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

VariableDescriptionRequired
SCRCPY_SERVER_PATHFilesystem location the server is allowed to use.Optional
SCRCPY_SERVER_VERSIONConfiguration value read at startup.Optional
FFMPEG_PATHFilesystem location the server is allowed to use.Optional
FFPLAY_PATHFilesystem location the server is allowed to use.Optional

Example prompts to try

  • Use Scrcpy to scrcpy-first.
  • Use Scrcpy to Image.
  • Use Scrcpy to Requirement.

Frequently asked questions

It connects Scrcpy to MCP-compatible AI assistants such as Claude and Cursor, exposing 14 tools (scrcpy-first, Image, Requirement, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Scrcpy directly.