MCP server for React Native app automation and monitoring
React Native MCP has 16 tools with complete input schemas and descriptions, but quality is inconsistent. Naming follows verb_noun convention well (get_orientation, take_screenshot, tap, swipe). However, descriptions are terse (avg ~40 chars, well below the 194-char baseline for A+ tools) and lack context on WHEN to use each tool or what happens on failure. Parameters are typed but many lack detailed constraints (e.g., 'selector' accepts 'CSS-like' but no format spec; 'orientation' is a number with no enum or range). Output schemas are not documented anywhere in the provided source. Error handling is absent, no guidance on recovery, retryability, or actionable error messages. The tool set is well-composed (each does one thing) and idempotent (read-only tools are safe; write tools are discrete actions), but lacks the LLM-optimization depth expected of production tools.
Assert that an element is not visible by selector
Assert that text exists on the screen
Assert that an element is visible by selector
Get a text description of the current UI tree
Evaluate JavaScript in the React Native app runtime
Get the current debugger and device connection status
Get the current device orientation
Type text into the currently focused input field (ASCII only)
Descriptions are uniformly terse (30 - 45 chars) and lack LLM-optimization guidance. No explanation of WHEN to use each tool, what it returns, or how it differs from similar tools (e.g., input_text vs type_text, assert_visible vs query_selector).
Output schemas are not documented. Tools like describe_ui, query_selector, and get_debugger_status return structured data, but the response format is not specified. LLMs cannot plan downstream calls without knowing what fields to expect.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | <=2025-11-25 | v2 |
Query elements by selector to find element positions and properties
Scroll until an element matching selector becomes visible
Set the device orientation
Swipe from one point to another on the device
Take a screenshot of the current device screen
Tap at specified coordinates on the device
Type text into a specific element by uid (supports Unicode/Korean)
Evaluate JavaScript in a WebView DOM element
Parameter constraints are underspecified. 'selector' is described as 'CSS-like' with no format or example. 'orientation' is a number with no enum or range (should be 0 - 3 or similar). 'direction' in scroll_until_visible lacks an explicit enum.
No error handling or recovery guidance. Tools like evaluate_script and webview_evaluate_script can fail (syntax error, timeout, element not found) but provide no actionable error messages or retry hints.
Semantic ambiguity between similar tools. input_text vs type_text differ only in scope (focused field vs specific element), but descriptions do not clarify when to use each. query_selector vs assert_visible both locate elements but serve different purposes, not obvious from names alone.