Skip to content
Agentmart
Submit a tool

Mobile Device MCP

AI control of Android/iOS devices.

Connector by saranshbamania · GitHub account verified by the MCP Registry

IndexedLicense unknownLocal (stdio)★ 4
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/saranshbamania-mobile-device-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

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

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
24 read · 18 write · 1 delete · 6 not yet classified
Secrets
2 (API keys, tokens or passwords)
Install scripts
Not scanned yet
Runs as
Node.js package

Tools by what they do 49

Read from the source code; the running server may list different tools.

Read 24 · Look things up without changing anything.

  • analyze_screen
  • extract_text
  • find_element
  • flutter_connect
  • flutter_find_widget
  • flutter_get_source_map
  • flutter_get_widget_details
  • flutter_get_widget_tree
  • flutter_screenshot_widget
  • get_current_app
  • get_device_info
  • get_logs
Show 12 more tools
  • get_recorded_actions
  • get_screen_size
  • get_ui_elements
  • handle_popup
  • ios_list_simulators
  • ios_screenshot
  • list_apps
  • list_devices
  • suggest_actions
  • take_screenshot
  • verify_screen
  • visual_diff

Write 18 · Create, change, send or run things.

  • double_tap
  • fill_form
  • flutter_debug_paint
  • flutter_hot_reload
  • flutter_hot_restart
  • install_app
  • long_press
  • press_key
  • record_screen
  • smart_tap
  • smart_type
  • start_test_recording
Show 6 more tools
  • stop_app
  • stop_recording
  • stop_test_recording
  • swipe
  • tap
  • type_text

Delete 1 · Delete, drop, revoke or wipe things.

  • uninstall_app

Not yet classified 6 · We could not tell from the name and description.

  • flutter_disconnect
  • ios_boot_simulator
  • ios_shutdown_simulator
  • launch_app
  • wait_for_element
  • wait_for_settle

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • GOOGLE_API_KEY
  • MOBILE_MCP_LICENSE_KEY

Other settings (environment variables or headers).

  • MCP_ADB_PATH
  • MCP_DEFAULT_DEVICE

Tools (49)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • analyze_screenAnalyze Screen (AI)

    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_tapDouble Tap

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

  • extract_textExtract Text from Screen (AI)

    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_formFill 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_elementFind Element by Description (AI)

    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_connectConnect to Flutter App

    Discover and connect to a running Flutter app on the device via the Dart VM Service Protocol. The app must be running in debug or profile mode. Returns connection details including the isolate ID and app name. Call this before using other flutter_* tools. Optionally pass vm_service_url from 'flutter run' output if auto-discovery fails.

  • flutter_debug_paintToggle Flutter Debug Paint

    Toggle the debug paint overlay on the Flutter app. Shows widget boundaries, padding, alignment guides, and construction lines. Useful for debugging layout issues.

  • flutter_disconnectDisconnect from Flutter App

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

  • flutter_find_widgetFind Flutter Widget

    Search the widget tree for widgets matching a query. Searches by widget type name, description, and text content. Example queries: 'ElevatedButton', 'Text', 'AppBar', 'Login'. Returns matching widgets with their source locations.

  • flutter_get_source_mapGet Flutter Source Map

    Map every user-created widget to its source code location (file:line:column). This is the key tool for connecting what you see on screen to where it is in code. Returns a list of {widget, file, line, column} entries.

  • flutter_get_widget_detailsGet Flutter Widget Details

    Get detailed information about a specific widget by its valueId (obtained from flutter_get_widget_tree). Returns properties, children, render bounds, and source location.

  • flutter_get_widget_treeGet Flutter Widget Tree

    Get the widget tree from the connected Flutter app. By default returns the summary tree (user-created widgets only), which maps directly to your source code. Each widget includes its type, properties, source code location (file:line), and children. Call flutter_connect first.

  • flutter_hot_reloadFlutter Hot Reload

    Trigger a hot reload on the connected Flutter app. Pushes code changes without losing app state — variables, navigation stack, and scroll positions are preserved. Much faster than a full restart. Call flutter_connect first.

  • flutter_hot_restartFlutter Hot Restart

    Trigger a hot restart on the connected Flutter app. Restarts the app from scratch, losing all state, but applies all code changes including static field initializers and global variables. Use when hot reload is insufficient. Call flutter_connect first.

  • flutter_screenshot_widgetScreenshot Flutter Widget

    Take a screenshot of a specific Flutter widget by its valueId. Returns the widget rendered in isolation as a PNG image.

Show 34 more tools
  • get_current_appGet 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_infoGet 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_logsGet 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_actionsGet Recorded Actions

    View the actions recorded so far without stopping the recording. Useful for inspecting what has been captured.

  • get_screen_sizeGet Screen Size

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

  • get_ui_elementsGet 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 is the primary tool for understanding what is on screen and deciding where to tap.

  • handle_popupHandle Popup / Dismiss Dialog

    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_appInstall 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_simulatorBoot iOS Simulator

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

  • ios_list_simulatorsList iOS Simulators

    List all available iOS simulators with their status (Booted/Shutdown), UDID, name, and iOS version. Works on macOS only.

  • ios_screenshotiOS Simulator Screenshot

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

  • ios_shutdown_simulatorShutdown iOS Simulator

    Shutdown a running iOS simulator by its UDID.

  • launch_appLaunch 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_appsList 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_devicesList 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_pressLong 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_keyPress 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 HOME).

  • record_screenRecord Device Screen

    Start recording the device screen as MP4 video. Android has a 3-minute maximum per recording. Only one recording per device at a time. Call stop_recording to finish and save the video.

  • smart_tapSmart Tap (AI)

    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_typeSmart Type (AI)

    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_recordingStart Test Recording

    Start recording all MCP tool calls to generate a reproducible test script. All subsequent tool calls will be logged until stop_test_recording is called.

  • stop_appStop 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_recordingStop Screen Recording

    Stop an active screen recording and save the MP4 video. Optionally pull the recording file from the device to the host machine.

  • stop_test_recordingStop Test Recording

    Stop recording and generate a test script from the recorded actions. Supports TypeScript, Python, and JSON output formats.

  • suggest_actionsSuggest Actions for Goal (AI)

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

  • swipeSwipe

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

  • tapTap

    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_textType 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_appUninstall 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_screenVerify Screen State (AI)

    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_diffVisual Diff (AI)

    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_elementWait for Element to Appear

    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_settleWait for Screen to 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.

Signals

Stars
4
Forks
0
Open issues
0
Last commit
Mar 23, 2026 (7 months ago)
Last release
Mar 23, 2026 (7 months ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.saranshbamania/mobile-device-mcp
Version
0.2.9
Auth
API key
Packages
npm mobile-device-mcp
License
License unknown
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

Mobile Device MCP. Agent Mart. https://agentmart.dev/connectors/saranshbamania-mobile-device-mcp (last updated 2026-10-24)