Atlas / MCP servers / zillow / AutoMobile

AutoMobileBLOCK

mcp/zillow/automobile

Mobile automation suite of tools including an MCP and libraries for test authoring & execution

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
16 16r · 0w · 0d
Transport
sse · stdio · streamable-http
License
Apache-2.0
Stars
80
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

⚠️ PROJECT ARCHIVED AutoMobile is no longer maintained or supported by Zillow. Zillow does not provide warranties or support for this project. This repository has been archived and is read-only. For continued development and support, please see the community-maintained fork by Jason Pearson: 🔗 [https://github.com/kaeawc/auto-mobile](https://github.com/kaeawc/auto-mobile)

AutoMobile is a set of tools for mobile automation. You can use it for UI testing or as a development workflow assistant.

The first platform supported is Android with plans to extend to iOS.

How it works

  • 🔧 Powerful MCP Server: AutoMobile provides comprehensive actions through MCP

tool calls with a fast observations to drive the interaction loop.

  • 🗺️ Source Mapping: Combining project path config with deep view hierarchy analysis we know exactly what code is being rendered.
  • ✍️ Automated Test Authoring: When used in test authoring mode AutoMobile will write tests for you. It is the only way it writes tests.
  • 🧪 Test Execution - Run tests locally or on CI without extra infrastructure.
  • 📱 Device Management: Multi-device support with emulator control and app lifecycle management.

All together you get a system that looks like this:

Documentation

  • 💻 Installation & Getting Started - AutoMobile is [published on npm](https://www.npmjs.
Read from source at commit 7d41dcd35d58OBSERVED · 2026-10-07
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add auto-mobile -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "auto-mobile": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ]
    }
  }
}
03

Exposed tools (16)

16 read · 0 write · 0 destructive.

ToolRiskDescription
apkanalyzerreadAPK analysis and inspection
appPackagereadThe package name of the app to debug
avdmanagerreadAndroid Virtual Device management
d8readDEX compiler
debug-sessionreadGenerate a debugging session prompt for mobile app analysis
deviceIdreadThe device ID to debug on
lintreadStatic code analysis
profgenreadART profile generation
r8readCode shrinking and obfuscation
resourceshrinkerreadResource optimization
retracereadStack trace de-obfuscation
screenshot2readDevice screenshot capture
sdkmanagerreadSDK package management
testToolreadTest tool
tool1readTool 1
tool2readTool 2
04

Trust audit

BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (5 observation(s))
Network
declared (7 observation(s))
Shell
declared (1 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (16)

HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
src/utils/planUtils.ts:154
rawPlan = yaml.load(yamlContent) as any;
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
MEDIUMInventory / provenance · inv.binary · CWE-1104
android/gradle/wrapper/gradle-wrapper.jar
gradle-wrapper.jar
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
scripts/github/deploy_pages.py:189
print_status("Documentation will be available at: http://127.0.0.1:8000")
LOWInventory / provenance · inv.hidden_file · CWE-1104
.gitmodules
.gitmodules
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.mocharc.json
.mocharc.json
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
src/features/observe/GetScreenSize.ts:35
return crypto.createHash("md5").update(deviceId).digest("hex");
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
src/utils/crypto.ts:26
return crypto.createHash("md5").update(data).digest("hex");
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
scripts/github/deploy_pages.py:111
config_file_arg = "../../mkdocs.yml"
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
scripts/github/deploy_pages.py:146
config_file_arg = "../../mkdocs.yml"
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
scripts/github/deploy_pages.py:193
config_file_arg = "../../mkdocs.yml"
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
scripts/github/deploy_pages.py:212
config_file_arg = "../../mkdocs.yml"
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/features/action/BaseVisualChange.ts:1
import { AdbUtils } from "../../utils/android-cmdline-tools/adb";
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, @types/js-yaml, @types/uuid, fs-extra, glob, jimp, js-yaml, pixelmatch
Why it matters. 50 dependency range(s) float
Fix. pin exact versions or ship a lockfile
INFOInventory / provenance · inv.oversize · CWE-1104
android/playground/mediaplayer/src/main/res/raw/automobile_landscape.webm
android/playground/mediaplayer/src/main/res/raw/automobile_landscape.webm
Why it matters. 2308968 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
android/playground/mediaplayer/src/main/res/raw/automobile_portrait.webm
android/playground/mediaplayer/src/main/res/raw/automobile_portrait.webm
Why it matters. 1644646 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
ios/playground/Playground/video.mp4
ios/playground/Playground/video.mp4
Why it matters. 11562591 bytes not read

Gates applied: no_behavioural_pass.

Audited 2026-10-07 · audit v0.4.1 · source sha 7d41dcd35d58full audit observations/trust-audit/mcp-server/zillow__automobile.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-077d41dcd35d58BLOCKD69first audit
06

Questions

What is the AutoMobile MCP server?

Mobile automation suite of tools including an MCP and libraries for test authoring & execution

What tools does AutoMobile expose?

16 in total: 16 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is AutoMobile safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (69/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on.

What credentials does AutoMobile need?

No credential environment variables were found in its source, so it appears to need none.

How does AutoMobile run?

It speaks sse, stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as auto-mobile at 0.0.5.

How current is this page?

The grade is for one exact copy of the source (7d41dcd35d58), read on 2026-10-07. The repository is watched and re-audited when it changes.

Advertisement