01Setting it up
Add this to your MCP client's config — claude_desktop_config.json for Claude Desktop. The API key comes from your Storelift settings.
{
"mcpServers": {
"storelift": {
"command": "npx",
"args": ["-y", "storelift-mcp"],
"env": { "STORELIFT_API_KEY": "sl_live_..." }
}
}
}In Claude Code it is one line:
claude mcp add storelift -e STORELIFT_API_KEY=sl_live_... -- npx -y storelift-mcpThere is also a hosted endpoint, with nothing to install: https://storelift.net/mcp over Streamable HTTP. It serves the same tools and works from CI or a cloud agent.
02Adding it to Claude.ai as a connector
The hosted endpoint supports MCP sign-in (OAuth), so there is no key to copy. In Claude.ai, open Customize → Connectors, click +, choose Add custom connector and paste https://storelift.net/mcp (on Team and Enterprise an owner adds it under Organization settings → Connectors, then members click Connect). Claude sends you to a Storelift page that names the app asking and the address you will return to; sign in if needed and choose Allow.
The connection reads the same data as an API key and cannot change anything. It appears in Storelift under Settings → API → Connected apps, where removing it cuts access on the next request.
Claude Code signs in the same way. Add the endpoint without a header, then run /mcp inside Claude Code to authenticate:
claude mcp add --transport http storelift https://storelift.net/mcpClients that cannot sign in but let you set a header can use an API key instead:
claude mcp add --transport http storelift https://storelift.net/mcp --header "Authorization: Bearer sl_live_..."03How the local server works
The server is a single file and talks JSON-RPC over stdio with no dependencies, so npx fetches it on first run and there is nothing to keep updated. It is registered in the MCP registry as net.storelift/storelift.
04What the 8 tools read
| Tool | What it returns |
|---|---|
list_apps | The apps in your account, with their countries and keyword counts. Every other call starts here. |
get_keywords | Current rank for each tracked keyword in one storefront, in the same three states the product uses. |
get_rivals | The apps standing above you on a term, with their rating counts and last ship date. |
get_ai_visibility | Whether assistants name your app when asked about your category, and which ones they name instead. |
get_history | One keyword's rank series. A null rank means the app was absent from the results, not that it was zero. |
get_store_page | The listing as the store publishes it: title, subtitle, keyword field, description. |
get_reviews | Store reviews for an app, so an assistant can read what users actually wrote. |
get_charts | Where an app sits in the store's category charts. |
Every tool reads the same measurement the dashboard shows. The three measurement states survive the boundary: ranked at N, measured but absent from the results, and measurement failed stay apart, because folding the last two into “no rank” would let an assistant report a gap as a zero.
05Questions to try first
Each of these is answered by the tools above, from your own tracked data. The tool names are there so you can see what the assistant calls.
- “Which of my US keywords lost ground this week, and who is above me on them now?” —
get_keywords,get_history,get_rivals - “Show me the title, subtitle and keyword field of the app ranking first on my main keyword.” —
get_rivals,get_store_page - “Summarise my recent reviews that mention a crash or a bug.” —
get_reviews - “Where does my app sit in its category chart in Turkey?” —
get_charts - “Do assistants name my app when asked about my category?” —
get_ai_visibility, which returns data on the Studio plan, where that measurement runs
The server also publishes these 5 questions as MCP prompts, so a client that lists prompts offers them ready to run.
06Why an MCP server rather than a plain API
There is a plain REST API too, and for a script that is the right thing. MCP earns its place when the reader is an assistant rather than a program: the tools carry their own descriptions, so the assistant picks the right call and the right parameters without you writing the integration.
The practical difference is what you can ask. “Which keywords did I lose ground on since the last release, and who took the position” is three calls and a join in a script; in an MCP client it is one sentence.
See this for your own app
Paste your store link, add your keywords. Rank, the apps above you and demand are measured every day.
Start free →