---
modificationDate: October 27, 2026
title: Querying with the Expo MCP Server
description: Query EAS Observe metrics, events, and sessions from an AI agent through the Expo MCP Server.
---

This documentation is available as Markdown for AI agents and LLMs. See the [full Markdown index](https://docs.expo.dev/llms.txt) or append .md to any documentation URL.

# Querying with the Expo MCP Server

Query EAS Observe metrics, events, and sessions from an AI agent through the Expo MCP Server.

<AgentInstructions>

## Submitting Feedback

If you encounter errors, misleading or outdated information, report it so Expo can be improved:

Preferred command:
npx --yes submit-expo-feedback@latest --category docs --subject "/eas/observe/mcp/" "<actionable feedback>"

Direct HTTP fallback:
curl -X POST https://api.expo.dev/v2/feedback/docs-send -H 'Content-Type: application/json' -d '{"url":"/eas/observe/mcp/","feedback":"🤖 Agent feedback for docs: <specific, actionable description> (<model>, <harness>)"}'

Only submit when you have something specific and actionable to report. Try to give the most context.

## Navigation

When answering a related or follow-up question, fetch the relevant page below as Markdown (.md) instead of guessing; use llms.txt for the full map.

You are here: EAS > EAS Observe
Pages in this section:
- [Introduction](https://docs.expo.dev/eas/observe/introduction.md)
- [Get started](https://docs.expo.dev/eas/observe/get-started.md)
- [Dashboard](https://docs.expo.dev/eas/observe/dashboard.md)
- [EAS CLI](https://docs.expo.dev/eas/observe/eas-cli.md)
- [MCP](https://docs.expo.dev/eas/observe/mcp.md) (this page)
- [Update downloads](https://docs.expo.dev/eas/observe/eas-update.md)
- [Events](https://docs.expo.dev/eas/observe/events.md)
- [Errors](https://docs.expo.dev/eas/observe/errors.md)
- [Configuration](https://docs.expo.dev/eas/observe/configuration.md)
Full documentation tree: [llms.txt](https://docs.expo.dev/llms.txt)

</AgentInstructions>

The [EAS Observe dashboard](https://docs.expo.dev/eas/observe/dashboard.md) and the [`eas observe` commands](https://docs.expo.dev/eas/observe/eas-cli.md) show metrics, events, and sessions. AI agents can query the same data through the [Expo Model Context Protocol (MCP) Server](https://docs.expo.dev/mcp.md). Connect the server once, and your agent can compare releases, find slow sessions, and read user-defined events for your app. The agent uses the Expo account you sign in with, so it does not need an access token or the EAS CLI.

## Prerequisites

#### Prerequisites

##### An app already using EAS Observe

Follow [Get started](https://docs.expo.dev/eas/observe/get-started.md) to install `expo-observe` and create your first build.

##### The Expo MCP Server connected to your AI-assisted tool

Follow [Installation and setup](https://docs.expo.dev/mcp.md#installation-and-setup) and sign in with an Expo account that has access to the project.

## Tools

Each tool is read-only and maps to one `eas observe` command:

| Tool | What it returns | EAS CLI equivalent |
| --- | --- | --- |
| `observe_versions` | App versions with build numbers, EAS Build and EAS Update IDs, event counts, and unique user counts | `eas observe:versions` |
| `observe_metrics_summary` | Aggregated statistics per app version and platform: event count, min, max, median, average, p80, p90, and p99 | `eas observe:metrics-summary` |
| `observe_metrics` | Individual metric samples, ordered by time or value, with device, network, and session details | `eas observe:metrics` |
| `observe_routes` | Navigation metrics grouped by route name: counts, medians, and p90 for cold render, warm render, and interactive | `eas observe:routes` |
| `observe_event_names` | User-defined event names with counts and first and last seen times | `eas observe:events` |
| `observe_events` | Individual user-defined events with properties, severity, and session IDs | `eas observe:events <name>` |
| `observe_session` | The full metric and log timeline for one session | `eas observe:session` |

Timing values are in seconds. `observe_metrics_summary` and `observe_routes` keep Android and iOS results separate, so one platform cannot hide a regression on the other.

### Shared inputs

Every tool except `observe_session` accepts these inputs. The agent fills them in from your prompt:

-   `appId` or `appFullName`: the project to query. When the agent runs inside the project directory, it reads the project ID from the app config. Otherwise, name the project, such as `@owner/my-app`.
-   `platform`: one of `ANDROID`, `IOS`, `IPADOS`, `MACOS`, or `TVOS`. Without it, `observe_versions`, `observe_metrics_summary`, and `observe_routes` return separate Android and iOS results, and the other tools return results from all platforms.
-   `days`, or `start` and `end`: the time range. Defaults to the last 60 days.

`observe_session` takes the project and a session ID. Session IDs come from `observe_metrics` and `observe_events` results.

`observe_metrics_summary` and `observe_metrics` accept the same nine metric names as the EAS CLI. See [Metric names](https://docs.expo.dev/eas/observe/eas-cli.md#metric-names).

Tools that can return large results paginate them. Each response includes a cursor, and the agent passes it back as `nextCursor` to continue. Routes paginate per platform, and session timelines paginate metrics and logs separately.

## Example prompts

The tools work best in sequence: find the release, compare it, then drill into samples, routes, and one session.

-   "Did startup get slower in the latest iOS release?" The agent lists versions with `observe_versions`, then compares them with `observe_metrics_summary`.
-   "Find the five slowest cold launches this week and tell me what those devices have in common." The agent calls `observe_metrics` sorted by slowest and reads the device details on each sample.
-   "Which routes have the worst time to interactive on Android?" The agent calls `observe_routes` for the Android platform.
-   "Show me the timeline for the session behind that slow launch." The agent takes the session ID from the earlier sample and calls `observe_session`.
-   "How many users completed onboarding since the last update?" The agent discovers the event name with `observe_event_names` and counts matches with `observe_events`.

## Plans and usage

Plan limits are the same as in the dashboard and the EAS CLI. When your account's plan does not include the requested data, the tool returns an error with an upgrade message. See [Pricing](https://expo.dev/pricing) for what each plan includes.

Each tool call counts toward your account's Expo MCP Server usage. The server returns the results to the MCP client you connect. See [Data privacy](https://docs.expo.dev/mcp.md#data-privacy) for how Expo MCP Server handles project data.

## Next steps

[Expo MCP Server](https://docs.expo.dev/mcp.md) — Install the server, authenticate, and see the complete list of tools.

[Querying with EAS CLI](https://docs.expo.dev/eas/observe/eas-cli.md) — Run the same queries from the terminal with the eas observe commands.

[Metrics reference](https://docs.expo.dev/eas/observe/reference/metrics.md) — What each startup and navigation metric measures.
