# Claude, ChatGPT and other AI apps

> Connect Tapll to Claude, ChatGPT, Cursor or any MCP client and ask about sessions, ASO keywords, competitors, web traffic, crashes and revenue in plain language.

Source: https://tapll.com/docs/mcp · Updated 2026-11-03

Tapll is an MCP server, so an AI app can read your analytics and answer with your numbers, their definitions and what they are compared against. Analytics tools require the `read` scope and come with the Pro and Studio plans. Keyword tracking changes additionally require the `write` scope and an owner or admin role.

## Connect

Add a custom connector with the address:

```
https://tapll.com/mcp
```

The app sends you to Tapll to sign in and pick the organization it may read. You can see and remove connected apps in **Settings → AI apps**. Tools that can't authenticate in a browser can use an organization API key as a bearer token instead (see [REST API](/docs/api)).

## What it can answer

`list_projects`, then per project — the same reads as the panel and the REST API:

* Sessions and people: `sessions_overview`, `latest_sessions`, `session_detail`, `people`, `person_activity`, `live_now`
* Product: `screens`, `retention`, `crashes`, `crash_detail`, `releases`, `release_detail`, `features`, `feature_detail`, `events`, `event_detail`, `search`
* Revenue: `revenue`, `revenue_mrr`, `revenue_transactions`, `revenue_upcoming`, `revenue_examples`
* ASO research: `keywords`, `keyword_detail`, `keyword_discover`, `keyword_lookup`, `keyword_changes`, `keyword_impact`, `competitors`, `competitor_detail`, `competitor_updates`, `competitor_feed`, `competitor_keywords`, `competitor_compare`, `competitor_rankings`, `keywords_export`, `phrase_market` (any term, no project needed)
* Web: `web_overview`, `web_visits`, `web_goals`, `web_goal_options`
* Store performance: `store_overview`, `store_markets`, `store_reviews`, `store_referrers`, `store_products`, `store_funnel`

Ask things like "how did FitFlow's sessions change over the last 28 days?", "which crash hit the most people this week?" or "which phrases did we lose to rivals in the US?". A `null` value means "not counted", never zero.

For a tracked phrase, call `keywords` first and pass its phrase id to `keyword_detail`. The detail accepts a window of 7, 28, 30, 90 or 180 days and includes the available rank series, competitors and market data. Popularity can be unavailable even when difficulty is present.

For a watched competitor, call `competitors` and pass its numeric App Store app id to `competitor_detail`, optionally choosing a two-letter storefront with `country`. The detail includes the available listing, releases, ratings, reviews and charts; it does not claim to list every keyword the competitor ranks for.


## Catalog, export and comparison

`store_products` reads the latest complete ASC catalog snapshot, including territory prices and introductory/promotional offers. A completed empty catalog differs from an unavailable import. Failed refreshes retain the prior snapshot with a stale reason. `reason` says why a catalog is unavailable or stale (`not_connected`, `never_synced`, `forbidden`, `rate_limited`, `apple_unavailable`, `read_failed`, `snapshot_outdated`) and `refreshFailedAt` dates the failed refresh. `country` narrows price and offer details, `product` returns one product; `page`, `limit` and `nextPage` page through products. Raw App Store Connect payloads are never returned.

`store_funnel` returns Apple Search steps, conversions and reporting coverage. First opens from the SDK and purchases from other sources remain separate populations. A rate with an unknown denominator or no shared report days is `null` with a reason (`zero_denominator`, `no_shared_report_days`); `crossSource` is always `null` (`incomparable_populations`). `f=storefront:XX` and `f=product:<SKU>` filter what they can reach and `unfiltered` names the rest. `purchases` counts one-time sales units with `refunds`.

`keywords_export` accepts `from`, `to`, `country`, `page`, `limit`, and `format` (`json` or `csv`). Its default window is 28 days; the maximum is 180 days. A missing measurement is distinct from an observed result outside the measured depth. CSV results contain `text` and `nextPage`; continue until `nextPage` is null.

`competitor_compare` accepts an `appIds` array of two to six distinct own/watched App Store ids, one storefront, and `from`/`to`. Observed positions, ratings and categories carry observation dates; they do not represent a complete App Store keyword index. `competitor_rankings` pages chart observations for a watched app with category and measured depth.

`competitor_feed` supports an observation window, kind and cursor pagination. Reuse the returned `nextCursor` with the same filters to continue the feed. Events describe observations, not an exact unpublished Apple change time.

Revenue tools accept supported `period` and repeatable `f` filters, including `product:<id>` and `country:US`. Product ids differ across providers: sections that cannot apply a filter remain explicitly listed as unfiltered. Sources and currencies are not silently combined. Subscription churn/retention are unavailable with a reason when their cohort or denominator is missing (`subscriptionAnalysis`). App Store proceeds are broken down by product and country per currency (`proceedsBreakdown`).

## Change tracked keywords

`keyword_add`, `keyword_pin` and `keyword_remove` require the `write` scope and owner/admin access to the project organization. Tracking changes respect project limits; successful operations are audited. Removing a tracked phrase is destructive. These tools do not change App Store Connect metadata, products or prices.
