Expo
Your Expo and EAS project in natural language: up to date SDK docs, cloud builds (status, logs, trig
我該用這個嗎
品質與安全性
發現項目(2)
- LOW在 expo_learn 中
- LOW在 connect 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 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#"
}社群
證據