Mobai MCP
AI-powered mobile device automation for Android and iOS devices, emulators, and simulators
Connector by MobAI-App · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/mobai-app-mobai-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing, mobile-development
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 8 read · 9 write · 2 delete · 3 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 22
Read from the source code; the running server may list different tools.
Read 8 · Look things up without changing anything.
debug_evaldebug_stateget_deviceget_screenshotlist_appslist_devicestest_get_activetest_list_projects
Write 9 · Create, change, send or run things.
debug_attachdebug_detachexecute_dslinstall_apprelease_devicesave_screenshotstart_bridgestop_bridgetest_run
Delete 2 · Delete, drop, revoke or wipe things.
debug_breakpointuninstall_app
Not yet classified 3 · We could not tell from the name and description.
claim_devicedebug_appdebug_step
Files it touches
- Any path the agent passes to its tools
Tools (22)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
claim_deviceClaim exclusive use of a device for this session. You rarely need this: a host that requires claims auto-claims on your first action, and a host that does not require them needs no claim at all. Do not call it to fix a device that is missing, still connecting, or busy - none of those are lease problems. Use it only to reserve a device up front or to set a custom holder label. A session can hold several devices at once; each lease is attached automatically to subsequent calls targeting its device and auto-renews on every action, expiring only after the app's configured idle timeout. Call releas…
debug_appLaunch an app in debug mode and write logs to a file. Returns the log file path — use Read/Grep to inspect logs. Use kill_app to stop.
debug_attachStart a debug session for an iOS app. Provide either bundle_id (launches and attaches) or pid (attaches to a running process). Optional breakpoints[] are armed before the target resumes. Read mobai://reference/debugging first.
debug_breakpointAdd or remove a breakpoint in the active debug session. For action=add provide spec; for action=remove provide id.
debug_detachEnd the debug session. Pass kill=true to terminate the debuggee; otherwise it keeps running.
debug_evalEvaluate a Swift/ObjC expression at the current pause. Session must be paused. Examples: "p defaultPrivate", "po self.viewModel.user.email", "frame variable".
debug_stateQuery the current debug session. Returns {state, breakpoints} by default. Set include_stack=true to also fetch the stack of the stopped thread; include_vars=true to also fetch frame[0] locals; include_threads=true to enumerate all threads.
debug_stepAdvance the target. "in" — step into next call (blocks ~ms, returns {state, breakpoints, stack, frame0_locals}) "over" — step over next call (same shape) "out" — run until current frame returns (same shape) "continue" — resume until next breakpoint (fire-and-forget; returns just {state, breakpoints} — poll debug_state for next stop)
execute_dslThree rules that decide whether this tool is fast or slow, plus how to recover from the most common failure. They live here, not only in the reference, because agents that never open the reference default to the slow shape (measured: one step per call and 4x the screenshots): 1. BATCH. Pack every step you can confidently predict into ONE call, and end the script with wait_for plus observe to see the result. Split only when the next step depends on screen content you have not seen yet. 2. Prefer observe with "ui_tree" over screenshots. The tree is faster and far cheaper in context; use a screen…
get_deviceGet details about a specific device
get_screenshotCapture a fast, low-quality screenshot for LLM visual analysis. Returns the file path to the saved image. The image may be downscaled by an integer factor so its long edge stays ≤ 2000px; when that happens the response includes a scale factor — multiply any coordinates you read off the image by that factor before using them in device actions (tap, swipe, drag, long-press, etc.). UI tree coordinates are already in device pixels, do not scale those. Use this for AI/LLM processing only — for full-quality screenshots use save_screenshot instead. For tap coordinates of what is on screen (OCR text +…
install_appInstall an app on the device from a local file path (.apk for Android, .ipa for iOS). For cloud devices nothing is installed directly: the build is uploaded to the provider's app storage and the response returns an appRef - pass it to start_bridge as "app" (restart the bridge if a session is already running).
list_appsList installed apps on the device
list_devicesList all connected Android and iOS devices. Devices with "remote": true are physically attached to ANOTHER machine (a peer MobAI node, hostname in "node") and devices with "cloud": true live in a cloud device farm - all MobAI tools (tap, observe, DSL, screenshots, recording) work on them transparently, but host-local tooling (ffmpeg, simctl, adb, xcodebuild) cannot reach them; stay within MobAI tools for those devices. Devices with "inUse": true are claimed by the holder named in "inUseBy" - claim a different device or wait for the lease to expire.
release_deviceRelease device lease(s) held by this session. With device_id, releases that device's lease; without, releases every lease this session holds. Succeeds quietly if nothing is held.
Show 7 more tools
save_screenshotSave a full-quality PNG screenshot to disk. Use this when you need a high-quality image for reporting, debugging, or sharing — not for LLM processing (use get_screenshot instead).
start_bridgeStart the automation bridge on a device. Required before interacting with the device. For cloud devices this allocates the provider session; pass "app" to pick the app under test (e.g. the appRef returned by install_app).
stop_bridgeStop the automation bridge on a device
test_get_activeGet the currently active test project directory and its .mob test cases. Use this to discover the project path and available tests. The agent can then read/write/create/delete .mob files directly in the returned directory.
test_list_projectsList all known test project directories with their .mob test cases. Each project is a directory containing .mob script files.
test_runRun a .mob test case on a device. The case_path is relative to the project directory. Pass params to supply values for ${name} substitution in the script.
uninstall_appUninstall an app from the device
Compare and alternatives
Featured in
Signals
- Stars
- 252
- Forks
- 22
- Open issues
- 0
- Contributors
- 1
- Last commit
- Oct 13, 2026 (15 days ago)
- Last release
- Jan 29, 2026 (9 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.MobAI-App/mobai-mcp- Version
- 1.2.1
- Auth
- No auth
- Packages
- npm mobai-mcp
- License
- Apache-2.0
- Repository
- github.com/MobAI-App/mobai-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
Mobai MCP. Agent Mart. https://agentmart.dev/connectors/mobai-app-mobai-mcp (last updated 2026-10-24)