MCP server

Expo MCP Server: Install, Tools and Costs

Checked 2026-10-31

Install

Claude Code
claude mcp add --transport http expo https://mcp.expo.dev/mcp

Hosted endpoint: https://mcp.expo.dev/mcp

Commands come from the project's own docs or registry entry. Check them against the source before you run them.

Loading poll...

Expo's MCP server is a remote server hosted by Expo at https://mcp.expo.dev/mcp. You sign in with your Expo account over OAuth, and your agent can search Expo docs, run and read EAS builds and workflows, pull TestFlight and Play crash data, and answer store reviews. A local package adds simulator screenshots and taps. We checked it on 31 October 2026.

Quick facts

Maintainer

Expo

Endpoint

https://mcp.expo.dev/mcp (Streamable HTTP)

Auth

OAuth with your Expo account

Needs

An Expo account and a project on the latest SDK

Local package

expo-mcp (MIT, expo/expo-mcp), installed as a dev dependency; needs SDK 54 or later

Local tools need

A running Expo dev server started with EXPO_UNSTABLE_MCP_SERVER=1

Clients named

Claude (web, desktop, mobile through Connectors), Claude Code, Cursor, VS Code, Codex, any remote-MCP tool

Tools

About 50 listed, as the docs table shows, with server and local groups

Docs updated

28 Oct 2026

Price

Server access with an Expo account; search_documentation needs an EAS paid plan; sandboxes and simulators are billed. EAS plans are Free ($0), Starter ($19 a month), Production ($199 a month) and Enterprise (custom), plus usage

Repo

expo/expo-mcp, MIT, last pushed 29 Jul 2026

Two things to know early. The hosted server does most of the work, and the repository you can read holds only the local utilities (expo-mcp and a tunnel package). So "open source" here means the local half. The docs also say the capability list "may not be up to date", so your connection's tool list is the truth.

What it does

Expo groups the uses into five jobs.

Learn Expo. The agent fetches current official docs on demand: "How do I use Expo Router?", "What is Expo CNG?". That fixes the common problem of a model describing an old SDK.

Manage dependencies. The server steers the agent toward recommended packages and uses npx expo install, which picks versions known to be compatible with your SDK. "Install expo-camera and show me how to take photos" is the kind of request it targets.

Manage builds and workflows. The agent can start, watch and cancel EAS builds and workflows, read logs, validate workflow YAML and pull TestFlight crashes and feedback. "Investigate why my most recent iOS build on EAS failed" is the headline example.

Investigate production performance. EAS Observe tools compare startup and navigation metrics by version and platform, find slow sessions and read custom events.

Verify visually. With the local package, a multimodal agent can screenshot the running app, tap, scroll and type, and fix what it sees.

The tools, by group

The docs table is long, so we group it.

Group

Tools

What for

Docs

read_documentation, search_documentation

Read a page as Markdown (about 5,000 tokens per call, paginated); search ranks pages by relevance. Search needs an EAS paid plan

Usage budget

usage_budget_get, usage_budget_create

See limits and create a budget with limits you approved, reused for metered operations

Workflows

workflow_list, workflow_info, workflow_logs, workflow_run, workflow_cancel, workflow_validate

Run and inspect EAS workflows

Builds

build_list, build_info, build_logs, build_run, build_cancel, build_submit

Run, inspect, cancel and submit builds

Sandboxes

sandbox_create, sandbox_list, sandbox_wait, sandbox_exec, sandbox_write_stdin, sandbox_stop, artifact and file tools

Cloud sandboxes where an agent runs shell commands. Creating one starts a billable environment

Observe

observe_versions, observe_metrics_summary, observe_metrics, observe_routes, observe_event_names, observe_events, observe_session

Production performance and events

Cloud simulator

simulator_start, simulator_get, simulator_list, simulator_stop

A billed simulator session in the cloud

Automation

automation_tap, automation_take_screenshot, automation_find_view, automation_type, automation_scroll

