Parallax

MCP tools

Every tool the Parallax MCP server gives your coding agent, generated from the server itself.

The Parallax MCP server gives your coding agent tools to see and drive your app: read the simulator screen, tap and type, read logs and errors, inspect the component tree, network requests, state and navigation, and run commands your app registered.

Tool descriptions and parameter lists are deliberately short. Every agent session pays for the tools/list answer in its context, so the server keeps it small and puts the detail in the tool answers instead (each answer says what to do next, and an error carries a Fix line).

Tools marked read-only never change the simulator or your app. Tools marked acts are every tool that is not read-only: they boot a simulator, tap, type, swipe, open a URL, launch or reload, run an app command that can change app data, or use the inbox. With --allow-read-only-tools the setup command adds only the read-only tools to Claude Code's allow list; see the CLI.

This page is generated from the built server, so it always matches the version shown below.

On Android, device takes an emulator's serial (emulator-5554), or a shut-down AVD as avd:<name> for device_boot. Coordinates there are in dp, as React Native lays out, the same unit device_ui reports; device_ui takes about 2 s on Android (uiautomator).

19 tools, from Parallax 0.1.0-beta.2.

read-only tools never change anything. acts marks every tool that is not read-only, including device_boot and parallax_inbox. destructive and open-world are the server's own hints.

Whether the agent asks you first is decided by its own permission prompt. Claude Code asks for every MCP tool until you allow it; Codex asks for destructive or open-world tools. With --strict-approvals the Parallax window asks for the tools that act on the app or the device: device_tap, device_type, device_swipe, device_open_url, app_launch, app_reload and app_command_run (not device_boot).

Status and doctor

statusread-only

Parallax status

Metro, project root (other paths are relative to it), RN version, app connection, SDK versions, warnings. Start here. App tools take device when several apps run.

No parameters.

doctorread-only

Parallax doctor

Checklist (device tools, Metro, app, SDK, build plugin, versions) a Fix per problem.

No parameters.

Device tools

device_listread-only

List devices

Lists iOS simulators/Android emulators (id, name, state), booted first. With several booted, tools need device.

No parameters.

device_bootacts

Boot a device

Boots an iOS simulator or Android emulator by id or name.

ParameterTypeRequiredDescription
devicestringno–

device_screenshotread-only

Screenshot

Screenshot of the simulator/emulator screen (downscaled; full: true for native size). device_ui is cheaper for text.

ParameterTypeRequiredDescription
devicestringno–
fullbooleanno–

device_uiread-only

Read the screen

Simulator or emulator screen as an accessibility tree: elements with id (testID) or label, role, value, position. Default 80 lines; filter narrows.

ParameterTypeRequiredDescription
devicestringno–
filterstringno–
limitinteger (1 to 200)no–

device_tapactsdestructive

Tap

Taps an element on the simulator/emulator screen by id, label, or point (x, y): exactly one. Says what changed. Can change app data.

ParameterTypeRequiredDescription
devicestringno–
idstringno–
labelstringno–
xnumberno–
ynumberno–

device_typeactsdestructive

Type text

Types ASCII text input (max 500) into the focused field of the simulator/emulator; tap it first. No return key.

ParameterTypeRequiredDescription
devicestringno–
textstringyes–

device_swipeactsdestructive

Swipe

Swipes or scrolls the screen (simulator/emulator); direction is where the finger moves (up shows content below).

ParameterTypeRequiredDescription
devicestringno–
direction"up" | "down" | "left" | "right"yes–
distancenumber (0.1 to 0.9)no–

device_open_urlactsdestructiveopen-world

Open a URL

Opens a URL or deep link on the simulator/emulator (a web URL opens Safari; a deep link can run app actions).

ParameterTypeRequiredDescription
devicestringno–
urlstringyes–

App tools

app_launchactsdestructive

Launch the app

Launches an installed app on the simulator/emulator by bundle id/package; restart: true terminates it first.

ParameterTypeRequiredDescription
devicestringno–
bundle_idstringyes–
restartbooleanno–

app_reloadactsdestructive

Reload the app

Reloads the running React Native app through Metro and waits for it. State is lost; not done if the bundle does not build.

ParameterTypeRequiredDescription
devicestringno–
timeout_msinteger (1000 to 40000)no–

app_logsread-only

App console logs

Console logs of the running React Native app across reloads. Newest 50; level, filter; next: cursor goes in since.

ParameterTypeRequiredDescription
devicestringno–
level"debug" | "log" | "info" | "warn" | "error"no–
filterstringno–
limitinteger (1 to 200)no–
sincestringno–

app_errorsread-only

App errors and build errors

Metro build error (syntax error, missing module), then JS exceptions (crashes, red box, render errors), grouped, with files and a code frame. next: cursor goes in since.

ParameterTypeRequiredDescription
devicestringno–
limitinteger (1 to 25)no–
sincestringno–

app_treeread-only

App component tree

React component tree of the running app: project components and screen elements, file:line with the build plugin. Max 150 lines; root, depth, filter. filter = a device_ui id (testID), label or text finds its component; several matches are AMBIGUOUS. Checked on RN 0.85-0.87 / React 19.2.3 only.

ParameterTypeRequiredDescription
devicestringno–
rootstringnoNode id (#12) or component name: only that subtree.
depthinteger (0 to 60)no–
filterstringno–
roots"app" | "all"no–

app_dataread-only

App network, state, navigation, perf

The running app's network, state, nav, perf (frame rates, drops), anim (running animations) or security hints, secrets removed. List; id for detail. limit, filter, since (next: cursor), path, body; record: N s (2-30) makes a perf recording; refresh rereads the screen (security).

ParameterTypeRequiredDescription
source"network" | "state" | "nav" | "perf" | "anim" | "security"yes–
devicestringno–
idstringno–
filterstringno–
pathstringno–
bodybooleanno–
refreshbooleanno–
recordinteger (2 to 30)no–
limitinteger (1 to 100)no–
sincestringno–

app_commandsread-only

List app commands

Lists dev commands the running app registered through the SDK. Run with app_command_run.

ParameterTypeRequiredDescription
devicestringno–

app_command_runactsdestructive

Run an app command

Runs a dev command the app registered through the SDK, optional JSON args. Can change app data.

ParameterTypeRequiredDescription
devicestringno–
namestringyes–
argsanyno–
timeout_msinteger (1000 to 50000)no–

Inbox

parallax_inboxacts

Parallax inbox

Read what the user sent you from the Parallax app.

No parameters.