MCP.Market

Mobile Device MCP server

by saranshbamania·io.github.saranshbamania/mobile-device-mcp·v0.2.9·4 stars

AI control of Android/iOS devices. Screenshots, UI tree, AI vision, Flutter, video. 49 tools.

C66/100grade C
What users say
No reviews yet
Be the first
Safety scan
C66/100

full report

Adoption
New

4 stars

Reviews

Write one

Nobody has reviewed Mobile Device yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Mobile Device tools (49)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • analyze_screen

    Uses AI vision to analyze the current screen of a mobile device. Returns a structured analysis including app name, screen type, interactive elements with coordinates, visible text, and suggested next actions. This is the primary tool for understanding what is currently displayed on the device.

  • double_tap

    Perform a double tap at the given (x, y) screen coordinates. Useful for zooming into maps/images or selecting text.

  • extract_text

    Uses AI vision to extract all visible text from the current screen. Returns text in reading order (top to bottom, left to right). Useful for reading content, checking labels, or getting text that isn't in the accessibility tree.

  • fill_form

    Fill multiple form fields in a single operation. Provide a map of field descriptions to values. Each field is found by natural language description, cleared, and filled with the specified value. More efficient than calling smart_type multiple times.

  • find_element

    Uses AI vision to find a specific UI element by natural language description. Returns the element's coordinates, type, and confidence score. Use this when you need to locate a specific button, field, or other UI element. Example queries: 'the login button', 'email input field', 'the red error message'.

  • flutter_connect

    Discover and connect to a running Flutter app on the device via the Dart VM Service Protocol.

  • flutter_debug_paint

    Toggle the debug paint overlay on the Flutter app. Shows widget boundaries,

  • flutter_disconnect

    Disconnect from the currently connected Flutter app and clean up resources.

  • flutter_find_widget

    Search the widget tree for widgets matching a query. Searches by widget type name,

  • flutter_get_source_map

    Map every user-created widget to its source code location (file:line:column).

  • flutter_get_widget_details

    Get detailed information about a specific widget by its valueId (obtained from flutter_get_widget_tree).

  • flutter_get_widget_tree

    Get the widget tree from the connected Flutter app. By default returns the summary tree

  • flutter_hot_reload

    Trigger a hot reload on the connected Flutter app. Pushes code changes

  • flutter_hot_restart

    Trigger a hot restart on the connected Flutter app. Restarts the app from

  • flutter_screenshot_widget

    Take a screenshot of a specific Flutter widget by its valueId.

  • get_current_app

    Get the package name and activity name of the app that is currently in the foreground on the device. Useful for determining what the user is currently looking at.

  • get_device_info

    Get detailed information about a specific Android device, including model, manufacturer, Android version, SDK version, connection status, screen size, and whether it is an emulator.

  • get_logs

    Retrieve recent Android logcat entries from the device. You can filter by minimum log level (V=Verbose, D=Debug, I=Info, W=Warning, E=Error, F=Fatal) and/or by tag name. Returns structured JSON with timestamp, PID, TID, level, tag, and message for each entry.

  • get_recorded_actions

    View the actions recorded so far without stopping the recording.

  • get_screen_size

    Get the screen resolution of a connected Android device. Returns the width and height in pixels.

  • get_ui_elements

    Retrieve the current UI element tree from the device screen. Each element includes its index, text, content description, class name, resource ID, bounding box with center coordinates (useful for tap targets), and boolean states (clickable, scrollable, focusable, enabled, selected, checked). By default only interactive elements are returned. Set interactive_only to false to get all elements. This i

  • handle_popup

    Detects and handles system dialogs and popups (permission requests, update prompts, system alerts). Can automatically dismiss or accept the dialog. Use 'dismiss' to decline/skip, 'accept' to allow/confirm, or 'auto' to handle it automatically.

  • install_app

    Install an Android application from an APK file on the host machine. Provide the full path to the .apk file. The APK will be pushed to the device and installed.

  • ios_boot_simulator

    Boot an iOS simulator by its UDID. Get the UDID from ios_list_simulators.

  • ios_list_simulators

    List all available iOS simulators with their status (Booted/Shutdown),

  • ios_screenshot

    Take a screenshot of a running iOS simulator. Returns the image as base64.

  • ios_shutdown_simulator

    Shutdown a running iOS simulator by its UDID.

  • launch_app

    Launch an installed application by its package name (e.g. 'com.android.chrome'). The app will be started with its default/main activity. Use list_apps to discover available package names.

  • list_apps

    List all installed applications on the device. By default only user-installed (non-system) apps are returned. Set include_system to true to also include system apps. Each entry contains the package name, display name, version, and whether it is a system app.

  • list_devices

    List all connected Android devices and emulators. Returns an array of DeviceInfo objects including id, model, manufacturer, Android version, connection status, and whether the device is an emulator.

  • long_press

    Perform a long press (touch and hold) at the given (x, y) screen coordinates. Commonly used to open context menus, start drag operations, or trigger secondary actions.

  • press_key

    Press a hardware or system key on the device. Accepts friendly key names such as 'home', 'back', 'enter', 'volume_up', 'volume_down', 'power', 'tab', 'delete', 'menu', 'search', 'app_switch', 'dpad_up', 'dpad_down', 'dpad_left', 'dpad_right', 'camera', 'escape', 'space', 'media_play_pause', 'media_next', 'media_previous'. You may also pass a raw Android keycode number as a string (e.g. '3' for HOM

  • record_screen

    Start recording the device screen as MP4 video. Android has a 3-minute

  • smart_tap

    Finds a UI element by natural language description and taps it. Combines element finding and tapping into a single action. Example: smart_tap('the Sign In button') will locate the button and tap its center coordinates. Returns whether the tap succeeded and which element was tapped.

  • smart_type

    Finds an input field by natural language description, taps it to focus, and types the specified text. Example: smart_type('email field', 'user@example.com') will find the email input, tap it, and type the email address.

  • start_test_recording

    Start recording all MCP tool calls to generate a reproducible test script.

  • stop_app

    Force-stop a running application by its package name. This immediately terminates the app process. Useful for resetting app state or freeing resources.

  • stop_recording

    Stop an active screen recording and save the MP4 video.

  • stop_test_recording

    Stop recording and generate a test script from the recorded actions.

  • suggest_actions

    Uses AI to analyze the current screen and suggest a sequence of actions to achieve a specified goal. Returns step-by-step instructions with exact coordinates for each action. Example goals: 'log into the app', 'navigate to settings', 'add an item to cart'.

  • swipe

    Perform a swipe gesture from (start_x, start_y) to (end_x, end_y). Use this to scroll through lists, dismiss notifications, navigate between pages, or pull down the notification shade. A shorter duration makes the swipe faster (flick), while a longer duration makes it slower (drag).

  • take_screenshot

    Capture a screenshot of the device screen. Returns the image with metadata (width, height, file size). Supports PNG (lossless, larger) and JPEG (compressed, smaller). Use format='jpeg' with quality and max_width to reduce image size for AI analysis.

  • tap

    Perform a single tap at the given (x, y) screen coordinates. Use get_ui_elements first to find the centerX/centerY of the element you want to tap.

  • type_text

    Type text into the currently focused input field on the device. Make sure an input field is focused first (tap on it). Special characters and Unicode are supported.

  • uninstall_app

    Uninstall an application from the device by its package name. This removes the app and all its data. System apps cannot be uninstalled without root access.

  • verify_screen

    Uses AI to verify whether a specific assertion about the current screen is true. Returns a boolean result with confidence score and evidence. Example assertions: 'the login was successful', 'an error message is displayed', 'the cart has 3 items'.

  • visual_diff

    Compares the current screen with a previous screenshot to identify what changed. Provide a base64 PNG screenshot as the 'before' image — the tool captures the current screen as the 'after' image. Returns a list of changes with descriptions and regions. Useful for verifying that an action had the expected effect.

  • wait_for_element

    Waits for a specific UI element to appear on screen by polling the UI tree. More reliable and faster than wait_for_settle — returns as soon as the target element is found. Use after navigation to wait for a specific button, text, or field to appear. Example: wait_for_element('Find Routes') after selecting a station.

  • wait_for_settle

    Waits for the screen to stop changing after a navigation or action. Polls the UI tree until two consecutive snapshots are identical, indicating animations and loading have completed. Use this after tapping navigation buttons or triggering screen transitions to ensure the new screen is ready for interaction.

Public scan report

scanner v0.1.10 · 2026-09-27 · same rubric, same numbers if you re-run it

no findings
  • Code scan61 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 188 days ago4/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 66/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Mobile Device compares

Against every graded Media MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
66/100
higher than 23% of 1,337 Media servers
Tools
49
the typical Media server has 7
Tools that change things
0%
typical: 4%. Fewer write tools means less an agent can break
GitHub stars
4
more than 80% of 715 Media servers

What its tools let an agent do: 44 read · 5 run or deploy

Install Mobile Device in Claude Code, Cursor or VS Code

Runs npx -y mobile-device-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add mobile-device-mcp -- npx -y mobile-device-mcp
Add to Cursor

Mobile Device: common questions

Is Mobile Device MCP server safe?
With care: it is graded C, so read the findings first (66/100). Read the Mobile Device safety report
How do I install Mobile Device?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Mobile Device need an API key?
Yes. The registry entry asks for GOOGLE_API_KEY, MOBILE_MCP_LICENSE_KEY.
Is Mobile Device maintained?
The last commit was 226 days ago (2026-03-23). The latest release is v0.2.9.
What can I use instead of Mobile Device?
Servers from other publishers that do the same job: Macos MCP server, Urlbox MCP server and Katto MCP server.
How does Mobile Device compare with other Media MCP servers?
safety score 66/100 (higher than 23% of 1,337 Media servers); tools 49 (the typical Media server has 7); tools that change things 0% (typical: 4%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Mobile Device

Same job from other publishers: the closest match first, then the best rated.

  • Macos
    Control macOS settings, apps, windows, audio, Music, displays, screenshots, and Focus mode via MCP.
    A
  • Urlbox
    Screenshots, PDFs, video, markdown and page data from any website, via Urlbox.
    A
  • Katto
    AI video clipping MCP: long videos and podcasts into scored, captioned 9:16 shorts.
    B
  • Remove AI Watermarks
    Identify and remove AI watermarks and provenance metadata from your own images and video.
    A
  • Openshorts
    Turn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube.
    A