React Native Debug MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WDA_BASE_URL | No | Base URL for WebDriverAgent instance | http://127.0.0.1:8100 |
| WDA_NO_AUTO_INSTALL | No | Set to '1' to disable automatic installation of WebDriverAgent |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| connect_appB | Connect to a running React Native app session on Android emulator or iOS simulator and start log collection. |
| get_connection_statusB | Get current RN Inspector MCP session status and log buffer state. |
| disconnect_appC | Disconnect the active React Native app session. |
| list_sessionsB | List all active MCP device sessions. |
| set_active_sessionC | Set the active session used when sessionId is omitted. |
| close_sessionB | Close a specific session by sessionId. |
| reload_appC | Reload the active app session via Metro, with ADB fallback. |
| get_logsB | Read buffered non-error logs using cursor-based pagination. |
| get_errorsC | Read buffered error and fatal logs using cursor-based pagination. |
| get_network_requestsA | Read buffered network request/response/error events using cursor-based pagination. |
| get_screen_contextA | Get inferred current Android screen context for remediation guidance. Use after testID lookup fails. |
| get_test_id_remediation_planB | Build deterministic patch/remediation guidance when a desired testID is missing. Recommended flow: get_screen_test_ids -> get_elements_by_test_id (exact/contains) -> this tool -> reload_app -> retry lookup. |
| get_ui_treeC | Read the current accessibility hierarchy from Android UIAutomator or iOS WDA. |
| get_visible_elementsB | Return flattened visible accessibility elements derived from the current UI tree. Use as fallback discovery after testID-first lookup. |
| get_screen_test_idsB | List testIDs present on the current screen with metadata. Start UI interaction flows with this tool before get_elements_by_test_id. |
| get_elements_by_test_idA | Find visible elements matching a React Native testID. Use exact first, then contains. If none, call get_screen_context + get_test_id_remediation_plan. |
| tapA | Tap the screen at absolute coordinates. Final fallback only when testID and element-based targeting fail. |
| type_textB | Type text into the currently focused input field, with optional submit/enter key press. |
| press_backC | Trigger back navigation on the current platform. |
| scrollC | Scroll screen content in a direction via swipe gesture. |
| tap_elementA | Tap a visible element by element id from get_visible_elements/get_ui_tree. Preferred fallback before coordinate tapping. |
| take_screenshotC | Capture a screenshot from the connected device. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
Each tool has a clear and distinct purpose, with no ambiguity between similarly named tools. For example, get_logs and get_errors are differentiated by log level, and tap vs tap_element vs type_text cover distinct interaction types.
All tools follow a consistent verb_noun pattern in snake_case, such as get_elements_by_test_id, connect_app, and take_screenshot. This predictability aids agent selection.
With 22 tools, the server is comprehensive but slightly above the typical well-scoped range. However, each tool serves a specific debugging need, making the count acceptable.
The tool surface covers session management, log retrieval, UI inspection, and interaction. Minor gaps include a lack of iOS-specific screen context (only Android mentioned), but overall it supports common debugging workflows.