Skip to content
Scalekit Docs
Talk to an EngineerDashboard

Expo MCP connector

OAuth2.1/DCRDeveloper Tools

Expo is a platform for building universal React Native apps; its MCP server exposes developer services including EAS builds, submissions, and project...

Expo MCP connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'expomcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Expo MCP:', link)
    process.stdout.write('Press Enter after authorizing...')
    await new Promise(r => process.stdin.once('data', r))
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'expomcp_build_list',
    toolInput: {},
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Validate workflow — Validates an EAS workflow YAML file for syntax and configuration errors
  • Run workflow, build — Triggers an EAS workflow run for a project
  • Logs workflow, build — Fetches logs for a specific job in an EAS workflow run
  • List workflow, build — Lists recent EAS workflow runs for a project
  • Info workflow, build — Fetches detailed information about a specific EAS workflow run by ID including status, job results, errors, and artifacts
  • Create workflow — Creates a new EAS workflow YAML file for Expo projects or fetches workflow syntax documentation

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

expomcp_add_library#Add an Expo library to the project using expo install and attach usage instructions when available.2 params

Add an Expo library to the project using expo install and attach usage instructions when available.

NameTypeRequiredDescription
libraryNamestringrequiredName of the Expo library to install
projectRootstringrequiredRoot directory of the Expo project
expomcp_appstore_delete_review_response#Delete the public developer response on an App Store customer review. No-op-safe — if the review has no response, it reports that nothing was deleted.1 param

Delete the public developer response on an App Store customer review. No-op-safe — if the review has no response, it reports that nothing was deleted.

NameTypeRequiredDescription
reviewIdstringrequiredThe ID of the customer review whose response should be deleted
expomcp_appstore_reply_review#Post or edit the public developer response to an App Store customer review. The response is visible to everyone on the App Store. Any existing response is replaced.2 params

Post or edit the public developer response to an App Store customer review. The response is visible to everyone on the App Store. Any existing response is replaced.

NameTypeRequiredDescription
responseBodystringrequiredThe response text, posted publicly as the developer response (max 5970 characters)
reviewIdstringrequiredThe ID of the customer review to respond to (from appstore_reviews)
expomcp_appstore_reviews#Fetch public App Store customer reviews for an app including rating, title, body, reviewer, and territory. For TestFlight beta feedback use testflight_feedback instead.3 params

Fetch public App Store customer reviews for an app including rating, title, body, reviewer, and territory. For TestFlight beta feedback use testflight_feedback instead.

NameTypeRequiredDescription
bundleIdstringrequiredThe bundle ID of the app e.g. com.example.myapp
cursorstringoptionalPagination cursor from a previous response
limitintegeroptionalMaximum number of reviews to return (default: 20, max: 100)
expomcp_build_cancel#Cancels an EAS build that is queued or in progress. Use build_info to check the current status first.1 param

Cancels an EAS build that is queued or in progress. Use build_info to check the current status first.

NameTypeRequiredDescription
buildIdstringrequiredThe ID of the build to cancel
expomcp_build_info#Fetches detailed information about a specific EAS build by ID including status, platform, artifacts, and logs URL.1 param

Fetches detailed information about a specific EAS build by ID including status, platform, artifacts, and logs URL.

NameTypeRequiredDescription
buildIdstringrequiredThe ID of the build to fetch details for
expomcp_build_list#Lists recent EAS builds for a project. Provide either appId (from app.json extra.eas.projectId) or appFullName (e.g. @owner/my-app).5 params

Lists recent EAS builds for a project. Provide either appId (from app.json extra.eas.projectId) or appFullName (e.g. @owner/my-app).

NameTypeRequiredDescription
appFullNamestringoptionalThe full name of the app e.g. @owner/my-app. Either appId or appFullName is required.
appIdstringoptionalThe Expo project/app ID (UUID). Either appId or appFullName is required.
limitnumberoptionalMaximum number of builds to return (default: 10, max: 100)
platformstringoptionalFilter builds by platform
statusstringoptionalFilter builds by status
expomcp_build_logs#Fetches the build logs for a specific EAS build. Returns log output to help debug build failures.1 param

Fetches the build logs for a specific EAS build. Returns log output to help debug build failures.

NameTypeRequiredDescription
buildIdstringrequiredThe ID of the build to fetch logs for
expomcp_build_run#Triggers a new EAS build using a build profile from eas.json. Requires a GitHub repository to be connected to the project.8 params

Triggers a new EAS build using a build profile from eas.json. Requires a GitHub repository to be connected to the project.

