github re-analysis due

JuanCF/scrcpy-mcp

github

MCP server for Android device control via ADB and scrcpy

maintainer
JuanCF
license
first seen
2026-06-03
last seen
2026-06-03
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 34 tools
transport stdio · http verified reported listed in the official MCP registry counts 34 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • app_current

    Get the current foreground app and activity

  • app_install

    Install an APK from the host machine

  • app_list

    List installed packages, optionally filter by name or system/third-party

  • app_start

    Launch an app by package name. Prefix with + to force-stop before launch.

  • app_stop

    Force-stop an app

  • app_uninstall

    Uninstall an app

  • clipboard_get

    Get clipboard content. Uses scrcpy to bypass Android 10+ restrictions.

  • clipboard_set

    Set clipboard content. Pass paste: true to also paste immediately.

  • collapse_panels

    Collapse notification/settings panels (requires active session)

  • device_info

    Get model, Android version, screen size, SDK level, battery

  • device_list

    List all connected devices with serial, state, and model

  • drag_drop

    Drag from one point to another

  • expand_notifications

    Pull down the notification panel (requires active session)

  • expand_settings

    Pull down the quick settings panel (requires active session)

  • file_list

    List directory contents on the device

  • file_pull

    Pull a file from the device to the host machine

  • file_push

    Push a file from the host machine to the device

  • input_text

    Type a text string into the focused field

  • key_event

    Send a key event: HOME, BACK, ENTER, VOLUME_UP, VOLUME_DOWN, POWER, etc.

  • long_press

    Long press at coordinates

  • rotate_device

    Rotate the screen (requires active session)

  • screen_off

    Turn the screen off

  • screen_on

    Wake the device screen

  • screen_record_start

    Start recording the screen to a file on the device

  • screen_record_stop

    Stop recording and optionally pull the file to the host

  • screenshot

    Capture the screen and return it as an image. ~33ms with scrcpy, ~500ms via ADB.

  • scroll

    Scroll at a position (dx=horizontal, dy=vertical)

  • shell_exec

    Execute an arbitrary ADB shell command and return the output

  • 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.

  • swipe

    Swipe from one point to another

  • tap

    Tap at screen coordinates

  • ui_dump

    Dump the full UI hierarchy as XML

  • ui_find_element

    Find elements by text, resource ID, class name, or content description. Returns tap coordinates.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 7a1e1ef · analyzer v17 · 3d ago

skills & prompt files 1

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

filesystem 3

  • fs JuanCF-scrcpy-mcp-7a1e1ef/src/tools/apps.ts :2 import * as fs from "fs"
  • fs JuanCF-scrcpy-mcp-7a1e1ef/src/tools/files.ts :2 import * as fs from "fs"
  • fs JuanCF-scrcpy-mcp-7a1e1ef/src/utils/scrcpy.ts :5 import * as fs from "fs"

shell / exec 4

  • shell JuanCF-scrcpy-mcp-7a1e1ef/src/tools/vision.ts :1 import { spawn, ChildProcess } from "child_process"
  • shell JuanCF-scrcpy-mcp-7a1e1ef/src/utils/adb.ts :1 import { execFile } from "child_process"
  • shell JuanCF-scrcpy-mcp-7a1e1ef/src/utils/mjpeg.ts :2 import { spawn } from "child_process"
  • shell JuanCF-scrcpy-mcp-7a1e1ef/src/utils/scrcpy.ts :1 import { spawn, execSync, ChildProcess } from "child_process"

network 2

  • net JuanCF-scrcpy-mcp-7a1e1ef/src/utils/mjpeg.ts :1 import http from "http"
  • net JuanCF-scrcpy-mcp-7a1e1ef/src/utils/scrcpy.ts :3 import * as net from "net"

declared dependencies 11

  • @modelcontextprotocol/sdk@^1.27.1
  • zod@^4.3.6
  • @eslint/js@^10.0.1
  • @types/node@^22
  • eslint@^10.0.2
  • tsup@^8.5.1
  • tsx@^4.21.0
  • typescript@^5.9.3
  • typescript-eslint@^8.56.1
  • vitest@^4.0.18
  • ffmpeg-static@^5.3.0