Build Mobile Apps using Codex/Codex and mobile foundations
Lesson 6 / 7 · 25 min · 0 / 4 exercises
Course contents
Walkthrough · 4 hands-on exercises

Expo's tools for coding agents

Connect Codex to Expo's MCP server and skills so it reads current Expo docs, checks builds, and screenshots your running app instead of guessing.

Models learn Expo from training data that's months or years old, and Expo changes every few months. Expo's own docs index for agents opens with a warning: “AI models and LLMs frequently provide outdated information about Expo.” As of November 2026, Expo ships several tools that give an agent current knowledge and real eyes on your app. This lesson wires them into Codex.

What Expo ships for agents

ToolWhat it gives CodexHow to add it
Expo MCP ServerTools to search and read Expo docs, inspect and trigger EAS builds and workflows, read TestFlight crashes and feedbackHosted at https://mcp.expo.dev/mcp; free on every Expo plan since May 2026, with a monthly usage allowance
Local capabilitiesScreenshots of your running app, taps and typing by testID, finding views, opening DevToolsnpx expo install expo-mcp --dev, then start the dev server with EXPO_UNSTABLE_MCP_SERVER=1 (SDK 54 and later)
Expo SkillsExpo-specific instructions that load when a task needs them, such as routing, native UI, upgrades and store submissionThe expo plugin for Codex, or npx skills add expo/skills for skills only
@expo/agent-cliAn experimental CLI built for agents on top of Expo CLI, EAS CLI and expo-doctornpx @expo/agent-cli@latest agents:setup
Docs as MarkdownEvery docs page as clean Markdown, plus an index at docs.expo.dev/llms.txtAppend .md to any docs URL

The MCP server and the skills do different jobs. MCP gives Codex tools: things it can call to fetch a docs page, list your builds or take a screenshot. Skills give it instructions: how Expo wants a task done, loaded only when relevant. The expo-overview skill is the entry point and routes Codex to more specific ones, such as expo-router, expo-ui, expo-upgrade and eas-app-stores. In Codex you can call a skill by name with $expo-overview or browse them with /skills.

Spot the problemsExercise 1 of 4

A model answered a Tipjar question from memory. Click the lines that are out of date as of November 2026.

Answer from a model without Expo's tools0 of 3 found

Server tools versus local tools

Most of the MCP server's tools talk to Expo's services and the stores, so they work with no dev server running: searching docs, listing builds, reading a build's logs, starting a workflow, pulling TestFlight crash reports and tester feedback. The local capabilities are different. They need the expo-mcp package in your project and a dev server started with the MCP flag, next to a simulator or emulator. That's what lets Codex take a screenshot, find a button by its testID, tap it, and check the result, which turns “I think the layout is fixed” into evidence.

Quick checkExercise 2 of 4

Which of these needs expo-mcp in the project and EXPO_UNSTABLE_MCP_SERVER=1 npx expo start running?

Give it eyes, but watch the three legs

Connecting an agent to your build and store accounts is powerful, and it changes your risk. The Expo MCP server can read private project data, it can read text written by strangers (tester feedback, store reviews), and some of its tools act in public: submitting a build, or replying to an App Store review. Security people call that combination the lethal trifecta. Explore it with Tipjar's setup.

Explore: Tipjar's Expo MCP setupExercise 3 of 4
123

The agent can't reach the outside world, so even if it's tricked, the data has nowhere to go.

Move the controls and watch what changes.

Quick checkExercise 4 of 4

You ask Codex to triage this week's TestFlight feedback. Which setup breaks the trifecta without losing the triage?

The agent CLI (experimental)

SDK 58 introduced @expo/agent-cli, which Expo describes as “built by agents and designed for agents.” It sits on top of Expo CLI, EAS CLI and expo-doctor. status answers whether the project is compatible with Expo Go without starting the app, dev starts the app with one command and decides when a build is needed, smoke runs dev, takes a screenshot and stops, and skills:sync sets up agent skills that packages ship inside node_modules. It's experimental, so tell Codex to use it in AGENTS.md and expect its output to change.

Steps · 0 / 5 done
  1. Install the Expo plugin for Codex

    The plugin bundles Expo's skills and registers the Expo MCP server. You can also browse for it with /plugins inside a session.

    bash
    codex plugin add expo@openai-curated
    Verify/plugins in a new Codex session lists the Expo plugin as installed.
  2. Sign the MCP server in to your Expo account

    Authenticate once in the browser. Without the plugin, add the server yourself first with codex mcp add expo --url https://mcp.expo.dev/mcp.

    bash
    codex mcp login expo
    Verify/mcp shows expo connected, and asking “search the Expo docs for NativeTabs” returns docs links.
  3. Turn on local capabilities

    Add the dev-only package, then start the dev server with the MCP flag while the simulator is running Tipjar.

    bash
    npx expo install expo-mcp --dev
    EXPO_UNSTABLE_MCP_SERVER=1 npx expo start
    VerifyAsk Codex to “take a screenshot of the running app” and it shows you Tipjar's home screen.
  4. Try the agent CLI

    Run the setup once, then check the project's status. Remember it's experimental.

    bash
    npx @expo/agent-cli@latest agents:setup
    npx @expo/agent-cli status
    Verifystatus reports whether Tipjar can run in Expo Go and suggests next steps.
  5. Tell Codex in AGENTS.md

    Add two lines so every session uses the tools without being reminded.

    markdown
    ## Expo tools
    - Check Expo questions against the Expo MCP docs tools before answering from memory.
    - After visual changes, take a screenshot with the Expo MCP tools and describe what you see.
    VerifyIn a fresh session, a layout change ends with Codex attaching a screenshot without being asked.
Check your understanding
Q1. Codex suggests fixing a native build problem by running expo eject. What's the best next move?
Q2. What's the difference between the Expo plugin for Codex and npx skills add expo/skills?
· Tick off the 5 step(s) above.
· Work through the 4 remaining exercises above (stuck? each one can show you the answer).
· Score 100% on the quiz.
Vocabulary in this lesson

Plain-English definitions from the AI Coding Dictionary.