Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
scan_metro

Scan for running Metro bundler servers and automatically connect to any found React Native apps. This is typically the FIRST tool to call when starting a debugging session - it establishes the connection needed for other tools like get_logs, execute_in_app, and reload_app.

get_apps

List currently connected React Native apps and their connection status. If no apps are connected, run scan_metro first to establish a connection.

get_connection_status

Get detailed connection health status including uptime, recent disconnects/reconnects, and connection gaps that may indicate missing data.

ensure_connection

Verify or establish a healthy connection to a React Native app. Use before running commands if connection may be stale, or after navigation/reload. This tool runs a health check and will auto-reconnect if needed.

get_logs

Retrieve console logs from connected React Native app. Tip: Use summary=true first for a quick overview (counts by level + last 5 messages), then fetch specific logs as needed.

search_logs

Search console logs for text (case-insensitive)

clear_logs

Clear the log buffer

connect_metro

Connect to a Metro server on a specific port. Use this when you know the exact port, otherwise use scan_metro which auto-detects. Establishes the WebSocket connection needed for debugging tools.

execute_in_app

Execute JavaScript code in the connected React Native app and return the result. Use this for REPL-style interactions, inspecting app state, or running diagnostic code. Hermes compatible: 'global' is automatically polyfilled to 'globalThis', so both global.REDUX_STORE and globalThis.REDUX_STORE work.

list_debug_globals

List globally available debugging objects in the connected React Native app (Apollo Client, Redux store, React DevTools, etc.). Use this to discover what state management and debugging tools are available.

inspect_global

Inspect a global object to see its properties, types, and whether they are callable functions. Use this BEFORE calling methods on unfamiliar objects to avoid errors.

get_component_tree

Get the React component tree from the running app. RECOMMENDED: Use focusedOnly=true with structureOnly=true for a token-efficient overview of just the active screen (~1-2KB). This skips navigation wrappers and global overlays, showing only what's actually visible.

get_screen_layout

Get layout information for all components on screen. USE AFTER get_component_tree: First use get_component_tree(structureOnly=true) to understand structure, then use this tool OR find_components with includeLayout=true to get layout details for specific areas. This tool returns full layout data which can be large for complex screens.

inspect_component

Inspect a specific React component by name. DRILL-DOWN TOOL: Use after get_component_tree(structureOnly=true) to inspect specific components. Returns props, style, state (hooks), and optionally children tree. Use childrenDepth to control how deep nested children go.

find_components

Find components matching a name pattern. TARGETED SEARCH: Use after get_component_tree(structureOnly=true) to find specific components by pattern and get their layout info. More efficient than get_screen_layout for targeted queries. Use includeLayout=true to get padding/margin/flex styles.

toggle_element_inspector

Toggle React Native's Element Inspector overlay programmatically. This is the same as manually doing: Dev Menu > Toggle Element Inspector. Useful for enabling inspector features without user interaction.

get_inspector_selection

Get the React component at coordinates or read the current Element Inspector selection. If x/y provided: auto-enables inspector, taps at coordinates, returns component hierarchy. If no coordinates: returns current selection. Works in all React Native versions including Fabric.

inspect_at_point

Inspect the React component at specific (x, y) coordinates. Works like React Native's Element Inspector. NOTE: This API (getInspectorDataForViewAtPoint) may not be available in newer React Native versions with Fabric. If unavailable, use ios_describe_point/android_describe_point for native element info, then find_components to locate the React component.

get_network_requests

Retrieve captured network requests from connected React Native app. Shows URL, method, status, and timing. Tip: Use summary=true first for stats overview (counts by method, status, domain), then fetch specific requests as needed.

search_network

Search network requests by URL pattern (case-insensitive)

get_request_details

Get full details of a specific network request including headers, body, and timing. Use get_network_requests first to find the request ID.

get_network_stats

Get statistics about captured network requests: counts by method, status code, and domain.

clear_network

Clear the network request buffer

reload_app

Reload the React Native app (triggers JavaScript bundle reload like pressing 'r' in Metro). Will auto-connect to Metro if no connection exists. IMPORTANT: React Native has Fast Refresh enabled by default - code changes are automatically applied without needing reload. Only use when: (1) logs/behavior don't reflect code changes after a few seconds, (2) app is in broken/error state, or (3) need to reset app state completely (navigation stack, context, etc.).

get_bundle_status

Get the current Metro bundler status including build state and any recent bundling errors. Use this to check if there are compilation/bundling errors that prevent the app from loading.

get_bundle_errors

Retrieve captured Metro bundling/compilation errors. These are errors that occur during the bundle build process (import resolution, syntax errors, transform errors) that prevent the app from loading. If no errors are captured but Metro is running without connected apps, automatically falls back to screenshot+OCR to capture the error from the device screen.

clear_bundle_errors

Clear the bundle error buffer

list_android_devices

List connected Android devices and emulators via ADB

android_screenshot

Take a screenshot from an Android device/emulator. Returns the image data that can be displayed.

android_install_app

Install an APK on an Android device/emulator

android_launch_app

Launch an app on an Android device/emulator by package name

android_list_packages

List installed packages on an Android device/emulator

android_tap

