App Store & Google Play keyword ranks, rivals, reviews, charts and AI visibility as an MCP server
net.storelift/storelift β Model Context Protocol (MCP) Server
This MCP server provides App Store and Google Play keyword ranking data. It can be used to query which keywords an app has dropped, identify rivals that outrank it, and check whether AI assistants mention the app. Data is measured nightly by Storelift and retrieved without needing store credentials.
π οΈ Key Features
App Store and Google Play keyword rank data
Keyword drop queries (which keywords an app dropped on)
Rival ranking comparisons (who outranks you)
AI visibility checks (whether AI assistants mention your app)
App Store & Google Play ranking data as an MCP server. Ask your assistant which
keywords you dropped on, who outranks you, and whether AI assistants mention
your app at all β without opening a dashboard.
Backed by Storelift, which measures keyword
ranks, rivals and AI visibility nightly. No store credentials required β
ranks are read from the public storefront.
Requirements
A Pro or Studio plan (the Public API is enabled on both)
An API key: Storelift β Settings β API keys β Generate key
Install
Claude Code:
bash
claude mcp add storelift -e STORELIFT_API_KEY=sl_live_... -- npx -y storelift-mcp
Hosted, with nothing to install β https://storelift.net/mcp over Streamable
HTTP. Clients that support MCP authorization (Claude.ai custom connectors,
Claude Code's /mcp) sign you in to Storelift with OAuth and ask you to approve
access; no key to paste:
bash
claude mcp add --transport http storelift https://storelift.net/mcp
Clients without OAuth can send the API key as a header instead:
whether assistants name your app, per engine (Claude / ChatGPT / Gemini)
get_history
rank history, [day, rank] points
get_store_page
your own listing signals + the Google Play page, with a dated change timeline
get_reviews
recent App Store and Google Play reviews, and how many are new since last measurement
get_charts
App Store chart position per list, with history
Prompts
Five ready-made questions, served through prompts/list:
keywords_lost_ground β which US keywords lost ground this week, and who is above you now
leader_listing β title, subtitle and keyword field of the app ranking first on your main keyword
crash_reviews β recent reviews that mention a crash or a bug
category_chart β where your app sits in its category chart in Turkey
ai_visibility β whether assistants name your app for its category (data on the Studio plan)
Reading the data
Keyword results carry three distinct states, and they are not the same thing:
measured: false β the query could not be measured
rank: null (with measured: true) β measured, but absent from the top results
rank: <number> β the rank
Counting an unmeasured day as zero produces a false chart. The tool descriptions
repeat this so the model does not flatten the three into one.
A rank move usually has its explanation somewhere other than the rank: a version
that shipped that day, a wave of one-star reviews, a chart drop. get_store_page,
get_reviews and get_charts exist so the model can look there instead of
explaining everything with the one number it can see.
Google Play is absent from get_charts on purpose: Google publishes no chart
list, so there is nothing to read and a number here would be invented.
AI visibility is an observation, not a ranking: a model's knowledge is frozen
at a date and the answer is not identical every time. Read the trend, not a
single measurement.
Configuration
Variable
Default
Purpose
STORELIFT_API_KEY
β
required for tool calls; without it the server still starts and lists its tools, and every call returns an error saying how to get a key
STORELIFT_API
https://storelift.net
override the API base
No dependencies β a single file speaking JSON-RPC over stdio. Runs with
node index.mjs just as well as through npx.
Registry
Published to the official MCP Registry as net.storelift/storelift.
The manifest is server.json in this repo.