NameTypeRequiredDescription
buildProfilestringrequiredThe build profile name from eas.json e.g. development, preview, production
gitRefstringrequiredGit reference (branch name, tag, or commit SHA) to build from
platformstringrequiredThe platform to build for (ANDROID or IOS)
appFullNamestringoptionalThe full name of the app e.g. @owner/my-app. Either appId or appFullName is required.
appIdstringoptionalThe Expo project/app ID (UUID). Either appId or appFullName is required.
autoSubmitbooleanoptionalWhether to automatically submit the build after completion
baseDirectorystringoptionalBase directory for monorepos e.g. apps/mobile
submitProfilestringoptionalSubmit profile to use if autoSubmit is true
expomcp_build_submit#Submits an existing EAS build to the App Store (iOS) or Google Play (Android). Provide appId or appFullName, the buildId, and platform.6 params

Submits an existing EAS build to the App Store (iOS) or Google Play (Android). Provide appId or appFullName, the buildId, and platform.

NameTypeRequiredDescription
buildIdstringrequiredThe ID of the build to submit
platformstringrequiredThe platform to submit to (ANDROID or IOS)
appFullNamestringoptionalThe full name of the app e.g. @owner/my-app. Either appId or appFullName is required.
appIdstringoptionalThe Expo project/app ID (UUID). Either appId or appFullName is required.
ascAppIdentifierstringoptionalFor iOS: The App Store Connect app identifier (Apple ID of the app). Required for iOS submissions.
trackstringoptionalFor Android: The release track (internal, alpha, beta, production). Required for Android submissions.
expomcp_learn#Learn Expo how-to for a specific topic and remember it for future conversations.1 param

Learn Expo how-to for a specific topic and remember it for future conversations.

NameTypeRequiredDescription
topicstringrequiredThe Expo topic to learn about
expomcp_playstore_crashes#Fetch crash and ANR data from Google Play (Android Vitals). Without issueId, lists recent crash/ANR issues. With issueId, returns the full error report with stack trace.4 params

Fetch crash and ANR data from Google Play (Android Vitals). Without issueId, lists recent crash/ANR issues. With issueId, returns the full error report with stack trace.

NameTypeRequiredDescription
packageNamestringrequiredThe Android package name of the app e.g. com.example.myapp
cursorstringoptionalPagination cursor from a previous response
issueIdstringoptionalSpecific error issue ID to fetch the full report for. If omitted, lists recent issues.
limitintegeroptionalMaximum number of issues to list (default: 20, max: 100, ignored when issueId is provided)
expomcp_playstore_reply_review#Post a public developer reply to a Google Play user review, or edit the existing reply. Each review has a single developer reply, so replying again replaces it. Reply text is limited to 350 characters.3 params

Post a public developer reply to a Google Play user review, or edit the existing reply. Each review has a single developer reply, so replying again replaces it. Reply text is limited to 350 characters.

NameTypeRequiredDescription
packageNamestringrequiredThe Android package name of the app e.g. com.example.myapp
replyTextstringrequiredThe reply text, posted publicly as the developer reply (max 350 characters)
reviewIdstringrequiredThe ID of the review to reply to (from playstore_reviews)
expomcp_playstore_reviews#Fetch user reviews from Google Play including author, star rating, device info, and comment text. Note: Google Play only exposes production reviews with text from approximately the last week.3 params

Fetch user reviews from Google Play including author, star rating, device info, and comment text. Note: Google Play only exposes production reviews with text from approximately the last week.

NameTypeRequiredDescription
packageNamestringrequiredThe Android package name of the app e.g. com.example.myapp
cursorstringoptionalPagination cursor from a previous response
limitintegeroptionalMaximum number of reviews to return (default: 20, max: 100)
expomcp_read_documentation#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.2 params

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.

NameTypeRequiredDescription
urlstringrequiredURL of the Expo documentation page to fetch
offsetintegeroptionalCharacter offset to start reading from. Defaults to 0.
expomcp_testflight_crashes#Fetch TestFlight crash data. Without crashId, lists recent crashes. With crashId, returns the full crash log with stack trace.4 params

Fetch TestFlight crash data. Without crashId, lists recent crashes. With crashId, returns the full crash log with stack trace.

NameTypeRequiredDescription
bundleIdstringrequiredThe bundle ID of the app e.g. com.example.myapp
crashIdstringoptionalSpecific crash ID to fetch full details for. If omitted, lists recent crashes.
cursorstringoptionalPagination cursor from a previous response
limitintegeroptionalMaximum number of crashes to list (default: 20, max: 100, ignored when crashId is provided)
expomcp_testflight_feedback#Fetch screenshot feedback from TestFlight including device info, user comments, and screenshot URLs.3 params