Tap at specific coordinates on an Android device/emulator screen. WORKFLOW: Use ocr_screenshot first to get tap coordinates, then use this tool with the returned tapX/tapY values.

android_long_press

Long press at specific coordinates on an Android device/emulator screen

android_swipe

Swipe from one point to another on an Android device/emulator screen

android_input_text

Type text on an Android device/emulator. The text will be input at the current focus point (tap an input field first).

android_key_event

Send a key event to an Android device/emulator. Common keys: HOME, BACK, CALL, END_CALL, VOLUME_UP, VOLUME_DOWN, POWER, CAMERA, CLEAR, TAB, ENTER, DEL, MENU, SEARCH, MEDIA_PLAY_PAUSE, MEDIA_STOP, MEDIA_NEXT, MEDIA_PREVIOUS, MOVE_HOME, MOVE_END, APP_SWITCH, ESCAPE

android_get_screen_size

Get the screen size (resolution) of an Android device/emulator

android_describe_all

Get the full UI accessibility tree from the Android device using uiautomator. Returns a hierarchical view of all UI elements with their text, content-description, resource-id, bounds, and tap coordinates.

android_describe_point

Get UI element info at specific coordinates on an Android device. Returns the element's text, content-description, resource-id, bounds, and state flags.

android_tap_element

Tap an element by its text, content-description, or resource-id using uiautomator. TIP: Consider using ocr_screenshot first - it returns ready-to-use tap coordinates for all visible text and works more reliably across different apps.

android_find_element

Find a UI element on Android screen by text, content description, or resource ID. Returns element details including tap coordinates. Use this to check if an element exists without tapping it. Workflow: 1) wait_for_element, 2) find_element, 3) tap with returned coordinates. Prefer this over screenshots for button taps.

android_wait_for_element

Wait for a UI element to appear on Android screen. Polls the accessibility tree until the element is found or timeout is reached. Use this FIRST after navigation to ensure screen is ready, then use find_element + tap.

list_ios_simulators

List available iOS simulators

ios_screenshot

Take a screenshot from an iOS simulator. Returns the image data that can be displayed.

ocr_screenshot

RECOMMENDED: Use this tool FIRST when you need to find and tap UI elements. Takes a screenshot and extracts all visible text with tap-ready coordinates using OCR. ADVANTAGES over accessibility trees: (1) Works on ANY visible text regardless of accessibility labels, (2) Returns ready-to-use tapX/tapY coordinates - no conversion needed, (3) Faster than parsing accessibility hierarchies, (4) Works consistently across iOS and Android. USE THIS FOR: Finding buttons, labels, menu items, tab bars, or any text you need to tap. Simply find the text in the results and use its tapX/tapY with the tap command.

ios_install_app

Install an app bundle (.app) on an iOS simulator

ios_launch_app

Launch an app on an iOS simulator by bundle ID

ios_open_url

Open a URL in the iOS simulator (opens in default handler or Safari)

ios_terminate_app

Terminate a running app on an iOS simulator

ios_boot_simulator

Boot an iOS simulator by UDID. Use list_ios_simulators to find available simulators.

ios_tap

Tap at specific coordinates on an iOS simulator screen. WORKFLOW: Use ocr_screenshot first to get tap coordinates, then use this tool with the returned tapX/tapY values. Requires IDB (brew install idb-companion).

ios_tap_element

Tap an element by its accessibility label. Requires IDB (brew install idb-companion). TIP: Consider using ocr_screenshot first - it returns ready-to-use tap coordinates for all visible text and works without requiring accessibility labels.

ios_swipe

Swipe gesture on an iOS simulator screen. Requires IDB to be installed (brew install idb-companion).

ios_input_text

Type text into the active input field on an iOS simulator. Requires IDB to be installed (brew install idb-companion).

ios_button

Press a hardware button on an iOS simulator. Requires IDB to be installed (brew install idb-companion).

ios_key_event

Send a key event to an iOS simulator by keycode. Requires IDB to be installed (brew install idb-companion).

ios_key_sequence

Send a sequence of key events to an iOS simulator. Requires IDB to be installed (brew install idb-companion).

ios_describe_all

Get accessibility information for the entire iOS simulator screen. Returns a nested tree of UI elements with labels, values, and frames. Requires IDB to be installed (brew install idb-companion).

ios_describe_point

Get accessibility information for the UI element at a specific point on the iOS simulator screen. Requires IDB to be installed (brew install idb-companion).

ios_find_element

Find a UI element on iOS simulator by accessibility label or value. Returns element details including tap coordinates. Requires IDB (brew install idb-companion). Workflow: 1) wait_for_element, 2) find_element, 3) tap with returned coordinates. Prefer this over screenshots for button taps.

ios_wait_for_element

Wait for a UI element to appear on iOS simulator. Polls until found or timeout. Requires IDB (brew install idb-companion). Use this FIRST after navigation to ensure screen is ready, then use find_element + tap.

get_debug_server

Get the debug HTTP server URL. Use this to find where you can access logs, network requests, and other debug data via HTTP.

restart_http_server

Note: HTTP server now runs in-process to share state. To apply code changes, restart the MCP session.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/igorzheludkov/metro-logs-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server