@ceraph/react-native-mcp
MCP server for React Native and Expo development
npm · fingerprint a0aecd513b498584b92cd812 · repository · RSS
50tools
2recorded versions
23dtracked
unchanged 13d
What changed
Changed between 6 October 2026 and 13 October 2026 (first seen 2026-10-13 14:13 UTC)
4 descriptions rewritten.
--- pinned/ceraph_add_media +++ observed/ceraph_add_media { "annotations": { "destructiveHint": false, - "description": "Add one image or video to the exact runtime's system photo library before or while testing a native media picker. After this succeeds, drive the app's real image/video picker UI; do not use it as a CameraView replacement. Supports iOS simulators and Android emulators/devices. Physical iPhones require a project-owned hook because host tools cannot write to Photos directly.", + "description": "Add an image or video to the selected runtime's system photo library so the agent can test the app's real native media picker. After adding it, open the app's picker and select the supplied media.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false,
--- pinned/ceraph_run_hook +++ observed/ceraph_run_hook { "annotations": { "destructiveHint": true, - "description": "Fire a registered project-owned Ceraph hook by route when the real UI cannot reliably establish a testing prerequisite. Before considering a hook, prefer the real UI when it can establish that prerequisite: the path itself provides end-to-end coverage and may reveal regressions. After setup, continue the representative end-to-end flow rather than testing only the changed screen or component. If login or payment is under review, exercise that flow rather than skipping it. Before considering testing blocked, inspect ceraph_snapshot.meta.availableHooks. Hooks can create or sign in as disposable test users; prepare sessions, OTPs, or magic links; seed non-production backend/database states; establish roles, subscriptions, entitlements, or feature flags; simulate webhook, payment, email, or push state; dismiss development-only blockers; insert picker media through an app-owned physical-iPhone test seam; and reset or clean up disposable data. Hooks can reach backend and database code: verify a disposable non-production target, never modify production or real-user data or take irreversible action without explicit human authorization, reuse existing app authentication/configuration instead of embedding secrets, and prefer idempotent runId-scoped effects that return created IDs and have companion cleanup. The hook's run() code lives in your app (.ceraph/hooks, wired by `ceraph init`); this tool triggers it over Ceraph's command channel and reports the outcome.", + "description": "Fire a registered project-owned Ceraph hook by route when the real UI cannot reliably establish a testing prerequisite. Before considering a hook, prefer the real UI when it can establish that prerequisite: the path itself provides end-to-end coverage and may reveal regressions. After setup, continue the representative end-to-end flow rather than testing only the changed screen or component. If login or payment is under review, exercise that flow rather than skipping it. Before considering testing blocked, inspect ceraph_snapshot.meta.availableHooks. Hooks can create or sign in as disposable test users; prepare sessions, OTPs, or magic links; seed non-production backend/database states; establish roles, subscriptions, entitlements, or feature flags; simulate webhook, payment, email, or push state; dismiss development-only blockers; insert picker media through an app-owned physical-iPhone test seam; and reset or clean up disposable data. Hooks can reach backend and database code: verify a disposable non-production target, never modify production or real-user data or take irreversible action without explicit human authorization, reuse existing app authentication/configuration instead of embedding secrets, and prefer idempotent runId-scoped effects that return created IDs and have companion cleanup. A hook can return `data` (JSON such as created IDs or a disposable test user's credentials); use it to continue the flow, and when it holds disposable test credentials, share them with the user in your summary so they can test manually. The hook's run() code lives in your app (.ceraph/hooks, wired by `ceraph init`); this tool triggers it over Ceraph's command channel and reports the outcome.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false,
--- pinned/rn_check_prebuild +++ observed/rn_check_prebuild { "annotations": { "destructiveHint": false, - "description": "Check whether an Expo native project needs a clean prebuild for iOS or Android. Compares current dependencies and app config with that platform's last successful-build snapshot; iOS also checks Podfile.lock, while Android checks the package-manager lockfile used to resolve native packages.", + "description": "Check whether recent changes require rebuilding the app before testing, without starting a build. Reports the reasons and any checks that could not be completed.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, + "bundleId": { + "description": "Exact installed bundle/package to inspect; defaults to the project identifier.", + "type": "string" + }, + "configuration": { + "description": "iOS configuration (default Debug).", + "type": "string" + }, "platform": { - "description": "Platform to inspect; defaults to the active Ceraph platform.", + "description": "Defaults to the active Ceraph platform.", "enum": [ "ios", "android" + }, + "scheme": { + "description": "iOS scheme to compare with the last successful build.", + "type": "string" + }, + "variant": { + "description": "Android variant to compare with the last successful build.", + "type": "string" } }, "type": "object"
--- pinned/screen_screenshot +++ observed/screen_screenshot { "annotations": { "destructiveHint": false, - "description": "Capture a screenshot of the current mobile screen through the active automation driver. Returns the PNG as a viewable image.", + "description": "Capture a screenshot of the current mobile screen through the active automation driver. Returns the PNG as a viewable image. Optional saveTo also saves a local project-relative PNG without overwriting an existing file.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, + }, + "saveTo": { + "description": "Local-only project-relative PNG destination, e.g. .ceraph/recorded-runs/screenshot.png. Must not already exist.", + "maxLength": 4096, + "minLength": 1, + "type": "string" } }, "type": "object"
Current tools
Show all 50 tool fingerprints
app_activate
app_info
app_launch
app_list_installed
app_terminate
ceraph_add_camera_image
ceraph_add_camera_video
ceraph_add_media
ceraph_doctor
ceraph_init
ceraph_init_auth_browser
ceraph_init_inject_boot
ceraph_init_register_scheme
ceraph_init_replace_camera
ceraph_init_scan_camera
ceraph_init_select_tier
ceraph_init_setup_mcp_clients
ceraph_init_status
ceraph_record_run
ceraph_report_issue
ceraph_run_hook
ceraph_set_camera_test_media
ceraph_snapshot
ceraph_start
device_ensure_awake
device_set_orientation
rn_build_android
rn_build_ios
rn_check_prebuild
rn_get_console
rn_get_errors
rn_metro_start
rn_reload
rn_stop
rn_sync_camera_registry
rn_target_status
rn_wait_for_device
rn_wda_start
rn_wda_stop
screen_long_press
screen_open_url
screen_press_key
screen_screenshot
screen_scroll_to
screen_swipe
screen_tap
screen_tap_and_verify
screen_tap_chain
screen_type_into_field
screen_wait_for
Watch this server yourself
If you run this server, put the proxy in front of it. It pins these exact fingerprints on first connect and stops the session if they move.
npx -y mcp-pin@0.2.3 -- <your @ceraph/react-native-mcp command>
Or subscribe to this page's RSS feed to be told when it changes.
Badge
The badge states one fact about time and nothing else. It never claims a server is safe.
[](https://mcp-pin.gautamkhosla.com/servers/d5d6dabc8c60e0b5.html)