Skip to main content
Glama

react-native-expo-mcp

MCP server for React Native + Expo development with Claude Code.

Gives Claude deep knowledge about Expo Router, NativeWind, Zustand + MMKV, Axios, TanStack Query, EAS Build, performance optimization, and TypeScript patterns — so it automatically calls the right tool while you code.

Two ways to use this

Claude calls the tools automatically during development. No copy-paste needed.

git clone https://github.com/zahargusyatin/react-native-expo-mcp.git
cd react-native-expo-mcp
npm install && npm run build
claude mcp add --global react-native-expo -- node /path/to/react-native-expo-mcp/dist/index.js

After connecting, Claude will automatically call the right tool when you ask it to create a component, screen, store, API hook, etc.

Option B — Read the source docs directly

If you don't want to run an MCP server, the source material is in docs/. These are the original reference documents the MCP content is based on — you can paste them into any AI chat or read them yourself.

File

Contents

docs/best-practices.md

Architecture, Logic/UI separation, components, state, API, styling, navigation

docs/setup-tutorial.md

Step-by-step project setup (tools → EAS → CI/CD)

docs/callstack-optimization.md

Performance deep-dive: lists, memory, Concurrent React, Reanimated, bundle analysis


Related MCP server: Expo MCP Server

Tools (13 total)

Pattern tools — Claude calls these automatically while coding

Tool

Call when...

get-component-patterns

Creating a component, button, card, list item

get-screen-architecture

Creating a new screen or route

get-navigation-patterns

Working with routes, deep links, auth guard

get-state-patterns

Creating a Zustand store or working with global state

get-api-patterns

Creating API services or data fetching hooks

get-styling-patterns

Styling components with NativeWind

get-performance-patterns

Optimizing lists, images, bundle, animations

get-project-structure

Deciding where to place a new file

get-typescript-patterns

Writing types or interfaces

get-memory-optimization

Debugging memory leaks or performance issues

Setup tools — used once when creating a project

Tool

Purpose

setup-new-project

Step-by-step guide for creating a new Expo project from scratch

generate-project-files

Generates starter files (layouts, store, API client, screens, config)

generate-claude-md

Generates CLAUDE.md with project rules and MCP tool usage instructions

Prompt

init-mobile-project — interactive wizard that asks about your project and calls the right tools.


How automatic tool calling works

When you add generate-claude-md output to your project as CLAUDE.md, Claude knows to call tools automatically:

You: "Create a product card component"
Claude: calls get-component-patterns → reads Pressable, expo-image, React.memo patterns → writes correct code

You: "Add a catalog screen"
Claude: calls get-screen-architecture → reads Logic/UI separation rules → creates Route + ScreenUI files

You: "The list is laggy"
Claude: calls get-performance-patterns → reads LegendList, FlashList, getItemLayout → optimizes

Tech stack covered

  • Expo (Managed Workflow) + Expo Router (file-based routing)

  • TypeScript strict mode + path aliases

  • NativeWind v4 (Tailwind CSS for React Native)

  • Zustand + MMKV (state + persistence)

  • Axios + TanStack Query v5 (API + server state)

  • EAS Build + OTA Updates + GitHub Actions

  • react-native-reanimated, expo-image, LegendList / FlashList

  • React Compiler (React 19+), Concurrent React, memory profiling

License

MIT

Available Tools

13 tools
generate-claude-mdB

Generate a CLAUDE.md file with project rules for Claude Code. Includes tech stack overview, architecture rules, code conventions, and MCP tool usage instructions so Claude automatically calls the right pattern tools during development.

Inputs: appName (required), appDescription, features.

generate-project-filesA

Generate starter files for a NEW React Native + Expo Router project. Produces actual file contents: navigation layouts, Zustand store, API client, NativeWind config, TypeScript config, and sample screens.

Inputs: appName (required), features, includeCI.

get-api-patternsA

Get API and data fetching patterns (Axios + TanStack Query). Call this when creating API services or data fetching hooks. Covers Axios client with interceptors, domain-grouped services, custom query/mutation hooks, query key conventions, and QueryClient config. Use topic to get a specific section only.

Inputs: topic, compact.

get-component-patternsA

Get React Native component patterns. Call this when creating any component: button, card, list item, image, form input. Covers Pressable, expo-image, React.memo, React Compiler, composable pattern, and uncontrolled TextInput. Use topic to get a specific section only.

