Expo

Your Expo and EAS project in natural language: up to date SDK docs, cloud builds (status, logs, trig

我該用這個嗎

品質與安全性

A
說明品質
97%
結構描述完整度
72%
命名品質
81%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

發現項目(2)

  • LOWTool 'expo_learn' description lacks action verb在 expo_learn 中
  • LOWTool 'connect' description lacks action verb在 connect 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~3,893Token(工具定義)
~723 B典型回應大小
顯著的注意力影響(128k 上下文的 3.04%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "expo-mcp": {
      "url": "https://api.mcp.ai/p_expo"
    }
  }
}

遠端端點

https://api.mcp.ai/p_expostreamable-http

它能做什麼

工具清單

工具(25)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟡expo_add_library(projectRoot, libraryName)

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

輸入結構描述

{
  "type": "object",
  "properties": {
    "projectRoot": {
      "type": "string"
    },
    "libraryName": {
      "type": "string"
    }
  },
  "required": [
    "projectRoot",
    "libraryName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢expo_read_documentation(url, offset)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string"
    },
    "offset": {
      "type": "number"
    }
  },
  "required": [
    "url"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢expo_search_documentation(query)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢expo_learn(topic)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "topic": {
      "type": "string",
      "enum": [
        "expo-router"
      ]
    }
  },
  "required": [
    "topic"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡expo_workflow_create(action, projectRoot, fileName, workflowYaml)

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 syntax. After creating, use workflow_validate to validate the file.

輸入結構描述

{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "create",
        "learn"
      ]
    },
    "projectRoot": {
      "type": "string"
    },
    "fileName": {
      "type": "string"
    },
    "workflowYaml": {
      "type": "string"
    }
  },
  "required": [
    "action"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢expo_workflow_info(workflowRunId)

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 diagram to show the dependencies between jobs.

輸入結構描述

{
  "type": "object",
  "properties": {
    "workflowRunId": {
      "type": "string"
    }
  },
  "required": [
    "workflowRunId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢expo_workflow_list(appId, appFullName, status, limit)

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

輸入結構描述

{
  "type": "object",
  "properties": {
    "appId": {
      "type": "string"
    },
    "appFullName": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "ACTION_REQUIRED",
        "CANCELED",
        "FAILURE",
        "IN_PROGRESS",
        "NEW",
        "SUCCESS"
      ]
    },
    "limit": {
      "type": "number"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢expo_workflow_logs(workflowRunId, jobKey, sectionIndex, phase)

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 fetch that section.

輸入結構描述

{
  "type": "object",
  "properties": {
    "workflowRunId": {
      "type": "string"
    },
    "jobKey": {
      "type": "string"
    },
    "sectionIndex": {
      "type": "number"
    },
    "phase": {
      "type": "string"
    }
  },
  "required": [
    "workflowRunId",
    "jobKey"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪expo_workflow_run(appId, appFullName, fileName, gitRef)

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 reference.

輸入結構描述

{
  "type": "object",
  "properties": {
    "appId": {
      "type": "string"
    },
    "appFullName": {
      "type": "string"
    },
    "fileName": {
      "type": "string"
    },
    "gitRef": {
      "type": "string"
    }
  },
  "required": [
    "fileName",
    "gitRef"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴expo_workflow_cancel(workflowRunId)

Cancels a running EAS workflow. Use workflow_info to get the workflow run ID.

輸入結構描述

{
  "type": "object",
  "properties": {
    "workflowRunId": {
      "type": "string"
    }
  },
  "required": [
    "workflowRunId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢expo_workflow_validate(appId, appFullName, workflowYaml)

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/my-app").

輸入結構描述

{
  "type": "object",
  "properties": {
    "appId": {
      "type": "string"
    },
    "appFullName": {
      "type": "string"
    },
    "workflowYaml": {
      "type": "string"
    }
  },
  "required": [
    "workflowYaml"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢expo_build_list(appId, appFullName, platform, status, limit)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "appId": {
      "type": "string"
    },
    "appFullName": {
      "type": "string"
    },
    "platform": {
      "type": "string",
      "enum": [
        "ANDROID",
        "IOS"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "CANCELED",
        "ERRORED",
        "FINISHED",
        "IN_PROGRESS",
        "IN_QUEUE",
        "NEW",
        "PENDING_CANCEL"
      ]
    },
    "limit": {
      "type": "number"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢expo_build_info(buildId)

Fetches the status and detailed information about a specific EAS build by ID. Use this to check build status, errors, artifacts, and other details.

輸入結構描述

{
  "type": "object",
  "properties": {
    "buildId": {
      "type": "string"
    }
  },
  "required": [
    "buildId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢expo_build_logs(buildId)

Fetches the logs for a specific EAS build. The build must be completed (finished or errored) to have logs available.

輸入結構描述

{
  "type": "object",
  "properties": {
    "buildId": {
      "type": "string"
    }
  },
  "required": [
    "buildId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡expo_build_submit(appId, appFullName, buildId, platform, track, ...)

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 "extra.eas.projectId") OR appFullName (e.g., "@owner/my-app").

輸入結構描述

{
  "type": "object",
  "properties": {
    "appId": {
      "type": "string"
    },
    "appFullName": {
      "type": "string"
    },
    "buildId": {
      "type": "string"
    },
    "platform": {
      "type": "string",
      "enum": [
        "ANDROID",
        "IOS"
      ]
    },
    "track": {
      "type": "string"
    },
    "ascAppIdentifier": {
      "type": "string"
    }
  },
  "required": [
    "buildId",
    "platform"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪expo_build_run(appId, appFullName, platform, buildProfile, gitRef, ...)

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.g., "@owner/my-app").

輸入結構描述

{
  "type": "object",
  "properties": {
    "appId": {
      "type": "string"
    },
    "appFullName": {
      "type": "string"
    },
    "platform": {
      "type": "string",
      "enum": [
        "ANDROID",
        "IOS"
      ]
    },
    "buildProfile": {
      "type": "string"
    },
    "gitRef": {
      "type": "string"
    },
    "baseDirectory": {
      "type": "string"
    },
    "autoSubmit": {
      "type": "boolean"
    },
    "submitProfile": {
      "type": "string"
    }
  },
  "required": [
    "platform",
    "buildProfile",
    "gitRef"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴expo_build_cancel(buildId)

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

輸入結構描述

{
  "type": "object",
  "properties": {
    "buildId": {
      "type": "string"
    }
  },
  "required": [
    "buildId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢expo_testflight_crashes(bundleId, crashId, limit)

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

輸入結構描述

{
  "type": "object",
  "properties": {
    "bundleId": {
      "type": "string"
    },
    "crashId": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    }
  },
  "required": [
    "bundleId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢expo_testflight_feedback(bundleId, limit)

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

輸入結構描述

{
  "type": "object",
  "properties": {
    "bundleId": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    }
  },
  "required": [
    "bundleId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢show_version

Show the current MCP platform and adapter versions.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡report_bug(message, context, conversation)

Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.

輸入結構描述

{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    },
    "context": {
      "default": "",
      "type": "string"
    },
    "conversation": {
      "default": "[]",
      "type": "string"
    }
  },
  "required": [
    "message"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢connect

Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢toolkit_info

Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡marketplace(action, query, mcp_id, limit, tier_slug, ...)

The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like "find an MCP that does X", "consulta um CPF", "is there a tool for Y". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login.

輸入結構描述

{
  "type": "object",
  "properties": {
    "action": {
      "default": "search",
      "type": "string",
      "enum": [
        "search",
        "describe",
        "install",
        "uninstall",
        "subscribe",
        "cancel",
        "resume",
        "report_bug",
        "request_mcp",
        "list_tools",
        "invoke",
        "search_prompts",
        "get_prompt",
        "publish_prompt"
      ]
    },
    "query": {
      "default": "",
      "type": "string"
    },
    "mcp_id": {
      "default": "",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "type": "number"
    },
    "tier_slug": {
      "default": "",
      "type": "string"
    },
    "immediate": {
      "default": false,
      "type": "boolean"
    },
    "cancel_reason": {
      "type": "string",
      "enum": [
        "too_expensive",
        "missing_features",
        "switched_service",
        "unused",
        "customer_service",
        "too_complex",
        "low_quality",
        "other"
      ]
    },
    "cancel_comment": {
      "default": "",
      "type": "string"
    },
    "message": {
      "default": "",
      "type": "string"
    },
    "report_context": {
      "default": "",
      "type": "string"
    },
    "conversation": {
      "default": "[]",
      "type": "string"
    },
    "request_name": {
      "default": "",
      "type": "string"
    },
    "request_details": {
      "default": "",
      "type": "string"
    },
    "tool_id": {
      "default": "",
      "type": "string"
    },
    "arguments": {
      "default": "{}",
      "type": "string"
    },
    "prompt_slug": {
      "default": "",
      "type": "string"
    },
    "prompt_vars": {
      "default": "{}",
      "type": "string"
    },
    "prompt_category": {
      "default": "",
      "type": "string"
    },
    "prompt_tool": {
      "default": "",
      "type": "string"
    },
    "prompt_title": {
      "default": "",
      "type": "string"
    },
    "prompt_description": {
      "default": "",
      "type": "string"
    },
    "prompt_body": {
      "default": "",
      "type": "string"
    },
    "prompt_targets": {
      "default": [],
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "claude",
          "chatgpt",
          "cursor",
          "lovable"
        ]
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡authenticate(token)

MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "<jwt>" } after the user pastes, or with no args to get the link.

輸入結構描述

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本25 個工具
已驗證未記錄版本25 個工具