mobile-mcp-ai@2.7.17
VERIFIED· install onlyPublisher claims: "移动端自动化 MCP Server - 支持 Android/iOS,AI 功能可选(基础工具不需要 AI)" Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Install scripts ran; no agent task scenario for this bundle.- Tested
- install scripts, with decoy credentials in place · second launch with the clock 45 days ahead · every file read, file written and host contacted by what ran
- Not tested
- use of the skill by an agent
What this means for the label: Verified here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.
Before you give it your token
- It will ask for
TOKEN_OPTIMIZATION_ENABLEDConfiguration, not credentials: AI_ENHANCEMENT_ENABLED, ANDROID_HOME, ANDROID_SDK_ROOT, ANDROID_SUPPORT_ENABLED, AUTO_CLOSE_ADS, COMPACT_RESPONSE, COMPACT_TOOL_DESCRIPTION, DEFAULT_PLATFORM, FALLBACK_TO_BASIC_ON_AI_FAILURE, H5_HANDLER_ENABLED, HTTP_SERVER_HOST, HTTP_SERVER_PORT, IOS_SUPPORT_ENABLED, LOCATOR_CACHE_TTL, LOCK_SCREEN_ORIENTATION, MAX_ELEMENTS_RETURN, MAX_SOM_ELEMENTS_RETURN, MOBILE_DEVICE_ID, MOBILE_PLATFORM, PREFERRED_AI_PLATFORM, SMART_LOCATOR_ENABLED, SNAPSHOT_CACHE_TTL, VERBOSE_LOGGING- Where it talks to
- no vendor host named in the codeAlso android.com — not the publisher's domain; check what for before connecting.
- What the honeypot saw
- no credential files read · no network
- What we could not test
- use of the skill by an agent
Connect it with a scoped credential, under the guard, and read the third-party hosts first. The code names android.com as well as its own vendor. The guard injects TOKEN_OPTIMIZATION_ENABLED only into requests to the host you bind (and its subdomains) and refuses the rest.
Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; install scripts ran; no agent task scenario for this bundle) on 2026-11-11 and scored it 84/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 2 scenarios · 0 deviationsStatic findings
result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(rm_cmd, capture_output=True, timeout=10)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out."python-dotenv>=1.0.0", # 用于读取 .env 配置Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.subprocess.run(["osascript", "-e", script], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(cmd, capture_output=True, timeout=10)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(['adb', 'version'], capture_output=True, timeout=2)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.sim_result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.self._screen_record_process = subprocess.Popen(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(pull_cmd, capture_output=True, timeout=30)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.self._wda_proxy_process = subprocess.Popen(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.self.u2.shell('rm /sdcard/ui_dump.xml')Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.subprocess.run([self.device_manager.adb_path, '-s', self.device_manager.current_device_id,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
No advisories in OSV for mobile-mcp-ai@2.7.17 as of 3d ago. This is the package itself, not its dependencies.