Inputs: topic, compact.

get-memory-optimizationA

Get memory optimization patterns. Call this when debugging memory leaks or performance issues. Covers useEffect cleanup (listeners, timers), closure memory leaks, React Native DevTools memory profiler, view flattening, R8 shrinking for Android, and a common memory leak sources checklist. Use topic to get a specific section only.

Inputs: topic, compact.

get-navigation-patternsA

Get Expo Router navigation patterns. Call this when working with routes, navigation, deep links, or auth guards. Covers file structure, layouts, AuthGuard, typed params, navigation API, deep linking, and layout groups. Use topic to get a specific section only.

Inputs: topic, compact.

get-performance-patternsA

Get performance optimization patterns. Call this when optimizing lists, images, bundle size, or animations. Covers LegendList/FlashList/FlatList, image optimization, tree-shaking, barrel exports, Concurrent React (useDeferredValue, useTransition), InteractionManager, and Reanimated worklets. Use topic to get a specific section only.

Inputs: topic, compact.

get-project-structureA

Get project folder structure and file placement guide. Call this when deciding where to place a new file. Covers the full folder tree, where to put screens/components/hooks/services/stores/types/constants, naming conventions, and import aliases. Use topic to get a specific section only.

Inputs: topic, compact.

get-screen-architectureA

Get screen architecture patterns (Logic/UI separation). Call this when creating a new screen or route. Covers the Route file + ScreenUI file split, naming conventions, and why it matters for testability and SOLID principles. Use topic to get a specific section only.

Inputs: topic, compact.

get-state-patternsA

Get state management patterns (Zustand + MMKV). Call this when creating a store or working with global state. Covers Zustand store setup, MMKV persistence adapter, selectors, useShallow, getState() for outside React, and store organization rules. Use topic to get a specific section only.

Inputs: topic, compact.

get-styling-patternsA

Get styling patterns (NativeWind / Tailwind CSS). Call this when styling components. Covers NativeWind v4 className approach, arbitrary values, cssInterop for third-party components, Tailwind config, JS constants, conditional styles, and setup checklist. Use topic to get a specific section only.

Inputs: topic, compact.

get-typescript-patternsA

Get TypeScript patterns for React Native. Call this when writing types or interfaces. Covers strict mode config, model types, API response types, route param typing, props interface naming, store types, generics for reusable hooks, as const, discriminated unions, and type guards. Use topic to get a specific section only.

Inputs: topic, compact.

setup-new-projectA

Get a step-by-step guide for creating a new Expo Router project from scratch. Covers: project creation, TypeScript strict mode + path aliases, NativeWind v4, folder structure, Zustand + MMKV, Axios + TanStack Query, environment variables, EAS Build, OTA Updates, CI/CD, and build/deploy commands.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 13 tools

    Disambiguation5/5

    Every tool has a clearly distinct purpose with no ambiguity. Tools are organized by specific domains like navigation, state management, styling, and performance, each targeting a unique aspect of React Native Expo development. The descriptions explicitly state when to call each tool, preventing misselection.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern with 'get-' or 'generate-' prefixes, except for 'setup-new-project' which still fits the pattern. The naming is highly predictable and readable, making it easy for agents to understand the tool's function at a glance.

    Tool Count5/5

    13 tools is well-scoped for a comprehensive React Native Expo development server. Each tool covers a critical area like project setup, patterns for components, navigation, state, and performance, ensuring no single tool is redundant and all are necessary for the domain.

    Completeness5/5

    The tool set provides complete coverage for React Native Expo development, from initial project generation and setup to detailed patterns for architecture, styling, performance, and memory optimization. It includes all major aspects like navigation, state management, API integration, and TypeScript, with no obvious gaps.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      An MCP server that streamlines the integration of the @appolabs/appo SDK into web applications by providing tools for code generation, setup validation, and debugging. It enables AI assistants to generate React hooks and components for mobile-web features like push notifications, biometrics, and native device APIs.
      21
      9 npm
      MIT
    • F
      license
      Not graded
      quality
      Not graded
      maintenance
      A Model Context Protocol server designed to streamline Expo and React Native development for AI assistants like Cursor and Claude. It provides a comprehensive suite of tools for project initialization, EAS builds, OTA updates, and development server management.
      1
      -