Metro MCP logo

Metro MCP

Debug, inspect, automate, and profile React Native or Expo apps through Metro, Hermes, and CDP.

Install Metro MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "metro-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "metro-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-tested— we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

Metro MCP MCP server connects AI clients to running React Native or Expo apps through Metro and the Chrome DevTools Protocol. It collects console, network, error, runtime, component, Redux, storage, navigation, and profiling data, while also supporting device control and UI automation. Use it when an agent needs to inspect or operate a Metro + Hermes development session without changing app code for core debugging features. It runs over stdio or as a Streamable HTTP endpoint and supports custom plugins.

Use cases

  • Inspect React Native console logs and runtime errors
  • Track network requests and examine response bodies
  • Automate simulator or emulator interactions
  • Profile JavaScript execution and React rendering
  • Generate Appium, Maestro, or Detox tests

Key features

  • Metro and Hermes CDP connection
  • Console, network, and error inspection
  • React, Redux, storage, and navigation inspection
  • Simulator, emulator, permission, and UI automation
  • CPU, heap, and render profiling
  • Appium, Maestro, and Detox test recording

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

7/7 checks healthy over the last 45d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 10d ago via OSV.dev · metro-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars85Stargazers on the source repository.
npm downloads3.2kPackage downloads in the last 30 days.
Last commit1mo agoMost recent push to the default branch.

How Metro MCP works

What the Metro MCP MCP server does

Metro MCP MCP server gives MCP clients access to a running React Native development session. It works with Expo, bare React Native, and other projects using Metro with Hermes. The server connects to Metro through Chrome DevTools Protocol (CDP), then exposes runtime information and device actions as MCP tools, resources, and prompts.

Core debugging does not require changes to application code. Available capabilities cover console logs, network requests and response bodies, runtime and bundle errors, JavaScript evaluation, environment and Expo configuration inspection, stack trace symbolication, Redux state, React component trees, AsyncStorage, navigation state, and accessibility checks.

The plugin set also includes simulator and emulator control, deep-link testing, permissions, UI actions such as tapping, swiping, and typing, polling helpers, CPU and heap profiling, render tracking, file inspection, and discovery of debug globals such as Redux stores or Apollo Client. Test recording can generate Appium, Maestro, or Detox tests.

How the Metro MCP MCP server works

When started, the server scans common Metro ports, including 8081, 8082, and 19000 through 19002. It connects to the Hermes runtime over CDP and keeps buffers for console output, network activity, and errors. MCP clients then query those buffers or invoke runtime and device operations.

Hermes normally permits only one CDP debugger connection. The Metro MCP MCP server includes a CDP proxy so its MCP connection can coexist with Chrome DevTools. Use the provided DevTools-opening tool rather than opening the debugger through Metro’s usual shortcuts, which can otherwise take over the connection.

Standard stdio installations can reuse a local shared daemon for the same project directory and Metro settings. This lets multiple configured clients connect to one running application and observe shared runtime state.

Setup and configuration

Node.js 18 or newer, or Bun 1.0 or newer, is required. iOS workflows require Xcode 14 or later with the Simulator; Android workflows require the Android SDK and adb on the PATH. Some iOS operations can use IDB as a fallback, and the relevant tools indicate when it is needed.

A typical MCP configuration starts the package with npx -y metro-mcp, or with bunx metro-mcp. The server can receive a custom Metro port, for example --port 19000. To run one long-lived endpoint, use metro-mcp serve --mcp-port 8765; this exposes Streamable HTTP at http://127.0.0.1:8765/mcp. The documented endpoint does not provide /sse or /messages routes.

Tools and capabilities

The repository organizes functionality into plugins:

  • Console collection and filtering
  • Network tracking, response inspection, and statistics
  • Runtime and Metro bundle error reporting
  • JavaScript evaluation and custom app commands
  • Device status, reloads, simulator, emulator, and permission control
  • Environment, Expo configuration, navigation, and deep-link inspection
  • React components, Redux, storage, accessibility, and debug-global inspection
  • UI interaction, waiting, profiling, and test recording
  • Sandbox filesystem access, source symbolication, and Chrome DevTools support

The exact tool count and names are maintained in the project’s tools reference. The inspect-point plugin is experimental, and the statusline plugin integrates with Claude Code.

Limitations and notes

The application must be running with a reachable Metro development server for runtime inspection. The server targets Metro plus Hermes, so projects using a different bundler or JavaScript runtime are outside the stated compatibility scope.

Opening the debugger through Metro or the React Native development menu can disconnect the MCP by taking Hermes’s single debugger connection. Use the built-in proxy workflow when Chrome DevTools is needed alongside MCP access. iOS and Android automation also depends on the platform tooling installed on the host.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Metro MCP

Metro MCP is an MCP server that connects AI clients to running React Native or Expo apps through Metro, Hermes, and Chrome DevTools Protocol. Its main tools inspect logs, network activity, errors, components, Redux, storage, navigation, and runtime state, while also supporting device control, UI automation, profiling, and test recording.

Install it by configuring an MCP client to run `npx -y metro-mcp`, or use `bunx metro-mcp`. The README provides commands for Claude Code and Codex plus JSON configuration for Cursor and VS Code. Node.js 18+ or Bun 1.0+ is required.

Yes, Metro MCP works with Cursor through a standard MCP configuration. Add a server named `metro-mcp` with `npx` and the argument `-y metro-mcp`, or use `bunx metro-mcp`; the repository also provides a Cursor installation link.

Yes, it can open Chrome DevTools through a built-in CDP proxy. Use the `open_devtools` MCP tool so DevTools and MCP can share Hermes’s single debugger connection; opening the debugger through Metro or the app menu can disconnect MCP.

Pass the port with `--port`, such as `npx -y metro-mcp --port 19000`. Add the same argument to the MCP client command configuration. The server otherwise scans several common ports, including 8081, 8082, and 19000–19002.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewMetro MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/metro-mcp?style=directory)](https://allmcps.com/mcp/metro-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/metro-mcp"><img src="https://allmcps.com/api/badge/metro-mcp?style=directory" alt="Metro MCP on AllMCPs" /></a>