Drive a device, either an EAS simulator or your local one through a tunnel

Store data

testflight_crashes, testflight_feedback, appstore_reviews, playstore_crashes, playstore_reviews

Read crash, feedback and review data

Store replies

appstore_reply_review, appstore_delete_review_response, playstore_reply_review

Post or remove public replies to reviews

Local only

expo_router_sitemap, open_devtools, collect_app_logs

Need your running dev server

The docs page gives no per-group counts. Only search_documentation is documented as needing a paid plan, and sandbox_create and simulator_start are described as billed.

The tools that change the outside world

Read this part twice. A handful of tools have effects you cannot take back:

  • build_submit sends a finished build to App Store Connect or Google Play.
  • appstore_reply_review and playstore_reply_review post a reply that every visitor to your store listing can read. Apple publishes after a short review, and each review keeps one response, so a new reply replaces the old one.
  • appstore_delete_review_response removes a public response.
  • build_run and workflow_run start billable jobs.
  • sandbox_create and simulator_start start billable environments.

The docs say the review tools require user confirmation: the first call previews the action without performing it. That is a sensible design. It only helps if your client shows the preview to you and you read it.

Install it

The general settings from Expo's docs: server type Streamable HTTP, URL https://mcp.expo.dev/mcp, authentication OAuth.

Prerequisites: an Expo account, a project on the latest SDK (the docs suggest npx create-expo-app@latest --template default@sdk-58 for a new one), and a client with remote MCP support.

Install it in each agent

Expo documents Claude, Claude Code, Cursor, VS Code and Codex. Lines for Antigravity and OpenCode are our adaptation from each agent's own docs.

Claude Code

claude mcp add --transport http expo https://mcp.expo.dev/mcp

Then run /mcp in your session to authenticate. If you installed the Expo plugin from Expo's skills page, it already registers the server, so skip the command and just authenticate.

Codex

codex mcp add expo --url https://mcp.expo.dev/mcp
codex mcp login expo

The first command adds the server to your Codex config and prompts you to sign in. If the Expo plugin is installed, it already registers the server, and you only need the login command.

Cursor

Expo gives a one-click link. The manual entry in .cursor/mcp.json is:

{
  "mcpServers": {
    "expo": {
      "url": "https://mcp.expo.dev/mcp"
    }
  }
}

Antigravity

Our adaptation. Antigravity takes serverUrl for Streamable HTTP in ~/.gemini/config/mcp_config.json:

{
  "mcpServers": {
    "expo": {
      "serverUrl": "https://mcp.expo.dev/mcp"
    }
  }
}

Antigravity handles OAuth automatically for servers that support dynamic client registration. Expo's page does not cover Antigravity and we did not test it. Gemini CLI is now for Code Assist enterprise customers only.

OpenCode

Our adaptation, in opencode.json:

{
  "mcp": {
    "expo": {
      "type": "remote",
      "url": "https://mcp.expo.dev/mcp"
    }
  }
}

Then run opencode mcp auth expo, which OpenCode's docs give as the auth command (opencode mcp auth <server-name>).

Claude on the web, desktop and mobile

Expo MCP is in Claude Connectors. On a Team or Enterprise plan the connector can be enabled for the whole organisation, so members get it on every device, phones included.

VS Code

Open the Command Palette, run MCP: Add Server, pick HTTP, enter the URL https://mcp.expo.dev/mcp and the name expo.

Set up local capabilities

The remote server has no view of your machine. For screenshots, taps, DevTools and logs you add a package and start your dev server with a flag. The docs say local capabilities need SDK 54 or later.

cd /path/to/your-project
npx expo install expo-mcp --dev
npx expo whoami || npx expo login
EXPO_UNSTABLE_MCP_SERVER=1 npx expo start

Log in to Expo CLI with the same account you used for MCP, so the two connect. Yarn, pnpm and Bun forms are in the docs. The EXPO_UNSTABLE_MCP_SERVER name tells you the feature is unstable.

