expo-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@expo-mcpcheck my latest EAS build status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Expo MCP Monorepo
Model Context Protocol (MCP) server capabilities for Expo and EAS workflows.
This repository contains:
packages/expo-mcp: MCP tools, prompts, and docs resources for Expo projectspackages/mcp-tunnel: stdio/tunnel proxy layer for local and remote MCP transportexpo-mcp-server.mjs: dynamic launcher for Codex/Claude MCP config
What It Does
The Expo MCP server enables AI assistants to execute Expo and EAS operations:
Category | Capabilities |
Project Setup | Initialize projects, install packages, prebuild native folders, inspect config |
Cloud Builds | Create/list/view/cancel EAS builds |
OTA Updates | Publish/list updates and create channels |
App Submission | Submit iOS and Android builds |
Diagnostics | Run |
Docs Access | Search/fetch Expo docs and expose docs as MCP resources |
Related MCP server: Expo MCP Server
Requirements
Node.js
18+Bun (for local development scripts in this monorepo)
Expo account
EXPO_TOKENfor account/EAS actions in MCP toolsCreate token: expo.dev/settings/access-tokens
Quick Start
bun install
bun run buildMCP Setup
Use the dynamic launcher so manual server start is not required:
{
"mcpServers": {
"expo-mcp-demo": {
"command": "node",
"args": [
"D:/expo-mcp-demo/expo-mcp-server.mjs",
"--root",
"D:/expo-mcp-demo"
],
"env": {
"EXPO_TOKEN": "your_token_here"
}
}
}
}Optional launcher flags/env:
--root/EXPO_PROJECT_ROOT: Expo project root--dev-server-url/EXPO_DEV_SERVER_URL: explicit Metro URL--mcp-server-url/EXPO_MCP_SERVER_URL: tunnel server URL
Dynamic behavior:
If dev server URL is omitted, launcher auto-detects local Metro/Expo server.
If tunnel URL is present, server runs in composite mode (stdio + tunnel).
Otherwise server runs as stdio MCP only.
Tools
Project Management
expo_init_projectexpo_install_packagesexpo_get_configexpo_prebuild
EAS Build
eas_build_createeas_build_listeas_build_statuseas_build_cancel
EAS Update (OTA)
eas_update_publisheas_update_listeas_channel_create
EAS Submit
eas_submit_ioseas_submit_android
Utilities
expo_doctorexpo_whoamieas_project_info
Docs Tools
expo_docs_listexpo_docs_searchexpo_docs_get
Dev/Automation Tools
open_devtoolscollect_app_logsexpo_router_sitemapautomation_tapautomation_take_screenshotautomation_find_view_by_testidautomation_find_viewautomation_tap_by_testidautomation_take_screenshot_by_testidautomation_swipeautomation_scrollautomation_type_textautomation_press_key
MCP Resources
Docs resources exposed by the server:
expo://docs/llmsexpo://docs/llms-fullexpo://docs/llms-easexpo://docs/llms-sdkexpo://docs/llms-sdk-v53.0.0expo://docs/llms-sdk-v52.0.0expo://docs/llms-sdk-v51.0.0expo://docs/eas-buildexpo://docs/eas-updateexpo://docs/eas-submitexpo://docs/cli-reference
Output Formats
Expo/EAS tools support:
markdown(default)json
Development
Root
bun run build
bun run lint
bun run testPer package
cd packages/expo-mcp
bun run build
bun run lint
bun run test
bun run typecheckHow To Add a New Tool
Add tool implementation in
packages/expo-mcp/src/mcp/tools/expo/*.tsor relevant module.Register tool in
packages/expo-mcp/src/mcp/tools.ts.If tool needs docs references, update
packages/expo-mcp/src/mcp/tools/expoDocs.ts.Add/update output schema and error handling through
expo-utils.Run:
bun run typecheckinpackages/expo-mcpbun run buildinpackages/expo-mcpbun run lint --max-warnings=0in affected package(s)
Dependency Notes
Runtime CLI execution uses
npx expoandnpx eas-cli.EAS commands require
EXPO_TOKENand run non-interactive in MCP context.Transport layer supports both newline JSON and
Content-Lengthframing for MCP compatibility.
Troubleshooting
Authentication required for EAS commands:Set
EXPO_TOKENin MCP server environment.
No dev server found:Start Metro (
npx expo start) or setEXPO_DEV_SERVER_URL.
MCP startup/handshake issues:
Ensure launcher points to
expo-mcp-server.mjs.Rebuild changed packages (
bun run build).
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Your Expo and EAS project in natural language: up to date SDK docs, cloud builds (status, logs, trig
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Cloud macOS with Xcode for AI agents: run commands, build, test and ship iOS apps.
Deploy and manage Jade Hosting projects from AI clients. Jade account and OAuth required.
Related MCP Servers
- AlicenseBqualityCmaintenanceProvides programmatic access to Xcode functionality, enabling AI assistants to create, build, test, and manage iOS/macOS projects directly.334 npm5MIT
- AlicenseNot gradedqualityDmaintenanceEnables programmatic interaction with Expo/React Native projects and EAS (Expo Application Services) for managing builds, publishing OTA updates, submitting apps to stores, and accessing comprehensive documentation.6MIT
- AlicenseNot gradedqualityCmaintenanceEnables automated testing and development of Expo/React Native apps through session-based Expo dev server management and Maestro UI automation tools for tapping, text input, screenshots, and flow execution.236,906 npm5MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to access and search Expo documentation with semantic search and AI-enhanced code examples and explanations using Gemini AI.33MIT