MCP Directory

Expo MCP Server: Setup, Tools & Real Limits

Expo's first-party MCP server is worth using for live Expo and EAS context, but its write tools and still-experimental local bridge demand tighter controls than the quick-start suggests.

MCP Directory·August 4, 2026·6 min read
Close-up view of modern rack-mounted server units in a data center.
Photo by panumas nikhomkhai on Pexels

Expo MCP is Expo's official remote server for connecting an AI coding agent to current documentation, EAS operations, app-store data, and a local project. Use it for investigation and supervised development, not unattended releases: its tools can start paid builds, cancel jobs, submit binaries, and publish public review replies.

Table of contents

What Expo MCP actually is

Expo MCP gives an MCP-compatible agent a structured route into Expo's documentation and services. It does not add an AI model to Expo or replace source control and testing.

An agent can read current Expo docs, install an SDK-compatible library, inspect EAS builds and workflows, retrieve store crash data, and perform selected writes. With the local bridge, it can inspect routes, collect logs, open React Native DevTools, find a view by testID, tap it, and capture a simulator screenshot. Expo's official overview distinguishes server-side from local capabilities.

Remote access answers “why did the build fail?” Local access answers “did the button render and respond?” MCP Directory's capability guide explains how tools differ from prompts and resources. My view: use Expo MCP to gather evidence; keep the agent and CI responsible for the engineering process.

What exists today

Expo provides a first-party remote server at https://mcp.expo.dev/mcp. You do not need an unknown community server to reach Expo or EAS.

The official setup has two parts:

  • The hosted Streamable HTTP server provides documentation, EAS, TestFlight, App Store, and Google Play tools.
  • The official expo-mcp development dependency adds local logs, screenshots, taps, DevTools, and route inspection.

Expo warns that capabilities can change with package or server updates, and local mode uses an environment flag containing UNSTABLE. I would use hosted read tools with a team, but keep local automation in development and confirm consequential writes. Expo's AI agents overview explains how MCP, Expo Skills, and project context work together.

Community tools are complementary when you need physical-device coverage or richer profiling. Expo documents Callstack's agent-device as a separate third-party toolkit. For discovery beyond this integration, see our best MCP servers guide.

How to set up Expo MCP

Setup is a remote OAuth connection followed by an optional local package. Verify harmless read access before exposing a simulator.

Prerequisites

You need an Expo account, a current Expo project, and a client supporting remote MCP over Streamable HTTP. Local capabilities require SDK 54 or later.

Use the client's add-server workflow. The MCP Directory config generator can locate the right format, but the authoritative values are the remote URL, Streamable HTTP, and OAuth. Client schemas differ, so a generic mcpServers block may be wrong.

Remote connection and authentication

Connect the URL, complete browser authentication, and test a documentation read. Expo documents these commands:

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

Claude Code users then run /mcp; Codex prompts for authentication. In VS Code, choose MCP: Add Server, HTTP, and name the URL expo. The Expo setup page says browser sign-in creates the access token. It documents no user-selectable MCP OAuth scopes, so the account role is the practical least-privilege boundary.

Optional local capabilities

Local mode needs the official package, a matching Expo CLI login, and Expo's feature flag. Run:

npx expo install expo-mcp --dev
npx expo whoami || npx expo login
EXPO_UNSTABLE_MCP_SERVER=1 npx expo start

Both sessions must use the same Expo account. Reconnect the MCP client whenever the development server starts or stops; otherwise screenshot or tap tools may appear missing.

From below of contemporary high rise buildings with glass walls located on street with sunlight in modern district of city
Photo by Laura Tancredi on Pexels

Tools you get

Expo MCP exposes read and write tools based on your plan and whether local mode runs. These are confirmed names from Expo's current capability reference.

Tool nameWhat it doesRisk
read_documentationReturns one docs page as Markdown, with paginationRead
search_documentationFinds official docs URLs; paid EAS plan requiredRead
add_libraryInstalls a library with expo installProject write
build_list, build_info, build_logsLists, inspects, or retrieves completed build logsRead
build_run, build_cancel, build_submitStarts, cancels, or submits a buildCost/release
workflow_list, workflow_info, workflow_logsInspects workflow runs and logsRead
workflow_create, workflow_validate, workflow_run, workflow_cancelCreates or validates YAML and controls runsFiles/CI
testflight_crashes, testflight_feedbackReads crashes and screenshot feedbackSensitive read
appstore_reply_review, playstore_reply_reviewPublishes or replaces a public replyPublic write
collect_app_logs, open_devtoolsCollects logs or opens DevToolsLocal read
automation_find_view, automation_tap, automation_take_screenshotFinds, interacts with, or captures the appLocal action

