# Expo — MCP server on mcp.ai > Your Expo and EAS project in natural language: up to date SDK docs, cloud builds (status, logs, trigger and cancel), EAS CI workflows, store submission and TestFlight data (crashes and feedback). Connect your Expo account in one click, no key or token. By: mcp.ai · official Page: https://mcp.ai/expo ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_expo?ms=1788881880000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/expo/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/expo/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/expo/skill.md Postman collection (v2.1): https://mcp.ai/expo/postman.json ## Tools - expo_add_library(projectRoot: string, libraryName: string) — Add an Expo library to the project using expo install and attach usage instructions when available - expo_build_cancel(buildId: string) — Cancels an EAS build that is queued or in progress. Use build_info to check the current status first. - expo_build_info(buildId: string) — Fetches the status and detailed information about a specific EAS build by ID. Use this to check build status, errors, artifacts, and other details. - expo_build_list(appId?: string, appFullName?: string, platform?: string, status?: string, limit?: number) — Lists EAS builds for a project. Provide either appId (from app.json "extra.eas.projectId") OR appFullName (e.g., "@owner/my-app"). Use this to see recent builds, their status, and available artifacts. - expo_build_logs(buildId: string) — Fetches the logs for a specific EAS build. The build must be completed (finished or errored) to have logs available. - expo_build_run(appId?: string, appFullName?: string, platform: string, buildProfile: string, gitRef: string, baseDirectory?: string, autoSubmit?: boolean, submitProfile?: string) — Triggers a new EAS build using a build profile from eas.json. Requires a GitHub repository to be connected to the project. Provide either appId (from app.json "extra.eas.projectId") OR appFullName (e. - expo_build_submit(appId?: string, appFullName?: string, buildId: string, platform: string, track?: string, ascAppIdentifier?: string) — Submits an EAS build to the app store (Google Play Store for Android, App Store for iOS). The build must be a finished build with the appropriate distribution type. Provide either appId (from app.json - expo_learn(topic: string) — Learn Expo how-to for a specific topic and remember it for future conversations. Use this to teach the assistant about specific Expo features or workflows. - expo_read_documentation(url: string, offset?: integer) — Fetch a single Expo documentation page and return its content as markdown. Returns up to ~5000 tokens per call. Use offset to paginate through long pages. - expo_search_documentation(query: string) — Search the official Expo documentation and return page URLs ranked by relevance for a user query. Use read_documentation to fetch the full content of specific pages, starting from the top. - expo_testflight_crashes(bundleId: string, crashId?: string, limit?: number) — Fetch TestFlight crash data. Without crashId, lists recent crashes. With crashId, returns the full crash log with stack trace. - expo_testflight_feedback(bundleId: string, limit?: number) — Fetch screenshot feedback from TestFlight. Returns feedback metadata including device info, user comments, and screenshot URLs. - expo_workflow_cancel(workflowRunId: string) — Cancels a running EAS workflow. Use workflow_info to get the workflow run ID. - expo_workflow_create(action: string, projectRoot?: string, fileName?: string, workflowYaml?: string) — Creates a new EAS workflow YAML file for Expo projects or fetches workflow syntax documentation. Use this when users want to create CI/CD workflows in .eas/workflows/ or need to learn EAS workflow syn - expo_workflow_info(workflowRunId: string) — Fetches detailed information about a specific EAS workflow run by ID. Use this to check the status, job results, errors, and artifacts of a workflow run. If workflow has multiple jobs, draw them in a - expo_workflow_list(appId?: string, appFullName?: string, status?: string, limit?: number) — Lists recent EAS workflow runs for a project. Provide either appId (from app.json "extra.eas.projectId") OR appFullName (e.g., "@owner/my-app"). - expo_workflow_logs(workflowRunId: string, jobKey: string, sectionIndex?: integer, phase?: string) — Fetches logs for a specific job in an EAS workflow run. Call without sectionIndex or phase to get a summary of log sections (phase names and line ranges); then call again with sectionIndex or phase to - expo_workflow_run(appId?: string, appFullName?: string, fileName: string, gitRef: string) — Triggers an EAS workflow run from a git reference. Provide either appId (from app.json "extra.eas.projectId") OR appFullName (e.g., "@owner/my-app"). The workflow file must exist at the specified git - expo_workflow_validate(appId?: string, appFullName?: string, workflowYaml: string) — Validates EAS workflow YAML syntax and configuration. Use this after creating a workflow to ensure it is valid. Provide either appId (from app.json "extra.eas.projectId") OR appFullName (e.g., "@owner ## Example prompts - "What's the status of my latest EAS build?" - "Show me the logs of the build that failed" - "List the recent TestFlight crashes for my app" ## Links Docs: https://mcp.ai/docs/mcps/expo Website: https://mcp.ai/mcps/expo