rn-device-mcp
Provides tools for interacting with Android emulators and USB devices through adb, including listing devices, taking screenshots, opening deep links, launching/stopping apps, installing APKs, reversing the Metro port, opening the React Native dev menu, sending input, and reading logcat.
Provides tools for interacting with the iOS Simulator through simctl, including listing, booting, and shutting down simulators; taking screenshots; opening deep links, universal links, and Expo dev-client URLs; launching, terminating, and relaunching apps; installing simulator .app builds; listing installed apps; and reading unified logs.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@rn-device-mcpopen myapp://course/954 and take a screenshot"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
rn-device-mcp
An MCP server that puts the iOS Simulator and Android emulators/devices in front of your coding assistant. Built for React Native / Expo work: the assistant can look at the screen, read the app's logs, open deep links, install a build and relaunch the app, instead of asking you to do it and describe what you see.
macOS only (uses xcrun simctl, sips and adb).
Tools
iOS Simulator
Tool | What it does |
| Simulators with runtime, state and udid, booted first |
| Boot by udid or name (waits until ready), shut down |
| Screen as an image (downscaled to 900 px by default) |
| Deep link, universal link or Expo dev-client URL |
| By bundle id; |
| Install a simulator |
| Installed apps with bundle ids |
| Unified log for the last N minutes, filtered by process and/or substring |
Android
Tool | What it does |
| Emulators and USB devices known to adb |
| Screen as an image |
| Deep link via ACTION_VIEW |
| By package name; |
|
|
|
|
| Opens the RN dev menu (menu key) |
| Tap at x,y, type text, or send a keyevent |
| Recent logcat, RN and crash tags only by default; |
iOS tools default to the booted simulator (simctl's booted alias); Android tools default to the only online device.
Observation tools carry readOnlyHint: true; everything that changes device state does not.
Related MCP server: React Native Debug MCP
Setup
npm install && npm run build
claude mcp add rn-device --scope user -- node /absolute/path/to/rn-device-mcp/dist/index.jsadb is found via ADB_PATH, ANDROID_HOME, ANDROID_SDK_ROOT, ~/Library/Android/sdk, then PATH.
A typical loop
ios_boot "iPhone 17 Pro"→ios_install_app build/MyApp.app→ios_launch_app com.example.myappios_open_url myapp://course/954→ios_screenshot→ the assistant reads the screenSomething is off →
ios_logs process: MyApp contains: "TypeError"Same on Android with
android_*, plusandroid_inputfor a quick tap when there is no test id to hang on to.
Development
npm test # vitest, no devices needed: the process runner is injected
npm run typechecksrc/exec.ts—execFilewrapper, no shell, so URLs and names are never interpretedsrc/image.ts— PNG → downscaled base64 image contentsrc/ios.ts/src/android.ts—simctlandadbwrappers with output parserssrc/tools.ts— tool definitions and handlerssrc/index.ts— MCP wiring over stdio
This server cannot be deployed
Maintenance
Related MCP Connectors
Drive and test your React Native and Expo apps end-to-end on iOS and Android. Supports real devices, simulators, and emulators. Snapshots, taps, typing, swipes, screenshots, deep links, reloads, builds and runtime errors.
Drive real devices from your AI Coding tool. Embed a client SDK (Unity, Godot, Flutter, iOS/macOS, Android, React Native, Web) in your app, then capture screenshots, traverse the UI tree, inject taps and key events, and run automated test tasks on the physical device over a secure relay.
Disposable cloud Android emulators for coding agents: run an APK or PR build, tap, type, screenshot.
Control real Android and iOS devices with LLM agents — tap, swipe, type, automate flows.
Related MCP Servers
AlicenseAqualityAmaintenanceEnables AI assistants to interact with iOS Simulators and Android Emulators, allowing autonomous app development, UI interaction, profiling, and debugging through natural language.773,059Apache 2.0- AlicenseBqualityDmaintenanceEnables AI agents to inspect, log, and control React Native apps on Android emulators or iOS simulators, including UI tree, tap, scroll, and hot reload.22169 npm5MIT
- AlicenseAqualityDmaintenanceEnables AI agents to build, deploy, drive, and debug Android apps — managing Gradle builds, emulators, adb deployment, logcat capture, and full UI automation.5344 npmMIT
- AlicenseAqualityCmaintenanceEnables agents and LLMs to interact with native iOS and Android applications and devices via structured accessibility snapshots or coordinate-based taps, supporting simulators, emulators, and real devices.3926,921 npmApache 2.0