Expo MCP Server, Expo's hosted MCP server
Lets Claude Code, Cursor or Claude read Expo docs, run and fix EAS builds, and test your app in a simulator. Sign in with your Expo account.
This is Expo's own connection for AI coding assistants, and Expo runs it for you. Your assistant can read current Expo docs, start and check EAS builds and workflows, look at crash reports and app performance, and, with a small package in your project, take screenshots and tap through your app in a simulator. It can also submit builds to the stores and reply to app reviews in public, and some tools cost money, so check each action before you approve it.
Good for
- React Native developers building with Expo in Claude Code, Cursor, VS Code or Codex
- Teams on EAS who want an assistant to start builds and explain why one failed
- Developers who want the assistant to check its UI changes with screenshots and taps
- App owners tracking crashes, startup speed and store reviews after a release
Works in
5 supported · 9 should work
Tap an app to see how to set it up and any known problems.
Expo's docs cover it: add the server with one command or install the expo plugin, then run /mcp to sign in.
Known problems
- Closed
Sometimes misreads screenshots taken by the local tools
Reported Mar 2026 · GitHub
Expo's docs cover it: add Expo from Claude's connector directory and sign in with your Expo account. docs.expo.dev
Expo's docs cover it: use the one-click install link, then sign in with your Expo account. docs.expo.dev
Expo's docs cover it: run MCP: Add Server, choose HTTP and enter the Expo address. docs.expo.dev
Expo's docs cover it: add the Expo address with codex mcp add, or install the expo plugin, then sign in. docs.expo.dev
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Install Expo MCP
Claude Code
- 1
Copy this prompt.
Add the Expo MCP server to Claude Code. Run this command: claude mcp add --transport http expo https://mcp.expo.dev/mcp Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires An Expo account, Sign-in with your Expo account.
Run /mcp in Claude Code to sign in. If you installed Expo's expo plugin, it already adds this server; just run /mcp. For screenshots, taps and logs, also add the local tools to your project (SDK 54 or later): run npx expo install expo-mcp --dev, make sure npx expo whoami shows the same Expo account, then start the dev server with EXPO_UNSTABLE_MCP_SERVER=1 npx expo start. Reconnect the server in your AI app whenever you start or stop the dev server.
From the vendor's docs. Source.
Tools
Searches the official Expo docs for pages about your question
Searches Expo's documentation and returns the most relevant pages. Needs an EAS paid plan.
Try: “Search the Expo docs for implementing deep linking”
Read ·
search_documentationReads one Expo docs page in full
Fetches a single Expo documentation page as text, in parts for long pages.
Try: “Read the Expo Router docs page”
Read ·
read_documentationLists recent EAS builds for a project and their status
Lists the EAS builds for a project, with their status and download links.
Try: “List the recent builds for this project”
Read ·
build_listShows the status and details of one build
Gets the status, errors and files of a specific EAS build.
Try: “Get the status of my latest iOS build”
Read ·
build_infoReads the logs of a finished or failed build
Fetches the logs of an EAS build once it has finished or failed.
Try: “Show me the logs for the failed build”
Read ·
build_logsStarts a new EAS build from a build profile
Starts a new EAS build using a profile from eas.json. The project needs a connected GitHub repository.
Try: “Run a production build for iOS”
Write ·
build_runCancels a build that is queued or running
Cancels an EAS build that has not finished yet.
Try: “Cancel the build that is currently in progress”
Write ·
build_cancelSubmits a finished build to the App Store or Google Play
Sends a finished EAS build to the App Store (iOS) or Google Play (Android) for release.
Try: “Submit the latest build to the App Store”
Write ·
build_submitLists recent EAS workflow runs for a project
Lists the latest EAS workflow runs for a project.
Try: “List the recent workflow runs”
Read ·
workflow_listShows the status, jobs and errors of a workflow run
Gets the status, job results, errors and files of an EAS workflow run.
Try: “Get the status of the latest workflow run”
Read ·
workflow_infoReads the logs of a job in a workflow run
Fetches the logs for one job in an EAS workflow run, a section at a time.
Try: “Show me the logs for the build job in the workflow”
Read ·
workflow_logsStarts an EAS workflow from a branch or commit
Runs an EAS workflow from a git branch, tag or commit where the workflow file exists.
Try: “Run the build-and-deploy workflow”
Write ·
workflow_runCancels a running workflow
Stops an EAS workflow run that is still going.
Try: “Cancel the running workflow”
Write ·
workflow_cancelChecks a workflow file for mistakes
Checks an EAS workflow file's syntax and settings so you can fix errors before running it.
Try: “Validate my workflow file”
Read ·
workflow_validateLists app versions seen in production, with usage counts
Lists the app versions EAS Observe has seen, with build numbers, event counts and unique users.
Try: “List the app versions Observe has seen in the last 30 days”
Read ·
observe_versionsCompares startup and other speed metrics across versions
Compares EAS Observe performance numbers, such as app startup time, by app version and platform.
Try: “Did startup get slower in the latest iOS release?”
Read ·
observe_metrics_summaryFinds individual slow launches or screen loads
Finds individual performance samples, such as the slowest app launches, filtered by release and platform.
Try: “Find the slowest cold launches this week”
Read ·
observe_metricsCompares how fast each screen loads
Compares navigation routes by how long screens take to load and become usable, per platform.
Try: “Which routes have the worst time to interactive on Android?”
Read ·
observe_routesLists the custom events your app sends
Discovers the custom events your app logs to EAS Observe, with counts and first and last seen times.
Try: “Which custom events is the app emitting?”
Read ·
observe_event_namesReads the custom events your app sent
Reads custom events from EAS Observe, including their properties and session IDs.
Try: “Show the latest onboarding.completed events”
Read ·
observe_eventsShows the timeline of one user session
Reads one session's performance samples, custom events and errors in order.
Try: “Show the timeline for the session behind that slow launch”
Read ·
observe_sessionLists recent TestFlight crashes or opens a crash log
Fetches TestFlight crash data, either a list of recent crashes or the full log for one crash.
Try: “Show me recent TestFlight crashes”
Read ·
testflight_crashesReads screenshot feedback from TestFlight testers
Fetches tester feedback from TestFlight, with device details, comments and screenshot links.
Try: “Show TestFlight feedback for my app”
Read ·
testflight_feedbackReads your public App Store reviews
Fetches customer reviews from the App Store, with rating, title, text, reviewer and country.
Try: “Show this week's App Store reviews”
Read ·
appstore_reviewsPosts or edits your public reply to an App Store review
Writes the public developer response to an App Store review, replacing any earlier one. It shows a preview first and posts only after you confirm.
Try: “Reply to the latest 1-star review and thank them for the report”
Write ·
appstore_reply_reviewDeletes your public reply to an App Store review
Removes your developer response from an App Store review. It shows a preview first and deletes only after you confirm.
Try: “Delete our reply to that review”
Delete ·
appstore_delete_review_responseLists Android crashes and freezes from Google Play
Fetches crash and app-not-responding reports from Google Play, or the full report for one issue.
Try: “Show me the top Android crashes this week”
Read ·
playstore_crashesReads recent Google Play reviews
Fetches Google Play reviews with rating, device and text. Google only shares reviews from about the last week.
Try: “What are people saying in Google Play reviews?”
Read ·
playstore_reviewsPosts or edits your public reply to a Google Play review
Writes a public developer reply to a Google Play review, replacing any earlier one, up to 350 characters. It shows a preview first.
Try: “Reply to the review complaining about login”
Write ·
playstore_reply_reviewStarts a paid cloud simulator to run your app
Starts a billed EAS Simulator session in the cloud, which can open your dev server. Idle sessions stop after 10 minutes by default.
Try: “Start an iOS simulator in the cloud and open my dev build”
Write ·
simulator_startChecks a cloud simulator's status and viewing link
Gets a cloud simulator session's status and the dashboard link where you can watch the device.
Try: “Is the cloud simulator ready yet?”
Read ·
simulator_getLists cloud simulator sessions for a project
Lists EAS Simulator sessions for a project, newest first, filtered by platform or status.
Try: “List my running cloud simulators”
Read ·
simulator_listStops a cloud simulator session
Stops an EAS Simulator session so it stops running.
Try: “Stop the cloud simulator”
Write ·
simulator_stopTakes a screenshot of your app on a simulator or device
Captures the screen of a cloud simulator, or of your local simulator through the expo-mcp package, so the assistant can check the UI.
Try: “Take a screenshot and check the blue circle is showing”
Read ·
automation_take_screenshotTaps a button or spot on the app's screen
Taps the screen at a position or on the view with a given test ID, on a cloud simulator or your local one.
Try: “Tap the Sign up button”
Write ·
automation_tapTypes text into a field in your app
Types text into a field on a cloud simulator or your local device, or into the field that has focus.
Try: “Type test@example.com into the email field”
Write ·
automation_typeScrolls the app's screen
Scrolls up, down, left or right on a cloud simulator or your local device.
Try: “Scroll down to the bottom of the settings screen”
Write ·
automation_scrollFinds an element on screen and reports where it is
Finds a view by its test ID or accessibility label and reports its position and whether it is visible and tappable.
Try: “Is the checkout button visible?”
Read ·
automation_find_viewCollects logs from your running app
Collects native device logs and JavaScript console output for a short time to debug crashes and errors. Needs the local expo-mcp setup.
Try: “Collect app logs from the iOS simulator”
Read ·
collect_app_logsOpens React Native DevTools for your running app
Opens React Native DevTools to debug JavaScript, inspect components and see console output. Needs a running dev server.
Try: “Open devtools”
Runs code ·
open_devtoolsLists all the screens and routes in your app
Lists every route in your Expo Router project so the assistant knows which screens exist. Needs the local setup and expo-router.
Try: “Show me all the routes in my app”
Files ·
expo_router_sitemapStarts a paid cloud machine for your project
Creates a billed EAS sandbox, a cloud environment for your project where commands can run.
Try: “Start a sandbox for this project”
Write ·
sandbox_createRuns a shell command in a cloud sandbox
Runs a shell command inside a running EAS sandbox.
Try: “Run the test suite in the sandbox”
Runs code ·
sandbox_execReads output from or sends input to a sandbox command
Reads the output of a running sandbox command or sends it more input.
Try: “Answer yes to the prompt in the sandbox”
Runs code ·
sandbox_write_stdinReads a text file or image from a sandbox
Reads a text file or a PNG, JPEG, GIF or WebP image from a running sandbox.
Try: “Show me the test report file from the sandbox”
Read ·
sandbox_read_fileSaves a file from a sandbox for download
Uploads one file from a running sandbox as a downloadable artifact. A sandbox can keep 20.
Try: “Save the build output from the sandbox”
Write ·
sandbox_artifact_createGets a download link for a sandbox file
Reads a saved sandbox artifact and returns a fresh download link, even after the sandbox stops.
Try: “Give me the download link for that artifact”
Read ·
sandbox_artifact_getLists files saved from a sandbox
Lists a sandbox's saved artifacts, newest first.
Try: “What files did the sandbox save?”
Read ·
sandbox_artifact_listLists cloud sandboxes for a project
Lists the EAS sandboxes for a project, newest first, optionally by status.
Try: “List my sandboxes”
Read ·
sandbox_listStops a cloud sandbox
Asks EAS to stop a sandbox, which can interrupt commands that are still running.
Try: “Stop the sandbox”
Write ·
sandbox_stopUsed by the assistant behind the scenes
Waits until a sandbox is ready or stopped
Waits for a sandbox to be running, stopped or failed, and reports its status.
Read ·
sandbox_waitChecks your usage limits and what is left
Returns your usage limits and how much is still available for paid features.
Try: “How many simulator minutes do I have left?”
Read ·
usage_budget_getSets a spending limit for paid actions in this task
Creates a usage budget with limits you approve, used for metered tools like sandboxes and cloud simulators.
Try: “Set a budget of 30 simulator minutes for this task”
Write ·
usage_budget_create
From the official docs
Pros and cons
Good
- Built and run by Expo, with nothing to install for the main features.
- Your assistant reads current Expo docs instead of guessing from old training data.
- It can find out why an EAS build or workflow failed and read its logs.
- With the local package, it checks its own UI changes with screenshots and taps.
- It pulls crash reports, startup metrics and store reviews into the chat.
Watch out
- Searching the docs needs an EAS paid plan.
- Cloud sandboxes and simulator sessions are billed.
- Local iOS tools work only in simulators on a Mac.
- Windows users report the local automation tools failing.
- Only one development server can be connected at a time.
- Expo says the tools may change without notice.
Permissions
medium risk · 5 things to watch
Medium risk
Your assistant can start builds, submit apps to the stores, post public replies to reviews and start cloud machines that cost money, all from your Expo account. Turn on your AI app's setting that asks before each action, and read every store reply before you approve it.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It can start builds and submit to the stores
It can run and cancel EAS builds and workflows, and send a finished build to the App Store or Google Play. Approve these one at a time. docs.expo.dev
It can post public replies to app reviews
Replies on the App Store and Google Play are public and replace any earlier reply. The first call shows a preview, so read it before you confirm. docs.expo.dev
Some tools cost money
Cloud sandboxes and EAS Simulator sessions are billed. Set a usage budget and stop sessions you no longer need. docs.expo.dev
It can run commands in cloud sandboxes
It can run shell commands inside an EAS sandbox it starts. Check commands before you approve them. docs.expo.dev
Screenshots pass through Expo's server
Local screenshots and logs travel through Expo's server to your AI app. Expo says it does not train AI models on this data. docs.expo.dev
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Talks to | mcp.expo.dev; local screenshots and logs are proxied through Expo's server to your AI app |
|---|---|
| Sign-in and keys | Access token generated after browser sign-in with your Expo account, kept by your AI app. |
| Data retention | Expo says it does not use data sent to the MCP server to train AI models; your AI app and its model provider apply their own retention. |
| Scopes |
|
Alternatives
Use Expo's own server; it is the only one that reaches your EAS builds, crash data and store reviews. Add Expo Agent Bridge only if you want the assistant to tap through your app on a real phone.
| Server | Official | Runs | Sign-in | Tools | Popularity |
|---|---|---|---|---|---|
| Expo MCP ServerThis page | Official | Hosted | Expo account | 53 | – |
| Expo Agent Bridge | Community | Local | – | – | 182/wk |
What people say
People find it helpful to have current Expo knowledge in their assistant, and most complaints are about the local simulator tools on Windows.
What people like
- Gives the assistant current Expo docs and patterns
Common complaints
- Local automation tools fail on Windows
- Cannot choose which device to use when several simulators are running
- Workflow runs cannot pass custom inputs
Questions
What is the Expo MCP server URL?
https://mcp.expo.dev/mcp. You sign in with your Expo account in the browser the first time.
Is Expo MCP free?
Mostly. You need an Expo account, and searching the docs needs an EAS paid plan. Cloud sandboxes and simulator sessions are billed.
Do I need to install expo-mcp in my project?
Only for the local tools, such as screenshots, taps, app logs and DevTools. They need SDK 54 or later and a dev server started with MCP turned on, as shown in the install box.
Why don't the screenshot and tap tools show up?
They only appear while your dev server runs with MCP turned on. Reconnect the server in your AI app each time you start or stop the dev server.
Does it work on Windows or with a real iPhone?
The connection works anywhere, but local iOS tools need a Mac and a simulator, not a physical iPhone. Windows users report the local automation tools failing.
Can it submit my app to the App Store?
Yes. It can send a finished EAS build to the App Store or Google Play, so approve that step yourself.
Is it safe to connect Expo to my AI assistant?
It acts on your Expo account and can post public review replies and start paid sessions. Keep your AI app asking before each action, and read previews before you confirm.
Does Expo train AI on my data?
No. Expo says it does not use data sent to the MCP server to train models, but your AI app's provider has its own rules.
Examples
Find out why the latest iOS build failed
Investigate why my most recent iOS build on EAS failed
SourceCheck startup speed after a release
Did startup get slower in the latest release?
SourceBuild a UI change and check it with a screenshot
Add a blue circle view and make sure it renders correctly
SourceReview recent TestFlight crashes
Show me recent TestFlight crashes
Source
Information
updated Nov 2, 2026
- Publisher
- Official
- Transport
- Streamable HTTP
- Auth
- OAuth
- Last commit
- Jul 29, 2026
Other Expo MCP servers
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 6Hide
- Using Model Context Protocol (MCP) with Expo · docs.expo.dev
- GitHub · github.com
- GitHub · github.com
- Hacker News · news.ycombinator.com
- GitHub · github.com
- GitHub · github.com