expo-mcp-server

CaullenOmdahl/expo-mcp-server

3.3

If you are the rightful owner of expo-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The Expo MCP Server facilitates programmatic interaction with Expo projects and EAS, providing tools for project management, development workflow, and cloud services.

Tools
16
Resources
0
Prompts
0

Expo MCP Server

npm version License: MIT MCP

Model Context Protocol server for Expo.dev — programmatically manage Expo projects and EAS services through AI assistants like Claude.

What It Does

This MCP server gives AI assistants full control over Expo/React Native development workflows:

CategoryCapabilities
Project SetupInitialize projects, install packages, configure apps, generate native code
Cloud BuildsTrigger iOS/Android builds, monitor progress, view logs, cancel builds
OTA UpdatesPublish updates to branches, manage channels, instant deployments
App SubmissionSubmit to App Store Connect and Google Play Console
DiagnosticsRun health checks, validate configurations

Quick Start

Install via Smithery

npx @smithery/cli install expo-mcp-server

Or Add to MCP Config

{
  "mcpServers": {
    "expo-dev": {
      "command": "npx",
      "args": ["-y", "expo-mcp-server"],
      "env": {
        "EXPO_TOKEN": "your_token_here"
      }
    }
  }
}

Get your token at expo.dev/settings/access-tokens

Tools

Project Management

  • expo_init_project — Create new Expo projects with templates
  • expo_install_packages — Install packages with version validation
  • expo_get_config — View and validate app configuration
  • expo_prebuild — Generate native iOS/Android directories

EAS Build

  • eas_build_create — Trigger cloud builds (iOS, Android, or both)
  • eas_build_list — List builds with filtering
  • eas_build_status — Get build status and logs
  • eas_build_cancel — Cancel in-progress builds

EAS Update (OTA)

  • eas_update_publish — Publish over-the-air updates
  • eas_update_list — List published updates
  • eas_channel_create — Create update channels

EAS Submit

  • eas_submit_ios — Submit to App Store Connect/TestFlight
  • eas_submit_android — Submit to Google Play Console

Utilities

  • expo_doctor — Run project diagnostics
  • expo_whoami — Check authentication status
  • eas_project_info — Get EAS project metadata

Resources

The server exposes documentation as MCP resources:

expo://docs/llms           # Complete Expo docs (LLM-optimized)
expo://docs/eas-build      # EAS Build guide
expo://docs/eas-update     # EAS Update guide
expo://docs/eas-submit     # EAS Submit guide
expo://docs/cli-reference  # Expo CLI reference

Example Workflows

"Build my app for both platforms"

→ eas_build_create(platform: "all", profile: "production")

"Push a hotfix to production"

→ eas_update_publish(branch: "production", message: "Fix auth bug")

"Submit the latest build to TestFlight"

→ eas_submit_ios(buildId: "abc-123")

Output Formats

All tools support:

  • markdown (default) — Human-readable tables
  • json — Structured data for processing

Development

git clone https://github.com/CaullenOmdahl/expo-mcp-server
cd expo-mcp-server
npm install
npm run build
npm run dev  # Run with Smithery playground

Architecture

src/
├── index.ts              # Server entry point
├── types.ts              # Shared schemas
├── resources/            # Documentation resources
├── tools/                # Tool implementations
│   ├── project.ts        # Project management
│   ├── build.ts          # EAS Build
│   ├── update.ts         # EAS Update
│   └── submit.ts         # EAS Submit
└── utils/                # CLI execution, formatting

Built with TypeScript, MCP SDK, and Zod validation.

Requirements

  • Node.js 18+
  • Expo account with access token

Links

License

MIT