Skip to main content
Glama

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 projects

  • packages/mcp-tunnel: stdio/tunnel proxy layer for local and remote MCP transport

  • expo-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 expo doctor, check auth, inspect EAS project metadata

Docs Access

Search/fetch Expo docs and expose docs as MCP resources

Related MCP server: SSH MCP Server

Requirements

  • Node.js 18+

  • Bun (for local development scripts in this monorepo)

  • Expo account

  • EXPO_TOKEN for account/EAS actions in MCP tools

Quick Start

bun install
bun run build

MCP 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_project

  • expo_install_packages

  • expo_get_config

  • expo_prebuild

EAS Build

  • eas_build_create

  • eas_build_list

  • eas_build_status

  • eas_build_cancel

EAS Update (OTA)

  • eas_update_publish

  • eas_update_list

  • eas_channel_create

EAS Submit

  • eas_submit_ios

  • eas_submit_android

Utilities

  • expo_doctor

  • expo_whoami

  • eas_project_info

Docs Tools

  • expo_docs_list

  • expo_docs_search

  • expo_docs_get

Dev/Automation Tools

  • open_devtools

  • collect_app_logs

  • expo_router_sitemap

  • automation_tap

  • automation_take_screenshot

  • automation_find_view_by_testid

  • automation_find_view

  • automation_tap_by_testid

  • automation_take_screenshot_by_testid

  • automation_swipe

  • automation_scroll

  • automation_type_text

  • automation_press_key

MCP Resources

Docs resources exposed by the server:

  • expo://docs/llms

  • expo://docs/llms-full

  • expo://docs/llms-eas

  • expo://docs/llms-sdk

  • expo://docs/llms-sdk-v53.0.0

  • expo://docs/llms-sdk-v52.0.0

  • expo://docs/llms-sdk-v51.0.0

  • expo://docs/eas-build

  • expo://docs/eas-update

  • expo://docs/eas-submit

  • expo://docs/cli-reference

Output Formats

Expo/EAS tools support:

  • markdown (default)

  • json

Development

Root

bun run build
bun run lint
bun run test

Per package

cd packages/expo-mcp
bun run build
bun run lint
bun run test
bun run typecheck

How To Add a New Tool

  1. Add tool implementation in packages/expo-mcp/src/mcp/tools/expo/*.ts or relevant module.

  2. Register tool in packages/expo-mcp/src/mcp/tools.ts.

  3. If tool needs docs references, update packages/expo-mcp/src/mcp/tools/expoDocs.ts.

  4. Add/update output schema and error handling through expo-utils.

  5. Run:

    • bun run typecheck in packages/expo-mcp

    • bun run build in packages/expo-mcp

    • bun run lint --max-warnings=0 in affected package(s)

Dependency Notes

  • Runtime CLI execution uses npx expo and npx eas-cli.

  • EAS commands require EXPO_TOKEN and run non-interactive in MCP context.

  • Transport layer supports both newline JSON and Content-Length framing for MCP compatibility.

Troubleshooting

  • Authentication required for EAS commands:

    • Set EXPO_TOKEN in MCP server environment.

  • No dev server found:

    • Start Metro (npx expo start) or set EXPO_DEV_SERVER_URL.

  • MCP startup/handshake issues:

    • Ensure launcher points to expo-mcp-server.mjs.

    • Rebuild changed packages (bun run build).

License

MIT

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SajidAlee1/expo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server