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
--listenat/mcp; the removed/sseendpoint now returns 410 with a migration note (#441) - Fix: Every
mobile_take_screenshotresult 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_commandstool 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
@reffrommobile_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_apptool (#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
@mobilenextpackages (#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 uiby default, usefullboolean 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)
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)
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_crashestool to list crash reports on a device - Server: Add
mobile_get_crashtool 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
contentspermission toread - 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_AUTHset (#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_namethrough env vars (#314) - CI: Use
npm ciinstead ofnpm installfor reproducible builds (#314) - CI: Pin mcp-publisher to version 1.5.0 (#314)
- CI: Remove
npm updatefrom tag release to preserve lockfile integrity (#314)
0.0.51 (2026-04-03)
- Server: Replace
--portwith--listenflag accepting[host:]portformat, default to localhost (#306) - Server: Add optional Bearer token auth via
MOBILEMCP_AUTHenv variable (#306) - Server: Add
MOBILEMCP_DISABLE_TELEMETRYenv 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=1is 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)
- General: upgraded mobilecli to 0.0.52, see changes (d7e25f3)
- Android: fix: include elements with resource-id or checkable attributes (#254) by @singhsume123
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)
- iOS: fixed detection of go-ios installation (#132 by @codeaholicguy
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_screenshotwhich saves the screenshot to disk, to be used by other mcp servers (#112) - Server: new tool
use_default_devicewhich 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)
- Server: New support for SSE (Server-Sent-Events) transport, see wiki for more information (1b70d40)
- iOS: Using plutil for
simctl listappsparsing, might probably fix some parsing issues (cfba3aa) - Other: We have a new Slack server, join us at http://mobilenexthq.com/join-slack
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