Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.mobile-next/mobile-mcp

NPM · @MOBILENEXT/MOBILE-MCP

MCP server for iOS and Android Mobile Development, Automation and Testing

+5 this week 94 Trust /100

Last scanned (4 hours ago)

Scores higher than 97% of npm servers

Category Testing and QA

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security99
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 30 of 129 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to mobile-next/mobile-mcp). View diagnostics → Pass
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 2 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability72
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4607 tokens (~131/item across 35 items; 35 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management98
  • Stability check failed: the tool surface changed between 1.0.7 and 1.0.16: 0 tool removals, 1 breaking changes, 2 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 36 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
  • 2 Nov 26 −15
    • Malware scan: pass → unverified ▼ security
    • Package version: 1.0.15 → 1.0.16 functional
  • 31 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 30 Oct 26 −10
    • Malware scan: pass → unverified ▼ security
    • CVE-2026-118663 no longer affects this package ▲ security
    • GHSA-f897-62hf-6gxq no longer affects this package ▲ security
    • Known CVEs: fail → pass ▲ security
    • Package version: 1.0.14 → 1.0.15 functional
  • 29 Oct 26 0
    • CVE-2026-118663 affects this package: high ▼ security
  • 28 Oct 26 −5
    • GHSA-f897-62hf-6gxq affects this package: high ▼ security
    • Known CVEs: pass → fail ▼ security
  • 27 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 26 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
    • Package version: 1.0.13 → 1.0.14 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/@mobilenext/mobile-mcp@1.0.16

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo mobile-next/mobile-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/mobile-next/mobile-mcp/.github/workflows/build.yml@refs/tags/1.0.16
Rekor log index 3643705905
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:efa49ad00999b829a264d1d26c4bb07450fcbf4784da36f17fba2a57840f82b8c858a992177af22fdf61aeaa0e059300977aab99734d9d90403261350

Background: How many MCP packages publish verified provenance →

Dependencies 129 packages
Packages resolved 129
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 35 exposed · ~4,367 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
get_more_tools ~104

Only call this when none of the other tools can do what you need on a mobile device, or for mobile testing or mobile app development. Do not call it for tasks unrelated to mobile, or when another tool already covers the task. The context is sent to the mobile-mcp developers, so never include PII, secrets, credentials or other private information in it.

NameTypeReqDescription
contextstringyesA description of your goal and what kind of tool would help accomplish it.

No output schema declared.

No examples provided.

mobile_allocate_remote_device ~384

Reserve a physical device from the remote cloud fleet for exclusive use, returning a device identifier usable with the other mobile_* tools. Unlike local devices, a remote device is a shared and billed resource borrowed for the session - never call this silently. If no local device is available, offer a remote device to the user and call this only after they agree. Requires mobile_login_to_cloud_provider to have been called first; if this fails with an authentication error, call that tool then retry. Use mobile_list_remote_devices first to see which names and versions actually exist in the fleet before filtering by them. Release the device with mobile_release_remote_device once the whole task is finished - releasing wipes the device's state, so do not release and reallocate between steps of the same task just to be tidy.

NameTypeReqDescription
namestring–Filter by device name/model. Supports a trailing * for prefix match (e.g. "iPhone*"), or an exact name (e.g. "iPhone 16").
platformstringyesThe platform to allocate a device for
timeoutSecondsinteger–Seconds to wait for allocation when wait is true. Defaults to 900 (15 minutes). Only relevant when wait is true.
typestring–Device type filter. Currently only "real" (physical devices) is supported by the fleet.
versionarray–Filter by OS version. Supports comparison prefixes >=, >, <=, < (e.g. ">=18"), or an exact version (e.g. "18.6.2"). Multiple values are ANDed together.
waitboolean–If true, block until the device has finished allocating and is ready to use, up to timeoutSeconds. If false/omitted, this returns as soon as the reservation is made, but the device may not be immedia…

No output schema declared.

No examples provided.

mobile_batch_commands ~317

Run multiple tools in sequence in a single call, e.g. click, type, click, type. Use this to fill forms or perform multi-step flows without round-trips. The device argument is applied to every step unless a step provides its own. Tools allowed as steps: get_more_tools, mobile_list_available_devices, mobile_login_to_cloud_provider, mobile_list_remote_devices, mobile_allocate_remote_device, mobile_release_remote_device, mobile_list_apps, mobile_get_foreground_app, mobile_launch_app, mobile_terminate_app, mobile_clear_app_data, mobile_install_app, mobile_uninstall_app, mobile_get_screen_size, mobile_click_on_screen_at_coordinates, mobile_double_tap_on_screen, mobile_long_press_on_screen_at_coordinates, mobile_list_elements_on_screen, mobile_press_button, mobile_open_url, mobile_swipe_on_screen, mobile_type_keys, mobile_save_screenshot, mobile_set_orientation, mobile_fold_device, mobile_set_location, mobile_clipboard, mobile_get_device_logs, mobile_get_orientation, mobile_start_screen_recording, mobile_stop_screen_recording, mobile_list_crashes, mobile_get_crash.

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
listElementsAtEndboolean–Run mobile_list_elements_on_screen after the last step and include its result. Defaults to false
stepsarrayyesTools to run, in order
stopOnErrorboolean–Stop at the first failing step. Defaults to true

No output schema declared.

No examples provided.

mobile_clear_app_data ~120

Clear an app's data, such as its cache, documents, preferences and databases, and stop the app, so the next launch starts as if freshly installed. The app stays installed. Supported on Android devices and emulators and on iOS simulators, not on real iOS devices.

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
packageNamestringyesThe package name (Android) or bundle id (iOS) of the app to clear

No output schema declared.

No examples provided.

mobile_click_on_screen_at_coordinates ~157

Click on the screen, either at x,y coordinates or on an element by its ref (e.g. "@e5") from the latest mobile_list_elements_on_screen result. Prefer ref when the element is listed.

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
refstring–Element ref from mobile_list_elements_on_screen, e.g. "@e5". Takes precedence over x,y
xnumber–The x coordinate to click on the screen, in pixels. Required unless ref is given
ynumber–The y coordinate to click on the screen, in pixels. Required unless ref is given

No output schema declared.

No examples provided.

mobile_clipboard ~78

Read or replace the device clipboard. Pass text to set the clipboard, omit it to read the current clipboard.

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
textstring–Text to place on the clipboard. Omit to read the clipboard instead.

No output schema declared.

No examples provided.

mobile_double_tap_on_screen ~157

Double-tap on the screen, either at x,y coordinates or on an element by its ref (e.g. "@e5") from the latest mobile_list_elements_on_screen result. Prefer ref when the element is listed.

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
refstring–Element ref from mobile_list_elements_on_screen, e.g. "@e5". Takes precedence over x,y
xnumber–The x coordinate to double-tap, in pixels. Required unless ref is given
ynumber–The y coordinate to double-tap, in pixels. Required unless ref is given

No output schema declared.

No examples provided.

mobile_fold_device ~133

Fold or unfold a foldable device, such as iPhone Duo simulators and foldable Android emulators. Provide either posture or angle.

NameTypeReqDescription
anglenumber–The desired hinge angle in degrees, between 0 (folded) and 180 (open). iOS only, e.g. iPhone Duo. Use instead of posture.
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
posturestring–The desired hinge posture: folded (0 degrees), half-open (90 degrees) or open (180 degrees)

No output schema declared.

No examples provided.

mobile_get_crash ~72

Get the full content of a crash report by its ID. Use mobile_list_crashes to find available crash IDs.

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
idstringyesThe crash report ID to retrieve

No output schema declared.

No examples provided.

mobile_get_device_logs ~263

Collect live device logs (logcat on Android, unified log on iOS) as one JSON object per line. Only logs emitted after the call starts are captured, so trigger the behavior you want to observe right before or during the call. Stops after `limit` entries or after 30 seconds of silence. Each line of a stack trace counts as one entry, so filter by process or tag to avoid filling the limit with noise. Start with a small limit (20-50) for a quick look. For large captures, pass `saveTo` to write logs to a file and only the entry count is returned.

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
filterarray–Filters, ANDed together. key=value includes, key!=value excludes. Keys: pid, process, tag, level, subsystem, category, message. Example: ["tag=ActivityManager", "level=Error", "process!=SpringBoard"]
limitinteger–Stop after this many log entries
saveTostring–Path to write the logs to instead of returning them. Filename must end with .log, .txt, or .jsonl

No output schema declared.

No examples provided.

mobile_get_foreground_app ~81

Get the app currently in the foreground on the device, including the focused activity class on Android or view controller class on iOS when available. Use this to verify which app or screen you are on before interacting with it.

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.

No output schema declared.

No examples provided.

mobile_get_orientation ~44

Get the current screen orientation of the device

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.

No output schema declared.

No examples provided.

mobile_get_screen_size ~47

Get the screen size of the mobile device in pixels

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.

No output schema declared.

No examples provided.

mobile_install_app ~93

Install an app on mobile device

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
pathstringyesThe path to the app file to install. For iOS simulators, provide a .zip file or a .app directory. For Android provide an .apk file. For iOS real devices provide an .ipa file

No output schema declared.

No examples provided.

mobile_launch_app ~112

Launch an app on mobile device. Use this to open a specific app. You can find the package name of the app by calling mobile_list_apps.

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
localestring–Comma-separated BCP 47 locale tags to launch the app with (e.g., fr-FR,en-GB)
packageNamestringyesThe package name of the app to launch

No output schema declared.

No examples provided.

mobile_list_apps ~44

List all the installed apps on the device

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.

No output schema declared.

No examples provided.

mobile_list_available_devices ~72

List all available devices. This includes both physical mobile devices and mobile simulators and emulators. It returns both Android and iOS devices. These are local devices already connected to this machine, ready to use immediately at no cost - for devices from the shared remote cloud fleet, use mobile_list_remote_devices instead.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mobile_list_crashes ~44

List crash reports available on the device

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.

No output schema declared.

No examples provided.

mobile_list_elements_on_screen ~165

List elements on screen with their ref, coordinates, and display text or accessibility label. Use the ref with mobile_click_on_screen_at_coordinates, mobile_double_tap_on_screen or mobile_long_press_on_screen_at_coordinates. Refs and coordinates stay valid as long as the screen does not change; re-list only after navigation or a layout change.

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
formatstring–Output format. "text" (default) is one compact line per element, "json" is a json array, "raw" is the unfiltered platform-specific hierarchy as JSON (mobilecli only). Raw nodes may be offscreen and d…

No output schema declared.

No examples provided.

mobile_list_remote_devices ~126

List the catalog of device models (make, platform, OS version) available to reserve from the remote cloud device fleet. This is different from mobile_list_available_devices, which lists real devices and simulators/emulators already connected to this local machine and ready to use immediately at no cost. Remote devices live in a shared cloud fleet: they are not usable until reserved with mobile_allocate_remote_device, and reserving one may be a limited/billed resource. Requires mobile_login_to_cloud_provider to have been called first; if this fails with an authentication error, call that tool then retry.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mobile_login_to_cloud_provider ~178

Start authenticating this machine with the remote device cloud provider. This is required once before mobile_list_remote_devices or mobile_allocate_remote_device will work; if either of those fails with an authentication error, call this tool and then retry. This starts a browser-based device-code login and returns quickly with a URL and a one-time code - it does NOT wait for the login to complete. Show the URL and code to the user verbatim and ask them to open the URL and enter the code in their own browser. The login keeps running in the background after this tool returns; once the user confirms they've completed it, retry the remote devices tool that originally failed. Only call this after the user has asked for, or agreed to, remote/cloud devices - never call it speculatively, since it interrupts the user to act in their browser.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mobile_long_press_on_screen_at_coordinates ~181

Long press on the screen, either at x,y coordinates or on an element by its ref (e.g. "@e5") from the latest mobile_list_elements_on_screen result. Prefer ref when the element is listed.

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
durationnumber–Duration of the long press in milliseconds. Defaults to 500ms.
refstring–Element ref from mobile_list_elements_on_screen, e.g. "@e5". Takes precedence over x,y
xnumber–The x coordinate to long press on the screen, in pixels. Required unless ref is given
ynumber–The y coordinate to long press on the screen, in pixels. Required unless ref is given

No output schema declared.

No examples provided.

mobile_open_url ~97

Open an http:// or https:// URL in the browser on device. Other URL schemes, such as app deep links, are rejected unless the server was started with MOBILEMCP_ALLOW_UNSAFE_URLS=1.

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
urlstringyesThe URL to open, starting with http:// or https://

No output schema declared.

No examples provided.

mobile_press_button ~160

Press a button on device

NameTypeReqDescription
buttonstringyesThe button to press, in upper case. Supported buttons: Android: HOME, BACK, VOLUME_UP, VOLUME_DOWN, ENTER, BACKSPACE, APP_SWITCH, POWER, DPAD_CENTER, DPAD_UP, DPAD_DOWN, DPAD_LEFT, DPAD_RIGHT iOS: HO…
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.

No output schema declared.

No examples provided.

mobile_release_remote_device ~128

Release a device previously reserved with mobile_allocate_remote_device back to the remote cloud fleet so it becomes available to others. Releasing is destructive to the device's state: apps installed, files pushed, and any other changes made during this session are lost, and a later mobile_allocate_remote_device call may take time and could return a different physical unit. Only release once the whole task is finished - if there is more work to do on the same device shortly, keep holding it rather than releasing and reallocating.

NameTypeReqDescription
devicestringyesThe device identifier to release back to the remote fleet

No output schema declared.

No examples provided.

mobile_save_screenshot ~125

Save a screenshot of the mobile device to a file

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
maxSizeinteger–Maximum width/height in pixels, keeping aspect ratio. Omit for full size.
saveTostringyesThe path to save the screenshot to. Filename must end with .png, .jpg, or .jpeg
scalenumber–Scale factor (0.0-1.0). Ignored if maxSize is provided.

No output schema declared.

No examples provided.

mobile_set_location ~122

Override the GPS location reported by the device, or clear the override to restore the real location. Omit latitude and longitude to clear.

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
latitudenumber–Latitude in decimal degrees, e.g. 37.7749. Omit together with longitude to clear the override.
longitudenumber–Longitude in decimal degrees, e.g. -122.4194. Omit together with latitude to clear the override.

No output schema declared.

No examples provided.

mobile_set_orientation ~53

Change the screen orientation of the device

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
orientationstringyesThe desired orientation

No output schema declared.

No examples provided.

mobile_start_screen_recording ~127

Start recording the screen of a mobile device. The recording runs in the background until stopped with mobile_stop_screen_recording. Returns the path where the recording will be saved.

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
outputstring–The file path to save the recording to. Filename must end with .mp4. If not provided, a temporary path will be used.
timeLimitnumber–Maximum recording duration in seconds. The recording will stop automatically after this time.

No output schema declared.

No examples provided.

mobile_stop_screen_recording ~61

Stop an active screen recording on a mobile device. Returns the file path, size, and approximate duration of the recording.

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.

No output schema declared.

No examples provided.

mobile_swipe_on_screen ~152

Swipe on the screen

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
directionstringyesThe direction to swipe
distancenumber–The distance to swipe in pixels. Defaults to 400 pixels for iOS or 30% of screen dimension for Android
xnumber–The x coordinate to start the swipe from, in pixels. Give both x and y, or neither to start from the center of screen
ynumber–The y coordinate to start the swipe from, in pixels. Give both x and y, or neither to start from the center of screen

No output schema declared.

No examples provided.

mobile_take_screenshot ~163

Take a screenshot of the mobile device. Use this to understand what's on screen, if you need to press an element that is available through view hierarchy then you must list elements on screen instead. The screenshot is usually smaller than the screen, so when the device reports its screen size the result also states how to convert positions in the screenshot into screen coordinates before tapping. Do not cache this result.

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
maxSizeinteger–Maximum width/height in pixels, keeping aspect ratio. Defaults to 1024.
scalenumber–Scale factor (0.0-1.0). Ignored if maxSize is provided.

No output schema declared.

No examples provided.

mobile_terminate_app ~61

Stop and terminate an app on mobile device

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
packageNamestringyesThe package name of the app to terminate

No output schema declared.

No examples provided.

mobile_type_keys ~86

Type text into the focused element

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
submitboolean–Whether to submit the text. If true, the text will be submitted as if the user pressed the enter key. Defaults to false
textstringyesThe text to type

No output schema declared.

No examples provided.

mobile_uninstall_app ~60

Uninstall an app from mobile device

NameTypeReqDescription
devicestringyesThe device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
packageNamestringyesThe package name of the app to uninstall

No output schema declared.

No examples provided.

Install

How do I install the io.github.mobile-next/mobile-mcp server?

io.github.mobile-next/mobile-mcp runs locally as an npm package, launched with npx -y @mobilenext/mobile-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @mobilenext/mobile-mcp

# add to Claude Code
claude mcp add mobile-next-mobile-mcp -- npx -y @mobilenext/mobile-mcp
Common questions

What is the io.github.mobile-next/mobile-mcp server?

io.github.mobile-next/mobile-mcp is listed in the public MCP registry as io.github.mobile-next/mobile-mcp. MCP server for iOS and Android Mobile Development, Automation and Testing. This page covers its npm package (@mobilenext/mobile-mcp).

Is the io.github.mobile-next/mobile-mcp server safe to use?

io.github.mobile-next/mobile-mcp scores 94 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.mobile-next/mobile-mcp server expose?

io.github.mobile-next/mobile-mcp exposes 35 tools: get_more_tools, mobile_list_available_devices, mobile_login_to_cloud_provider, mobile_list_remote_devices, mobile_allocate_remote_device, and 30 more. Their descriptions and schemas cost roughly 4,367 tokens of context every time the server is loaded.

Is the io.github.mobile-next/mobile-mcp server still maintained?

io.github.mobile-next/mobile-mcp is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.mobile-next/mobile-mcp server under?

io.github.mobile-next/mobile-mcp declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.