Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

App Store Operator

by meyusufdemirciversion 0.3.5i★ 3iRuns on your computer
Registry nameio.github.meyusufdemirci/app-store-operator

Install

Overview

Description from the maker (original English)

Free App Store competitive intelligence for Claude — rival downloads, revenue, and ASO keywords.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Other

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 2 of 2 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: ASO_CACHE_TTL_HOURS

You need

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "app-store-operator": {
      "command": "npx",
      "args": [
        "-y",
        "app-store-operator"
      ],
      "env": {
        "ASO_CACHE_TTL_HOURS": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add app-store-operator --env ASO_CACHE_TTL_HOURS=your-value -- npx -y app-store-operator

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "app-store-operator": {
      "command": "npx",
      "args": [
        "-y",
        "app-store-operator"
      ],
      "env": {
        "ASO_CACHE_TTL_HOURS": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "app-store-operator": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "app-store-operator"
      ],
      "env": {
        "ASO_CACHE_TTL_HOURS": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • ASO_CACHE_TTL_HOURS env
    Hours to cache SensorTower results locally. Defaults to 24.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

Which apps can use it

Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.

Run on your computer in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

All apps, with pros and cons →

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 10, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account meyusufdemirci, which owns the repo

  • ✓ Pass

    Still maintained

    Code last changed 2 months ago

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Otheri

  • More stars than 91% of the other 19085 servers in this category
  • Published to the registry more recently than 27% of the other 19085 servers in this category
  • Basic checks equal to or better than 100% of the other 19085 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is App Store Operator safe?

It passed 2 of 2 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed 2 months ago, and the latest version (0.3.5) reached the registry 3 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: World Monitor, Claude Flow, Tldraw

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

World Monitor

Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.

by koala73Widely used★ 90.4KUpdated 5 days ago

Runs in the cloud✓ worldmonitor.app

Claude Flow

AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.

by ruvnetWidely used↓ 13.5K/wk★ 81.4KUpdated 14 months ago

Runs on your computer

Tldraw

Draw and visually collaborate with your agents on tldraw's canvas.

by tldrawWidely used★ 51.4KUpdated 8 months ago

Runs in the cloud

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

App Store Operator

App Store competitive intelligence, inside Claude.

App Store Operator is an MCP server that brings App Store research directly into your AI assistant. Instead of switching to a dashboard, you ask Claude for ranked keyword results, competitor download and revenue estimates, or App Store Connect-ready In-App Event copy — and get the answer in the same conversation where you are making the decision.

Built for indie iOS developers who want research inside their workflow rather than in another browser tab. Free and open source (MIT). A lightweight alternative to SensorTower, AppTweak, and AppFollow for iOS-only competitive research.

claude mcp add --transport stdio app-store-operator -- npx -y app-store-operator@latest

→ app-store-operator.com · Setup guide

What it does

Searches the App Store for competing apps on a given keyword and pulls detailed analytics from SensorTower — downloads, revenue, ratings, top markets, publisher info, and more.

search_app_store and prepare_iae work with no account at all. research_rivals and get_app_details open a browser once for a free SensorTower sign-in, then reuse that saved session — no paid plan, no API key.

Everything the server exposes — four tools, six prompts, seven resources — is read-only. Nothing writes to your App Store Connect account, to SensorTower, or anywhere but a local cache file.

Tools

research_rivals

Finds the top 3 apps for a keyword and returns a full metrics report for each.

ParameterTypeDescription
keywordstringSearch term to look up (e.g. meditation, psikoloji)
countrystringTwo-letter country code (e.g. us, tr, gb)

Returns for each competitor:

  • App Store & SensorTower URLs
  • Worldwide and last-month downloads & revenue
  • Rating score and rating count
  • Publisher, categories, top markets
  • Release date, last updated, supported languages
  • In-app purchases and ad network presence

Cached for 24 hours, so asking again about the same keyword and country costs nothing and opens no browser.


search_app_store

Searches the App Store for a keyword and returns ranked results as a markdown table — instantly, no SensorTower required.

ParameterTypeDescription
keywordstringSearch term to look up
countrystringTwo-letter country code
limitnumberNumber of results to return (1–25, default 3)

Use this to discover which apps rank before deciding which to analyse. Follow up with get_app_details for analytics on specific apps.


get_app_details

Fetches SensorTower analytics for one or more app IDs you already have.

ParameterTypeDescription
app_idsarrayNumeric App Store IDs (e.g. from search_app_store)
countrystringTwo-letter country code

Returns for each app:

  • Downloads and revenue (worldwide + last month)
  • Rating score and rating count
  • Publisher, categories, top markets
  • Release date, last updated, supported languages
  • In-app purchases and ad network presence

Never cached — every call scrapes fresh, at roughly 10–20 seconds per app ID.


prepare_iae

Generates iOS App Store In-App Event (IAE) copy — 3 variations in the target language, then a final report.

ParameterTypeDescription
keywordsarrayOrdered keywords by priority (index 0–2 = Tier 1, 3–6 = Tier 2, 7–9 = Tier 3)
localestringTarget locale (e.g. en-us, en-gb, de-de, tr, ja, ko)
event_purposestringWhat the event is about and why users should care
audiencestringTarget audience (e.g. students, professionals, parents)
event_contextstringReal-world hook tying the event to a moment (e.g. a holiday, season)
goalstringPrimary conversion goal (e.g. attract new users, boost engagement)
tonestringCopy tone: Engaging, Playful, Motivational, Authoritative, Calm, or Urgent

Returns: a structured brief used to generate 3 copy variations, each with event name (≤30 chars), short description (≤50 chars), and long description (≤120 chars).


Any field SensorTower does not expose, or keeps behind its paywall, comes back as N/A. The server reports the gap rather than filling it, and the prompts below tell the assistant to do the same.

Prompts

Six ready-made workflows that already chain the tools above, so you don't have to describe the sequence yourself. In Claude Code they appear as slash commands; other clients surface them in a prompt picker.

PromptArgumentsWhat it does
competitor_snapshotkeyword, countryPulls rival analytics for a keyword, then reads out who owns it and how contested it is
keyword_shortlistseed_keyword, country, count?Expands a seed keyword into candidates, tests each against live search results, and ranks them *attack / watch / skip*
app_teardownapp_ids, countryTeardown of known apps — scale, standing, monetisation, reach, momentum, acquisition
positioning_gapkeyword, country, my_app_idPuts your app on the same measuring stick as the incumbents and separates *behind* from *attackable*
metadata_rewriteapp_name, keyword, country, must_keep?Three name / subtitle / keyword-field variations, character-counted against Apple's limits
in_app_eventevent_context, locale, keywords?, audience?, tone?Runs the full In-App Event flow, asking for whatever prepare_iae still needs

Arguments marked ? are optional. Every prompt tells the assistant not to invent figures and, where SensorTower is involved, not to quietly fall back to a weaker tool when login is required.

Resources

Reference data and local state a client can attach as context without spending a tool call on it.

URITypeContents
asops://guide/tool-selectionmarkdownWhich tool to use, what each costs, how the SensorTower login works
asops://reference/country-codesmarkdownTwo-letter storefront codes by region
asops://reference/aso-fieldsJSONApp Store Connect character limits and which fields are indexed for search
asops://reference/iae-fieldsJSONIn-App Event limits, artwork sizes, copy rules, keyword tiers
asops://reference/iae-localesJSONEvery locale prepare_iae accepts — generated from the same table the tool validates against
asops://cache/researchJSONWhat has already been researched on this machine, and whether it is still fresh
asops://cache/research/{country}/{keyword}JSONOne cached research_rivals result, without re-scraping

Nothing here leaves your machine: the reference resources are static, and the two cache resources read ~/.app-store-operator/cache.json.

Requirements

  • Node.js v18+
  • A desktop session for research_rivals and get_app_details. They drive a real, visible Chromium window so you can sign in to SensorTower, so they need a display — they do not work over plain SSH or inside a container. The other two tools have no such requirement.
  • Disk space for Chromium. Installing the package downloads a Playwright Chromium build (a few hundred MB) via a postinstall step. If that step fails, the server installs it on first use instead; you can also run npx playwright install chromium yourself.

Usage

As an MCP server (Claude Code / Claude Desktop / OpenAI Codex)

Claude Code — run this command once:

claude mcp add --transport stdio app-store-operator -- npx -y app-store-operator@latest

Claude Desktop — add to your MCP config:

{

"mcpServers": { "app-store-operator": { "command": "npx", "args": ["app-store-operator@latest"] } } }

OpenAI Codex — run this command once:

codex mcp add app-store-operator -- npx -y app-store-operator@latest

Codex stores MCP servers in ~/.codex/config.toml. If you prefer to edit it directly:

[mcp_servers.app-store-operator]

command = "npx" args = ["-y", "app-store-operator@latest"]

Optional but useful for SensorTower scraping flows

startup_timeout_sec = 20 tool_timeout_sec = 180

Then restart Codex or start a new thread, and ask things like:

  • Research rivals for "hairstyle" in the GB App Store
  • Search the App Store for "beard style" in France
  • Prepare an in-app event for a summer hairstyle campaign in en-gb

No installation step needed — npx fetches and runs the package automatically.

The server communicates over stdio and is designed to be invoked by an MCP client. It advertises server-wide instructions during initialize so clients route between the tools correctly, and returns an MCP tool error when SensorTower login is required.

Configuration

Both settings are optional environment variables on the server process.

VariableDefaultWhat it does
ASO_CACHE_TTL_HOURS24How long a research_rivals result stays fresh in the local cache before it is scraped again
ASO_DEBUG_RATINGSunsetSet to 1 to print SensorTower's ratings panel to stderr when a rating score or count comes back N/A — useful when reporting a scraping bug
In a container

The repo ships a Dockerfile built on Playwright's official image:

docker build -t app-store-operator .

docker run -i --rm app-store-operator

The server speaks JSON-RPC over stdio, so no port is exposed — point your MCP client at the container's stdin/stdout. Note that a container has no display: search_app_store and prepare_iae work there, but the two SensorTower tools cannot open a login window and will fail rather than prompting you to sign in.

How it works

  1. Searches the App Store for the keyword and country, and looks up any app IDs you passed directly against Apple's public iTunes Lookup API
  2. For each app, drives a Chromium browser to scrape SensorTower analytics
  3. Extracts the metrics and returns a compiled report

SensorTower data is scraped via Playwright because it is rendered client-side.

A browser window will open. This is deliberate, not a bug: SensorTower requires a login, so the first run opens a visible window for you to sign in. The session is saved to ~/.app-store-operator/profile and reused on every later call, so you only log in once. If a tool reports not_logged_in, finish signing in on that window and run the tool again.

Results from research_rivals are cached for 24 hours in ~/.app-store-operator/cache.json — override the TTL with the ASO_CACHE_TTL_HOURS environment variable.

Limitations

  • iOS only. Nothing here covers Google Play or Android.
  • Read-only. No tool changes anything in App Store Connect or on SensorTower.
  • **research_rivals is fixed at the top 3 resul

Only the beginning is shown; read the rest in the repo