# Ceraph > Ceraph is an MCP (Model Context Protocol) server that lets an AI coding agent > drive and test a React Native or Expo app end-to-end on a real iOS device or > simulator — tap, type, swipe, deep-link, screenshot, read runtime errors, and > confirm a code change actually works. Think "Playwright MCP, but for React > Native." It ships as the npm package `@ceraph/react-native-mcp` and works with > any MCP client (Claude Code, Cursor, Codex, VS Code / Copilot, Windsurf, > Antigravity, Cline, Roo Code, JetBrains). Ceraph is built by Ike Studios LLC. Platform: **iOS only at launch** — a real iOS device (USB) and the iOS Simulator (windowed or headless) are both supported; Android is on the roadmap. Requires macOS with Xcode. The agent supplies its own tokens — Ceraph exposes the driving/testing primitives; you run them from the editor you already use. Install (run once from your React Native project root): ``` npx @ceraph/react-native-mcp@latest init ``` `init` auto-configures every detected MCP client, installs a Claude Code hook that injects runtime errors into your conversation, and signs you in for Pro features. ## What Ceraph does (capabilities) The core loop: `ceraph_start` (reach a ready state) → `ceraph_snapshot` (observe) → `screen_*` / `app_*` primitives (act) → snapshot again, inspecting errors with `rn_get_errors` between steps. - **Build & runtime** — `ceraph_start` (one-call bring-up: Metro + build/install + WebDriverAgent + on-device verify), `ceraph_doctor` (readiness diagnosis with remediation), `rn_build_ios`, `rn_metro_start`, `rn_get_errors`, `rn_get_console`, `rn_check_prebuild`, `rn_stop`. - **Observe the screen** — `ceraph_snapshot` (structured accessibility-tree snapshot: elements with roles, names, values, on-screen bounds, live state, and a stable `ref` per element — deterministic, no LLM), `screen_screenshot` (pixel image). - **Drive the app** — `screen_tap`, `screen_tap_and_verify`, `screen_tap_chain`, `screen_type_into_field`, `screen_swipe`, `screen_scroll_to`, `screen_long_press`, `screen_press_key`, `screen_open_url` (deep links), `screen_wait_for`. - **App lifecycle & device** — `app_launch`, `app_terminate`, `app_activate`, `app_list_installed`, `app_info`, `rn_reset_state`, `rn_reload`, `device_ensure_awake`, `device_set_orientation`. - **Target & simulator** — `rn_target_status`, `rn_wda_start`, `rn_wda_stop`; `CERAPH_TARGET=device|simulator|headless|auto` chooses the runtime. - **Camera & media testing** — a `__DEV__`-gated shim serves a still image to `takePictureAsync` and a video clip to `recordAsync`, so camera-heavy flows are testable; add media via `ceraph_add_camera_image` / `ceraph_add_camera_video`. - **Test-user provisioning (Pro)** — `ceraph_test_data_provision` mints a managed test user against Clerk / Auth0 / Supabase / Firebase / Cognito so flows behind sign-in still run; `ceraph_test_data_list`, `ceraph_test_data_cleanup`. - **Hooks (Pro)** — run your own app code at a given route to clear an auth wall, paywall, or feature gate while driving. ## Pricing - **Starter — Free.** Works with any MCP client; runtime errors surfaced in chat; agent can drive the app (tap, swipe, screenshot, deep links); mock camera with test images; real iOS device or simulator. - **Pro — $10/mo.** Everything in Starter, plus Ceraph hooks and test-user provisioning (get an agent past auth walls and paywalls). ## Documentation - [npm package + full README](https://www.npmjs.com/package/@ceraph/react-native-mcp): the canonical, always-current capability and setup reference. - [Full capability reference (markdown)](https://ceraph.dev/llms-full.txt): the complete README served as markdown on this origin. - [Website](https://ceraph.dev): product overview, integrations, and pricing. ## Blog - [Ceraph: The Playwright MCP for React Native](https://ceraph.dev/blog/the-playwright-mcp-for-react-native): what an MCP is, the edit → ask-agent → drive-on-device loop, the core tools, iOS platform support, and how Ceraph slots into Claude Code / Cursor / Codex. Raw markdown: https://ceraph.dev/blog/the-playwright-mcp-for-react-native/llms.txt ## Optional - [Status](https://status.ceraph.dev): service status. - [Privacy](https://ceraph.dev/privacy) - [Terms](https://ceraph.dev/terms) - [Contact](https://ceraph.dev/contact)