Fetch screenshot feedback from TestFlight including device info, user comments, and screenshot URLs.

NameTypeRequiredDescription
bundleIdstringrequiredThe bundle ID of the app e.g. com.example.myapp
cursorstringoptionalPagination cursor from a previous response
limitintegeroptionalMaximum number of feedback submissions to return (default: 20, max: 100)
expomcp_workflow_cancel#Cancels an EAS workflow run that is queued or in progress.1 param

Cancels an EAS workflow run that is queued or in progress.

NameTypeRequiredDescription
workflowRunIdstringrequiredThe ID of the workflow run to cancel
expomcp_workflow_create#Creates a new EAS workflow YAML file for Expo projects or fetches workflow syntax documentation. Use when users want to create CI/CD workflows in .eas/workflows/ or need to learn EAS workflow syntax.4 params

Creates a new EAS workflow YAML file for Expo projects or fetches workflow syntax documentation. Use when users want to create CI/CD workflows in .eas/workflows/ or need to learn EAS workflow syntax.

NameTypeRequiredDescription
actionstringrequiredAction to perform: create to make a new EAS workflow YML file, learn to get syntax documentation
fileNamestringoptionalWorkflow file name e.g. build-and-deploy.yml (required for create action)
projectRootstringoptionalRoot directory of the project (required for create action)
workflowYamlstringoptionalComplete YAML content for the EAS workflow (required for create action)
expomcp_workflow_info#Fetches detailed information about a specific EAS workflow run by ID including status, job results, errors, and artifacts.1 param

Fetches detailed information about a specific EAS workflow run by ID including status, job results, errors, and artifacts.

NameTypeRequiredDescription
workflowRunIdstringrequiredThe ID of the workflow run to fetch details for
expomcp_workflow_list#Lists recent EAS workflow runs for a project. Provide either appId (from app.json extra.eas.projectId) or appFullName (e.g. @owner/my-app).4 params

Lists recent EAS workflow runs for a project. Provide either appId (from app.json extra.eas.projectId) or appFullName (e.g. @owner/my-app).

NameTypeRequiredDescription
appFullNamestringoptionalThe full name of the app e.g. @owner/my-app. Either appId or appFullName is required.
appIdstringoptionalThe Expo project/app ID (UUID). Either appId or appFullName is required.
limitnumberoptionalMaximum number of workflow runs to return (default: 10, max: 100)
statusstringoptionalFilter workflow runs by status
expomcp_workflow_logs#Fetches logs for a specific job in an EAS workflow run. Call without sectionIndex or phase to get a summary of log sections; then call again with sectionIndex or phase to fetch that section.4 params

Fetches logs for a specific job in an EAS workflow run. Call without sectionIndex or phase to get a summary of log sections; then call again with sectionIndex or phase to fetch that section.

NameTypeRequiredDescription
jobNamestringrequiredThe name of the job to fetch logs for
workflowRunIdstringrequiredThe ID of the workflow run
phasestringoptionalPhase name to fetch logs for
sectionIndexintegeroptionalIndex of the log section to fetch
expomcp_workflow_run#Triggers an EAS workflow run for a project. Provide either appId (from app.json extra.eas.projectId) or appFullName (e.g. @owner/my-app) and the workflow file name.4 params

Triggers an EAS workflow run for a project. Provide either appId (from app.json extra.eas.projectId) or appFullName (e.g. @owner/my-app) and the workflow file name.

NameTypeRequiredDescription
workflowFileNamestringrequiredThe workflow file name to run e.g. build-and-deploy.yml
appFullNamestringoptionalThe full name of the app e.g. @owner/my-app. Either appId or appFullName is required.
appIdstringoptionalThe Expo project/app ID (UUID). Either appId or appFullName is required.
gitRefstringoptionalGit reference (branch name, tag, or commit SHA) to run the workflow on
expomcp_workflow_validate#Validates an EAS workflow YAML file for syntax and configuration errors. Use after workflow_create to ensure the workflow is valid before running.2 params

Validates an EAS workflow YAML file for syntax and configuration errors. Use after workflow_create to ensure the workflow is valid before running.

NameTypeRequiredDescription
fileNamestringrequiredWorkflow file name to validate e.g. build-and-deploy.yml
projectRootstringrequiredRoot directory of the project