Rankbase MCP Server

Let Claude and other AI assistants query your App Store keyword rankings and install data directly.

Overview

The Model Context Protocol (MCP) is an open standard that lets AI assistants call external tools. Rankbase ships a hosted MCP server, so you can ask Claude questions like "which keywords drove installs for my app last month?" and it will pull live answers straight from your Rankbase data: no CSV exports, no copy-pasting dashboards.

The server is remote (nothing to install or run yourself) and speaks the streamable HTTP transport:

https://rankbase.io/mcp

All tools are read only and expose the same data as the REST API: app discovery, keyword rankings (including per-click position, country, search type, and device), and per-shop install sources. Works with claude.ai and the Claude desktop app (sign in with Rankbase, no key needed), plus Claude Code, Cursor, and the Claude API's MCP connector (API key).

Authentication

There are two ways to connect, depending on your client:

  • Sign in with Rankbase (OAuth) — for claude.ai and other browser connectors. You add the server URL, click Connect, and approve access on a Rankbase consent screen. No key to copy. See Connect: Claude (web) below.
  • API key (bearer token) — for Claude Code, Cursor, and the Claude API connector. Include your key as a bearer token:
    Authorization: Bearer rb_your_api_key
    Create a key in your Rankbase dashboard under API & MCP. Treat it like a password: anyone holding it can read your ranking data.

Either way, access is read only and scoped to your team, so an assistant only ever sees your own apps.

Connect: Claude (web & desktop)

In claude.ai or the Claude desktop app, open Settings → Connectors → Add custom connector and enter the Rankbase MCP URL:

https://rankbase.io/mcp

Claude will send you to a Rankbase sign-in and consent screen. Approve access, and the tools appear in your conversations. No API key needed. To disconnect later, remove the connector from your Claude connector settings.

On Claude Team and Enterprise plans, a workspace admin may need to enable custom connectors before members can add one. That is a setting in your Claude workspace, not in Rankbase.

Connect: Claude Code

One command:

claude mcp add --transport http rankbase https://rankbase.io/mcp \
  --header "Authorization: Bearer rb_your_api_key"

Then just ask. Claude Code discovers the tools automatically:

> Which keywords brought the most installs to my app in the last 30 days?

Connect: Cursor

Add the server to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

{
  "mcpServers": {
    "rankbase": {
      "url": "https://rankbase.io/mcp",
      "headers": {
        "Authorization": "Bearer rb_your_api_key"
      }
    }
  }
}

Most other MCP clients that support remote servers with custom headers use an equivalent configuration.

Connect: Claude API

Building your own agent? The Claude API's MCP connector can call the Rankbase server directly from a /v1/messages request, with no MCP client code needed on your side:

curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: mcp-client-2025-11-20" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-opus-4-8",
    "max_tokens": 4096,
    "mcp_servers": [{
      "type": "url",
      "url": "https://rankbase.io/mcp",
      "name": "rankbase",
      "authorization_token": "rb_your_api_key"
    }],
    "tools": [{ "type": "mcp_toolset", "mcp_server_name": "rankbase" }],
    "messages": [{
      "role": "user",
      "content": "List my apps and summarize keyword performance for the first one."
    }]
  }'

Available Tools

list_apps

Lists the Shopify apps tracked by your team. Assistants call this first: it returns the numeric Rankbase app id that the other tools require (this is not the same as your Shopify app id). No arguments. The response matches GET /apps.

get_keyword_rankings

App Store search keywords that brought merchants to a listing, with per-click position records (position, date, locale, country, search type, and device), average and latest organic position, and importance scoring. The response matches GET /apps/{appId}/keywords.

ArgumentTypeRequiredDescription
app_idintegeryesThe Rankbase app id from list_apps.
daysintegernoLook-back window, 1–365. Defaults to 90. Ignored when a custom range is given.
start_date / end_datestringnoCustom range (YYYY-MM-DD), both required together.
installedbooleannofalse (default): searches that led to Add App button clicks. true: only searches that led to confirmed installs (requires the shopify_app_install event).
search_typestringnoall (default), search (organic only), or search_ad (paid only).

get_install_sources

Looks up where specific stores discovered and installed your app: source classification (App Store Search, Direct, Organic Search, Google Ads, LLM (AI), and more), the keyword or referrer, date, locale, country, and device. Up to 50 stores per call, batched into a single Google Analytics query. The response matches GET /apps/{appId}/installs.

ArgumentTypeRequiredDescription
app_idintegeryesThe Rankbase app id from list_apps.
shop_urlsarray of stringsyesBare .myshopify.com domains, e.g. examplestore.myshopify.com. Maximum 50 per call.

list_popular_keywords

Popular Shopify App Store search keywords, discovered from the store's own search autocomplete. A global dataset (the same for every team, not limited to your apps), so it needs no app id: useful for keyword research. Matches GET /popular-keywords, with limit/offset added so assistants can page instead of loading the whole dataset; total_keywords in the response tells the assistant when more pages exist.

ArgumentTypeRequiredDescription
qstringnoCase-insensitive substring filter, e.g. email.
limitintegernoMaximum keywords to return, 1–2000. Defaults to 500.
offsetintegernoKeywords to skip, for paging. Defaults to 0.

Example Prompts

Once connected, these all work out of the box:

  • "Which keywords drove the most installs for my app in the last 30 days?"
  • "Compare my organic vs paid App Store search traffic for the last quarter."
  • "What share of my install clicks came from mobile devices?"
  • "Where did examplestore.myshopify.com discover my app before installing?"
  • "Which keywords am I ranking worse than position 5 for, sorted by potential?"
  • "Write a weekly summary of my keyword movement I can post in Slack."
  • "List popular App Store search keywords containing 'bundle' that I'm not tracking yet."

Errors & Limits

  • Authentication failures return HTTP 401 (missing or invalid key) or 403 (inactive subscription) before any tool runs.
  • Tool-level problems (unknown app id, app not connected to Google Analytics, invalid arguments, expired GA authentication) are returned as readable error messages inside the tool result, so the assistant can see what went wrong and adjust, usually by calling list_apps again.
  • Rate limit: 60 requests per minute per team, shared with the REST API. Exceeding it returns HTTP 429 with a Retry-After header.

Want the raw endpoints instead?

REST API Docs Product Documentation FAQ
© 2026 Rankbase. App Store keyword ranking and analytics for Shopify app developers.