One rule that catches people: whenever you start or stop the dev server, reconnect or restart the MCP connection in your agent, or it keeps the old capability list.

Limits of local mode

  • Only one development server connection at a time.
  • On iOS, only simulators are supported, not physical devices.

A visual verification loop

Expo's own examples show the pattern: "Add a blue circle view and make sure it renders correctly", or "Add a counter button that increments on tap and verify the state updates".

The loop an agent follows is: write the code, take a screenshot with automation_take_screenshot, look at it, use automation_find_view to get a view's frame by testID, tap with automation_tap, screenshot again and compare. Give your views testID props, since the docs say a testID is more resilient to layout changes than screen coordinates. The screenshot is scaled (the cloud version captures at 0.3 scale), and the text returned alongside gives the scale and the tap unit, which is points on iOS and physical pixels on Android. A tap by coordinates must use those units, not the pixels of the scaled picture.

Security notes

  1. Your Expo account is the key. OAuth gives the agent what your account can do: builds, workflows, store submissions and replies. Use a team role with the least rights you can.
  2. Confirm every outward action. Store submissions, public review replies and review deletions affect your customers and your listing. Keep confirmation on, and read the preview.
  3. Spend is real. Builds, sandboxes and cloud simulators bill. Use usage_budget_create to set limits you approve, and check usage_budget_get before long jobs. The docs say available minutes exclude active reservations.
  4. Sandboxes run shell commands. sandbox_exec executes commands in a cloud environment. The tool descriptions warn that a lost response does not mean the command failed, so do not let the agent repeat it blindly.
  5. Reviews and crash logs are untrusted text. A user can write anything in a review. An agent that reads reviews and can also reply or run commands is a prompt injection target. Treat review text as data.
  6. Crash logs may hold personal data. TestFlight feedback includes device info and screenshots.
  7. Local mode exposes your running app. The tunnel connects your dev server to the agent. Use it on development builds, not on an app showing real customer data.
  8. Feedback command. Expo's docs include an agent instruction to run submit-expo-feedback when docs are wrong. Know that this sends text to Expo, and approve it like any other command.

Limits and known issues

  • Capability list may lag. The docs say so.
  • Search needs a paid EAS plan. Docs reading does not, per the table.
  • Local capabilities are SDK 54 and later.
  • Single dev server.
  • iOS simulators only for local automation.
  • Hosted dependency. The server is hosted by Expo. If Expo has an outage, the tools stop.
  • Unstable flag. EXPO_UNSTABLE_MCP_SERVER can change.
  • Open issues. The expo/expo-mcp repo showed 13 open issues, 9 stars and no tagged release on 31 October 2026.

Alternatives

Option

Use it when

Page

Playwright MCP

You test web apps, not native ones

Playwright MCP

Chrome DevTools MCP

You debug a web build in a browser

Chrome DevTools MCP

Context7 MCP

You want docs for many libraries, not only Expo

Context7 MCP

Sentry MCP

You track crashes with Sentry

Sentry MCP

Expo skills

You want guidance as files, not a server

Skills

Our take

We did not run this server for this page. This comes from Expo's docs and the repository.

It is a broad server for one platform, and the breadth is the point: docs, builds, crash data and simulator automation in one place means an agent can go from "why did the build fail" to "fix it and check the screen" without you switching tools. The loop of code, screenshot, tap and check is the most interesting part, because it gives an agent a way to test mobile UI at all.

The caution is the same as for any server with write tools that reach the public. Submitting builds and replying to store reviews should never run without a prompt you read. Start with the read tools, docs and build logs, and add the local simulator loop on a development build. Set a usage budget before you let an agent start cloud sandboxes.