The list also includes store reviews, Google Play crash/ANR data, App Store response deletion, and an Expo Router sitemap. Inspect the tools your client reports because the catalog can change.

Permissions and blast radius

Use a dedicated Expo organization member with the lowest workable role. Do not authenticate as an Owner for routine troubleshooting.

Expo says a personal access token acts across every personal account and organization its user can access. Organization roles are the useful control: Viewer cannot modify projects; Developer can create builds, release updates, and manage credentials; Admin and Owner can do more. Expo's programmatic-access documentation says tokens should be treated like passwords.

My default is a dedicated Developer in a non-production organization with client-side approval. Try Viewer for inspection. Keep production submissions and store replies in a separate manual session. A careless call can consume build credit, cancel a release, submit a binary, replace a public response, or send screenshots and logs through Expo.

Expo says it neither trains on MCP data nor runs the model, but it proxies local captures to the client. The client and model provider apply their own retention rules, so review them for sensitive workloads as Expo's privacy notes advise.

Real limits

Expo MCP is bounded by model context, backing services, platforms, and a changing catalog. It cannot make an agent deterministic or EAS unlimited.

read_documentation returns about 5,000 tokens per call and uses offset pagination. Build and workflow logs favor summary-first, section-by-section retrieval. Agents can miss evidence outside the fetched slice, so request specific failing phases rather than every log.

Expo publishes no separate requests-per-minute quota on its MCP setup page. Treat throttling as unspecified and expect underlying limits: EAS Build caps pending builds at 50 per platform per account and cancels jobs over two hours, according to its build limitations. Paid usage can incur overages, and documentation search plus build/workflow tools require a paid EAS plan.

Hard functional gaps include:

  • Only one local development-server connection at a time.
  • Local iOS support requires macOS and a simulator, not a physical iPhone.
  • build_logs works only for finished or errored builds.
  • build_run requires a connected GitHub repository.
  • Google Play exposes roughly one week of recent production reviews with text.
  • Coordinate taps and screenshots are not semantic test guarantees; prefer stable testID values.

When not to use it

Skip Expo MCP when static instructions, a deterministic CLI command, or repeatable CI can work with less authority. Use it when an agent must choose among live data or inspect a running app.

For SDK patterns and upgrades, Expo Skills plus project context may be enough without EAS or store access. For a fixed release pipeline, use reviewed workflow YAML and the EAS CLI instead of model-selected steps; Expo's EAS CLI reference is the source for scripts.

I would avoid local Expo MCP automation for cross-platform device QA because iOS is simulator-only and the bridge is single-server. A device framework better fits physical-device testing and deterministic artifacts. Browse MCP Directory's official collection when first-party maintenance is mandatory, but do not grant release authority based on an official badge. Use Expo MCP for scoped investigation and supervised changes; keep billing, submissions, and public communication under human review.

FAQ

Is Expo MCP an official Expo server?

Yes, Expo MCP is a first-party remote server hosted by Expo at `https://mcp.expo.dev/mcp`. Expo also publishes the `expo-mcp` package for optional local capabilities such as simulator screenshots, taps, logs, and DevTools access.

Is Expo MCP free to use?

Not entirely: the connection itself is not documented as a separate paid product, but some tools require a paid EAS plan and actions such as EAS builds can consume credits or incur usage charges. Check the account's billing limits before enabling `build_run`.

Is Expo MCP safe for production projects?

It can be safe with restricted access, but do not connect it as an Owner by default. Use a dedicated organization member, approve write calls, avoid exposing regulated logs or screenshots without policy review, and keep build submission and public review replies under human control.

Why are Expo MCP simulator tools missing?

They are usually missing because local capabilities are not connected. Install `expo-mcp` as a development dependency, log in to Expo CLI with the same account, start Expo with `EXPO_UNSTABLE_MCP_SERVER=1`, then reconnect the MCP client; local mode requires Expo SDK 54 or later.

Put this into practice

Browse MCP servers by capability, or check your own setup's tool budget and security.

More in Integrations

Browse all integrations articles.