CLI
The command of @parallax-rn/mcp - run the server, check your setup, register it with Claude Code or Codex.
@parallax-rn/mcp is the MCP server your agent starts. Run its commands through npx, without installing anything first. They run in any folder, except doctor, which looks for your app in the current folder (use the app's project root):
npx -y @parallax-rn/mcp@0.1.0-beta.2 doctorWhen it runs as the MCP server on stdio, what it prints for you goes to stderr. doctor, setup, hook, --version and --help print to stdout; a usage error goes to stderr.
Commands
[--metro-url <url>]
With no command, runs the MCP server on stdio. You do not run this yourself; your agent starts it. --metro-url is Metro's address. The default is http://localhost:8081, or the PARALLAX_METRO_URL environment variable when it is set.
doctor [--metro-url <url>]
Prints the checklist (simulator tools, Metro, the app, the SDK, the build plugin, versions, and whether the agent hooks are set up) with a fix for each problem, then exits. The exit code is 1 when a check fails, otherwise 0.
security [--project <dir>] [--release-bundle <file>] [--app <built .app>] [--device <udid|serial> --app-id <bundle id|package>] [--json]
Security hints from the project's files and, with --release-bundle, a release bundle. With --app, also the entitlements of a built iOS app (codesign). With --device and --app-id, the app's stored data on a simulator or emulator. Read only. See Security hints.
setup <claude|codex> [options]
Registers the server with an agent and installs the Parallax skill. It shows a diff of every change and asks before it applies anything. --yes skips the question, never the diff.
| Option | What it does |
|---|---|
--scope <user|project> | Claude Code only. Where to register the server. user is the default. project registers in <project>/.mcp.json and installs the skill there. Codex registers globally only, so --scope project is refused for Codex. |
--project <dir> | The React Native project. Default: the current directory. |
--update | Change an existing Parallax registration or skill to this version. |
--hook | Also add the agent hooks: a nudge when you sent the agent something from the Parallax app, and observe-only session events for the app's session list. Asked separately; only their own entries are touched. |
--answer-approvals | The agent's own permission prompts are also shown in the Parallax app and answered there. The agent's prompt stays when the app is closed or does not answer. Asked separately. |
--strict-approvals | Tools that act are approved in the Parallax app. It fails closed without the app. Parallax's own agent prompts are switched off. Asked separately. |
--allow-read-only-tools | Claude Code: also add the read-only tools to permissions.allow. Tools that act are never added. Asked separately. |
--real-config | Allow a run without a terminal to use the real agent configuration. Scripts and tests must point HOME somewhere else instead. |
--undo | Remove what setup added. It shows exactly what first. |
--yes | Do not ask. The diff is still printed. |
--dry-run | Print the diff and change nothing. |
--local | Register node <this cli.js> instead of npx. |
--package <spec> | What npx runs. Default: @parallax-rn/mcp@<this version>. May be a path to a tarball. |
Setup without an agent name, or with an agent other than claude or codex, exits with code 2.
hook <claude|codex>
The agent's hook command. It tells the app which agent session is running and nudges the agent when you sent it something from the app. It reads the hook JSON on stdin and prints nothing when nothing waits. setup --hook writes this entry for you.
--version
Prints the version.
Unknown commands
Any other command prints the help and exits with code 2.
Full help text
This is the output of --help, generated from the built server:
parallax-mcp 0.1.0-beta.2 Usage: parallax-mcp [--metro-url <url>] run the MCP server on stdio parallax-mcp doctor [--metro-url <url>] print the checklist and exit (exit code 1 when a check fails) parallax-mcp hook <claude|codex> the agent's hook: tells the app which session is running and nudges for "send to agent" (reads the hook JSON on stdin; prints nothing when nothing waits) parallax-mcp security [--project <dir>] [--release-bundle <file>] [--app <built .app>] [--device <udid|emulator-N> --app-id <bundle id|package>] [--json] security hints from the project's files (a release bundle, the app's stored files on a simulator or emulator); read only parallax-mcp setup <claude|codex> [options] register the server with an agent, install the skill (shows a diff, asks first) parallax-mcp --version setup options: --scope <user|project> Claude Code only: where to register (default user; project registers in <project>/.mcp.json and installs the skill there) --project <dir> the React Native project (default: the current directory) --update change an existing Parallax registration or skill to this version --hook also add the hooks: the nudge when the user sent the agent something from the app, and observe-only session events for the app's session list (asked separately; their own entries only) --answer-approvals the agent's own permission prompts are also shown in the Parallax app and answered there (asked separately; the agent's prompt stays when the app is closed or does not answer) --strict-approvals acting tools are approved in the Parallax app (asked separately; fails closed without it); Parallax's own agent prompts are switched off --allow-read-only-tools Claude Code: also add the read-only tools to permissions.allow (asked separately; tools that act are never added) --real-config allow a run without a terminal to use the real agent configuration (scripts and tests must isolate HOME instead) --undo remove what setup added (shows exactly what first) --yes do not ask (the diff is always printed); --dry-run: print the diff and change nothing --local register 'node <this cli.js>' instead of npx --package <spec> what npx runs (default @parallax-rn/mcp@0.1.0-beta.2; a path to a tarball before the package is published) Options: --metro-url <url> Metro's address (default http://localhost:8081, or the PARALLAX_METRO_URL environment variable)