A short setup checklist

  1. Make sure you have an Expo account and a project on the latest SDK.
  2. Add the server for your agent and authenticate.
  3. Ask a docs question, then ask it to list your recent builds.
  4. Create a usage budget before any billable tool.
  5. For local mode, install expo-mcp, log in, and start the dev server with the flag.
  6. Add testID props to the views you want tested.
  7. Keep confirmation on for store and review tools.

Related pages

Frequently asked questions

What is the Expo MCP server?

It is a remote MCP server hosted by Expo at https://mcp.expo.dev/mcp. It gives AI tools Expo docs, EAS build and workflow tools, store review and crash data, and, with a local package, simulator automation.

Do I need an Expo account?

Yes. The docs say an Expo account is required, and sign-in uses OAuth in the browser.

What are local capabilities?

Tools that need a running Expo dev server: screenshots, taps, DevTools, app logs and the Expo Router sitemap. They need SDK 54 or later and the expo-mcp package.

Is it free?

The docs say search_documentation requires an EAS paid plan. Cloud sandboxes and simulators are billed.

Can it submit my app to the stores?

The tool list includes build_submit, which submits a finished EAS build to the App Store or Google Play, and review reply tools. These are write actions.

Questions

What is the Expo MCP server?

It is a remote MCP server hosted by Expo at https://mcp.expo.dev/mcp. It gives AI tools Expo docs, EAS build and workflow tools, store review and crash data, and, with a local package, simulator automation.

Do I need an Expo account?

Yes. The docs say an Expo account is required, and sign-in uses OAuth in the browser.

What are local capabilities?

Tools that need a running Expo dev server: screenshots, taps, DevTools, app logs and the Expo Router sitemap. They need SDK 54 or later and the expo-mcp package.

Is it free?

The docs say search_documentation requires an EAS paid plan. Cloud sandboxes and simulators are billed. The docs name no other plan-limited tool.

Can it submit my app to the stores?

The tool list includes build_submit, which submits a finished EAS build to the App Store or Google Play, and review reply tools. These are write actions.

Loading poll...

Reviews

Loading reviews…

Write a review

Your rating

Up to 1000 characters. Stars alone are enough.

Sources

  1. docs.expo.dev/mcp.md
  2. docs.expo.dev/llms.txt
  3. github.com/expo/expo-mcp
  4. code.claude.com/docs/en/mcp
  5. developers.openai.com/codex/mcp
  6. antigravity.google/docs/mcp
  7. expo.dev/pricing
  8. docs.expo.dev/eas/ai/mcp/
  9. opencode.ai/docs/mcp-servers

Similar

  • browser-use MCP

    Browser Use is an open-source Python library for AI browser agents, and our entry covers its MCP route.

    • MCP server
    • Official

    browser-use · 119,597 stars

  • Scrapling MCP Server

    Scrapling is a Python web scraping framework from D4Vinci, described on GitHub as handling everything from a single request to a full-scale crawl, and this entry is its MCP server.

    • MCP server

    D4Vinci · 90,477 stars

  • Netdata MCP

    Netdata is an observability platform, and this entry is its hosted MCP endpoint at app.netdata.cloud, reached over streamable HTTP.

    • MCP server

    netdata · 81,227 stars

  • claude-flow MCP

    Claude Flow is published on npm as claude-flow, and its repository now sits at ruvnet/ruflo, which the GitHub description calls the original agent harness for deploying multi-agent swarms and coordinating autonomous workflows.

    • MCP server

    ruvnet · 80,298 stars

  • Context7 MCP

    Context7 is an MCP server from Upstash that serves up-to-date library documentation to coding agents, so the model reads current docs instead of guessing from training data.

    • MCP server

    upstash · 63,974 stars

  • Chrome DevTools MCP

    MCP server published on npm as chrome-devtools-mcp. Transports: stdio. Maintained in ChromeDevTools/chrome-devtools-mcp.

    • MCP server

    ChromeDevTools · 54,503 stars

Part of the Wbcom Designs family

The all-in-one WordPress community stack

Also ours: wbcomdesigns.comvapvarun.combrndle.com