Skip to content

neko-jpg/mobile-mcp

unversioned · 4b5e8e310d4aApache-2.0

Mobile automation for AI agents: control Android and iOS devices, emulators and simulators — launch apps, tap, swipe, type, take screenshots, read the accessibility tree.

1.0.4 (2026-09-13)

  • Feat: Serve Streamable HTTP on --listen at /mcp; the removed /sse endpoint now returns 410 with a migration note (#441)
  • Fix: Every mobile_take_screenshot result now states how to convert positions in the screenshot into screen coordinates, so taps derived from downscaled screenshots land where intended (#440, closes #29, #163)

1.0.3 (2026-09-08)

  • Feat: Add mobile_batch_commands tool to run several tools in one call for major performance boost (#427)
  • Feat: Request to list elements (refresh) after commands end, to sync state (#427)
  • Feat: Click on element by @ref from mobile_list_elements_on_screen (#429)
  • Feat: Text format for mobile_list_elements_on_screen, now the default, ~5x smaller than json (#431)
  • Feat: Add geo location, clipboard and device logs tools (#423)
  • Feat: Add mobile_get_foreground_app tool (#420)
  • Feat: Scale screenshots natively via mobilecli, drop sips/imagemagick (#418)
  • Feat: Agent Plugin packaging, mobile-automation skill, MCPB bundle and Smithery CI (#416, #415)
  • Feat: Run device commands through a background daemon over a unix socket for a major performance boost (mobilecli#384)
  • Feat: Dump Flutter UI via the Dart VM service with semantics and element types (mobilecli#365, mobilecli#389)
  • Perf: Cache Robot per device id (#430)
  • Fix: Keep ref, selected, checked and enabled on screen elements (#421)
  • Fix: Validate install path, coordinates and mobilecli JSON output (#425)
  • Fix: Resolve mobilecli binary from scoped @mobilenext packages (#419)
  • Chore: Correct destructive/readOnly tool annotation hints (#408)
  • Docs: Translate README to Japanese and Simplified Chinese (#426)
  • Chore: Upgrade bundled mobilecli from 1.0.0 to 1.0.9 (#417, #428)
  • Feat: Per-platform npm packages, npm now downloads only the binary for the current platform (mobilecli#134)
  • Feat: On-screen keyboard excluded from dump ui by default, use full boolean to include it (mobilecli#398)
  • Fix(iOS): Don't fail device listing when one device is untrusted (mobilecli#373)
  • Feat(Android): Device Kit agent is now embedded, no APK install required (mobilecli#387)
  • Perf(Android): Faster screenshots and view tree snapshots via on-device agent (mobilecli#368)

1.0.2 (2026-08-09)

  • Fix: Round coordinates before passing them to mobilecli (#403), thanks to @a1573595
  • Fix(android): Recurse into mobilecli children when listing UI elements (#406)

1.0.1 (2026-08-06)

  • Feat(cloud): Improve remote device MCP tools and add Mobile Next Cloud logi (#398)

1.0.0 (2026-08-02)

BREAKING CHANGE Starting from version 1.0.0, mobilecli is used as the backend, instead of the old typescript code. If you see any regression, please let us know immediately through a github issue (https://github.com/mobile-next/mobile-mcp/issues) You can use environment variable MOBILEMCP_LEGACY_ROBOT to force old implementation. Legacy code will be removed 1 month from this notice.

  • Feat: Route devices through mobilecli by default (#396)

0.0.62 (2026-07-11)

  • iOS: Support "-" (hyphen) in iOS bundle identifier (#377), thanks to @TsurP
  • Fix: Properly resolve symlinks for paths allowlist (#377), thanks to @TsurP
  • Fix: Node v20 is required (#375)
  • Android: Get screen density of Android devices (#162), thanks to @hiking93
  • Docs: Revamp README and add ROADMAP.md (#378)
  • Chore: Bump mobilewright to 0.0.48 (#373)

0.0.61 (2026-07-02)

  • Fix: Catch system signals for clean v8 exit (#366)
  • Fix: Detect go-ios installed via npm (bare semver version) (#355), thanks to @ravijagga
  • Docs: Added CONTRIBUTING.md (#365)
  • Chore: Updated hono packages for security (#367)

0.0.60 (2026-06-15)

  • Chore: Updated mobilewright SDK version (#361)

0.0.59 (2026-06-09)

  • Chore: Updated hono packages for security (#349)
  • Chore: Updated mobilewright SDK version (#350)

0.0.58 (2026-06-02)

  • Fix: Understand getRobot device types and platforms (#346)
  • Chore: Moved tests from mocha/nyc to playwright to reduce dependency vulnerabilities (#347)

0.0.57 (2026-05-28)

  • Chore: Update mobilewright to 0.0.41 (#341)

0.0.56 (2026-05-17)

  • Chore: Update mobilewright to 0.0.38 (#338)
  • Fix: Restore mcp-publisher functionality (#337)

0.0.55 (2026-05-16)

  • General: Replace mobilecli with mobilewright SDK (#334)
  • General: Bump fast-xml-parser to 5.8.0 to fix security vulnerability (#335)

0.0.54 (2026-05-04)

  • Server: Update mobilecli to 0.3.70
  • iOS: Fixed cases where testmanagerd would get Device Kit stuck in a black screen of death
  • iOS: Added 'placeholder' to view tree response

0.0.53 (2026-05-01)

  • Server: Add mobile_list_crashes tool to list crash reports on a device
  • Server: Add mobile_get_crash tool to retrieve full crash report content
  • Server: Upgrade mobilecli from 0.2.0 to 0.3.68
  • iOS: Replaced use of WebdriverAgent with iOS Device Kit (open source, apache license)
  • CI: Restrict contents permission to read
  • CI: Remove Java setup step from build workflow

0.0.52 (2026-04-13)

  • Server: Block cross-origin requests on SSE transport (#311)
  • Server: Warn when SSE server starts without MOBILEMCP_AUTH set (#311)
  • Server: Reject concurrent SSE connections instead of silently replacing them (#311)
  • Server: Clear SSE transport on connection close to allow reconnection (#311)
  • Server: Update mobilecli dependency from @mobilenext/mobilecli to mobilecli 0.2.0 (#316)
  • CI: Fix script injection by passing github.ref_name through env vars (#314)
  • CI: Use npm ci instead of npm install for reproducible builds (#314)
  • CI: Pin mcp-publisher to version 1.5.0 (#314)
  • CI: Remove npm update from tag release to preserve lockfile integrity (#314)

0.0.51 (2026-04-03)

  • Server: Replace --port with --listen flag accepting [host:]port format, default to localhost (#306)
  • Server: Add optional Bearer token auth via MOBILEMCP_AUTH env variable (#306)
  • Server: Add MOBILEMCP_DISABLE_TELEMETRY env variable to opt out of anonymous telemetry (#305)
  • Server: Security update for path-to-regexp package (#307)

0.0.50 (2026-03-27)

  • Server: Restrict open_url tool to http/https schemes unless MOBILEMCP_ALLOW_UNSAFE_URLS=1 is set (#299) thanks to @manthanghasadiya for reporting this.

0.0.49 (2026-03-24)

  • Server: Fix path traversal in save screenshot and record video (#296) thanks to @AbhiTheModder for reporting this.

0.0.48 (2026-03-20)

  • Server: Security updates for fast-xml-parser (#292)
  • Server: Fix handling errors in getDeviceType to prevent empty device list (#286) thanks to @ls-andy

0.0.47 (2026-03-09)

  • Server: Use zod coerce to fix number parameter parsing (#284)
  • Server: Updated packages for security (#285)
  • iOS: Support locales when launching apps (#283)
  • Android: Support locales when launching apps (#283)

0.0.46 (2026-03-03)

  • Server: Improved tool description for listing devices, easier on prompting (#282)
  • iOS: Added support for screen recording for both real devices and simulators (#282)
  • Android: Added support for screen recording for both real devices and emulators (#282)

0.0.45 (2026-03-02)

  • Server: Updated fast-xml-parser package for security (#281)
  • Server: Fix noParams issue that started annoying Claude Code recently (#280)
  • Android: Fix shell escaping through launchApp (#279) thanks to @yuhanghuang
  • Android: Escape url when calling openUrl (#278) thanks to yuhanghuang

0.0.44 (2026-02-25)

  • General: Rolling out support for remote devices, allocate Android and iOS devices on Mobile Fleet (#273)

0.0.43 (2026-02-24)

  • General: Increase buffers used for screenshots, fixes bugs where screenshot was >4MB (#270)
  • General: Upgraded several npm packages for security (#272)

0.0.42 (2026-02-03)

  • General: Upgraded mobilecli to 0.0.54, see changes (ba3ec1b)
  • General: Updated fast-xml-parser package for security (#261)

0.0.41 (2026-01-27)

0.0.40 (2026-01-15)

  • Server: bump @modelcontextprotocol/sdk from 1.24.2 to 1.25.2 for security (#252)

0.0.39 (2026-01-01)

  • Server: added tool annotations for improved LLM tool understanding (#246)
  • iOS: added 'duration' parameter to longpress for custom press durations (#247)
  • Android: added 'duration' parameter to longpress for custom press durations (#247)

0.0.38 (2025-12-09)

  • iOS: migrated iPhone Simulator calls to use mobilecli binary for improved performance (#241)
  • iOS: automatically downloading and installing Webdriver Agent on simulator, get started in iOS development in seconds (#241)

0.0.37 (2025-12-08)

  • Server: migrated to new mcp sdk tool registration API (#239)
  • Server: updated to @modelcontextprotocol/sdk 1.24.2 and other dependencies for security (#239)

0.0.36 (2025-11-19)

  • Server: upgraded libraries (glob, js-yaml) and mobilecli (#234)

0.0.35 (2025-11-14)

  • Server: added list of available MCP tools to README for better discoverability (043cf3d)
  • Android: fixed adb path resolution on Windows by always using .exe extension (178b2fb) by @mattheww-skyward

0.0.34 (2025-11-01)

  • Server: dry-run release for benchmarking how mobilecli detects devices (#226)

0.0.33 (2025-10-20)

  • Server: added debug information for understanding screenshot issues on old devices (#213)

0.0.32 (2025-10-08)

  • Server: fixed wrong separator when listing iOS simulators (#208)
  • iOS: double tap at screen location (#207)
  • Android: reduce stdout pollution by adb shell monkey (#211)
  • Android: fix mobile_take_screenshot on very old android devices (#204) by @boulaycote
  • Android: double tap at screen location (#194) by @SakshamSahgal

0.0.31 (2025-10-07)

  • Server: resolve mobilecli libc issues on very old linux distros (#206)
  • Server: identify mcp-client for compatiblity patches (#205)

0.0.30 (2025-10-06)

  • Server: introduction of mobilecli tool, will replace imagemagick, sips, go-ios and adb in the future (#196)
  • iOS: app installation and uninstallation (#202)
  • Android: app installation and uninstallation (#202)

0.0.29 (2025-09-26)

  • Server: bumped mcp sdk to latest version (#199)
  • Server: locked production npm packages to specific version (#199)
  • Server: renamed tool 'swipe_on_screen' to 'mobile_swipe_on_screen' (#197)

0.0.28 (2025-09-15)

  • Server: added 'device' parameter to all tools (#181)
  • Server: enable agents to access multiple devices at once (eg, 'explain what's on screen on all devices connected') (#181)

0.0.27 (2025-09-10)

  • Server: use 'sips' image scaling on mac if found, removes requirement to install ImageMagick for image scaling (#188)

0.0.26 (2025-09-09)

  • Server: support listing of mobile-mcp in github's mcp registry (e96404e)

0.0.25 (2025-09-08)

  • Server: install mobile-mcp in vscode with a single-click in README (#173)
  • Android: try finding 'adb' under $HOME/Library/Android if $ANDROID_HOME is not defined (#183)
  • Android: better escaping of text input, for improved security (#182)

0.0.24 (2025-08-24)

  • iOS: new tool for long press (#143)
  • Android: new tool for long press (#143)
  • Android: fixed screenshot from devices with multiple devices (foldables) again (#171)

0.0.23 (2025-07-31)

  • Android: fixed a bug where devices with multiple screens (such as foldables) failed to take and save screenshot (#159)

0.0.22 (2025-07-17)

0.0.21 (2025-06-27)

  • Server: use node: prefixed modules (like node:fs) (449c498)
  • iOS: automatically start WebDriverAgent on simulator if already installed (#126)
  • Android: fixed detection of com.mobilenext.devicekit when running mcp on windows (c11c642)

0.0.20 (2025-06-23)

  • Server: new tool save_screenshot which saves the screenshot to disk, to be used by other mcp servers (#112)
  • Server: new tool use_default_device which picks the only device that is connected, to speed up use (#112)
  • iOS: Use wda to grab screenshots for both real devices and simulators (#115)
  • Android: Support for utf-8 text in sendKeys, see wiki page for getting started (#117)

0.0.19 (2025-06-16)

  • Server: Fixed support for Windsurf, where some tools caused a -32602 error (#101) by @amebahead
  • iOS: Support for swipe left and right. Support x,y,direction,duration for custom swipes (#92) by @benlmyers
  • Android: Support for swipe left and right. Support x,y,direction,duration for custom swipes (#92) by @benlmyers
  • Android: Fix for get elements on screen, where uiautomator prints out warnings before the actual xml (#86) by @wenerme

0.0.18 (2025-06-12)

0.0.17 (2025-05-16)

  • iOS: Fixed parsing of simctl listapps where CFBundleDisplayName contains non-alphanumerical characters (#59) (bf19771d)

0.0.16 (2025-05-10)

  • Server: Detect if there is a new version of the mcp and notify user (14b015f)
  • Server: Instead of returning x,y for tap, return [top,left,width,height] of elements on screen (3169d2f)
  • iOS: Fixed coordinates location for iOS with retina display after image scaledown (3169d2f)
  • iOS: Added detection of StaticText and Image in mobile_list_elements_on_screen (debe75b)

0.0.15 (2025-05-04)

  • Android: Fixed broken Android screenshots on Windows because of crlf (#53 by @hanyuan97)

0.0.14 (2025-05-02)

  • Server: Fix a bug where xcrun was required, now works on Linux as well (7fddba7)
  • Server: Removed dependency on sharp which was causing issues during installation, now ImageMagick is an optional dependency
  • Android: Try uiautomator-dump multiple times, in case ui hierarchy is not stable
  • Android: Return more information about elements on screen for better element detection
  • Android: Support for Android TV using dpad for navigation (399443d by @surajsau)

0.0.13 (2025-04-17)

  • Server: Fix a bug where 'adb' is required to even work with iOS-only (#30) (867f662)
  • iOS: Support for orientation changes (844dc0e)
  • Android: Support for orientation changes (eg 'change device to landscape') (844dc0e)
  • Android: Improve element detection by using element name if label not found (8e8aadf by @tomoya0x00)

0.0.12 (2025-04-12)

  • Server: If hitting an error with tunnel, forward proxy, wda, descriptive error and link to documentation will be returned
  • iOS: go-ios path can be set in env GO_IOS_PATH
  • iOS: Support go-ios that was built locally (no version)
  • iOS: Return bundle display name for apps for better app launch
  • iOS: Fixed finding element coordinates on retina displays
  • iOS: Saving temporary screenshots onto temporary directory (#19)
  • iOS: Find elements better by removing off-screen and hidden elements
  • Android: Support for 'adb' under ANDROID_HOME
  • Android: Find elements better using accessibility hints and class names

0.0.11 (2025-04-06)

  • Server: Support submit after sending text (\n)
  • Server: Added support for multiple devices at the same time
  • iOS: Support for iOS physical devices using go-ios (see wiki)
  • iOS: Added support for icons, search fields, and switches when getting elements on screen