Appstore Mcp Server

by drewster99

219 downloads
Not rated
GitHub

About

Searches and scrapes the app store. Research apps, rankings, keywords, and dump detailed app metadata. Great if you want to compare other apps to your own. FYI, the project is also a CLI for macOS.

Details

Author
drewster99
Downloads
219
Categories
Developer Tools, Marketing, Other, Search

- Search App Store with iTunes Search API or MZStore API for ranked results.
- Look up apps by ID, bundle ID, or App Store URL.
- Retrieve current top charts (free, paid, grossing, new).
- Check an app’s keyword ranking across auto‑generated keywords.
- Analyze keyword competitiveness with a score (0–100).
- Find an app’s competitors via overlapping search results.
- Compare competitiveness across multiple keywords.
- Discover trending categories from new chart entries.
- Guided prompts for competitive analysis and market research.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Appstore Mcp Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install via uvx appstore-mcp-server (recommended), pip install appstore-mcp-server, or download the binary from GitHub Releases. Run without --mcp for interactive CLI use, or with --mcp to start the MCP server over stdio. Configure MCP clients like Claude Code or Claude Desktop using the stdio transport.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "appstore mcp server": {
            "appstore-mcp-server": {
                "type": "stdio",
                "command": "uvx",
                "args": [
                    "appstore-mcp-server"
                ],
                "env": []
            }
        }
    }
}

McpServers

{
    "appstore-mcp-server": {
        "type": "stdio",
        "command": "uvx",
        "args": [
            "appstore-mcp-server"
        ],
        "env": []
    }
}

App Store MCP Server

An MCP server for searching the App Store, checking keyword rankings, analyzing competition, and tracking trends — powered by a native macOS binary for fast, direct access to App Store APIs.

Also works as a standalone CLI tool with rich output formats.

Requirements

- macOS 26+ (Apple Silicon)

Quick Start

Install via uvx (recommended)

uvx appstore-mcp-server

This downloads the native binary on first run and starts the MCP server. No persistent installation needed.

Install via pip

pip install appstore-mcp-server
appstore-mcp-server

Download binary directly

Download the latest release from GitHub Releases, extract, and run:

tar xzf appstore-*-macos-arm64.tar.gz
./appstore --mcp

MCP Client Setup

Claude Code

claude mcp add --scope user --transport stdio -- appstore-mcp-server uvx appstore-mcp-server

Or with the binary directly:

claude mcp add --scope user --transport stdio -- appstore-mcp-server /path/to/appstore --mcp

Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "appstore-mcp-server": {
      "command": "uvx",
      "args": ["appstore-mcp-server"]
    }
  }
}

Other MCP Clients

The server communicates over stdio using the standard MCP protocol. Run with --mcp flag:

/path/to/appstore --mcp

MCP Tools

| Tool | Description |
|------|-------------|
| search_apps | iTunes Search API with attribute/genre filtering |
| search_ranked | MZStore API — results match actual App Store rankings |
| lookup_app | Look up an app by ID, bundle ID, or App Store URL |
| top_charts | Current top chart rankings (free, paid, grossing) |
| find_app_rank | Check where an app ranks for a single keyword |
| check_app_rankings | Check an app's rank across auto-generated keywords (slow) |
| analyze_keyword | Competitive analysis with competitiveness score (0-100) |
| app_competitors | Find an app's top competitors via overlapping search results |
| compare_keywords | Compare competitiveness across multiple keywords (slow) |
| discover_trending | Discover trending categories from new chart entries |
| version | Get the server version |

Most tools support:
- storefront — Two-letter country code (default: US). Use for any App Store region.
- verbosity — Controls response detail and token usage:
- compact (default) — Key fields only, no descriptions. Best for most queries.
- full — Includes app descriptions and release notes.
- complete — All fields from the API response. Verbose (~4KB/app).

MCP Resources

| Resource | URI | Description |
|----------|-----|-------------|
| Storefronts | appstore://storefronts | Country codes and names for all supported App Store regions |
| Genres | appstore://genres | Genre IDs and names for App Store categories |
| Search Attributes | appstore://attributes | Available search attribute names for refined searches |
| Chart Types | appstore://chart-types | Available chart types for top charts queries |

MCP Prompts

| Prompt | Description |
|--------|-------------|
| competitive_analysis | Guided workflow: look up an app, find competitors, analyze keyword rankings, and get actionable recommendations. Args: keyword_or_app_id (required), storefront (optional). |
| market_research | Guided workflow: search rankings, top charts, competitiveness analysis, trending discovery, and opportunity identification. Args: category (required), storefront (optional). |

CLI Usage

The binary doubles as a full-featured CLI tool. Run without --mcp for interactive use.

Commands

| Command | Description |
|---------|-------------|
| search <query> | Search the App Store (iTunes Search API) |
| scrape <query> | Search with ranked results matching the App Store app (MZStore API) |
| lookup <id-or-bundle> | Look up apps by ID, bundle ID, or URL |
| ranks <app-id> | Analyze keyword rankings for an app |
| analyze <query> | Competitive analysis of top 20 results with keyword matching |
| top <chart-type> | View top charts (free, paid, grossing, newfree, newpaid) |
| list <type> | List storefronts, genres, attributes, or chart types |

search

Search the App Store using the iTunes Search API.

appstore search "photo editor"
appstore search --limit 5 minecraft
appstore search --storefront JP nintendo
appstore search --attribute softwareDeveloper "Meta Platforms"
appstore search --genre 6014 puzzle             # Games category
appstore search --verbosity minimal spotify
appstore search --output-format json spotify
appstore search --unlimited "weather"

Key options:

| Option | Description |
|--------|-------------|
| --limit <n> | Number of results (1-200, default: 200, 0 for unlimited) |
| --unlimited | Same as --limit 0 |
| --attribute <attr> | Search specific field: titleTerm, softwareDeveloper, descriptionTerm |
| --genre <id> | Filter by genre ID (e.g., 6014 for Games) |
| --storefront <code> | Country code (e.g., US, JP, GB) |
| --output-format <fmt> | text (default), json, raw-json, markdown, html, html-open |
| --verbosity <level> | minimal, summary (default), expanded, verbose, complete |
| --full-description | Show complete app descriptions |

scrape

Search using the MZStore API. Results are in actual App Store ranked order — the same ranking users see in the App Store app. Use this instead of search when ranking position matters.

appstore scrape spotify
appstore scrape --limit 10 "photo editor"
appstore scrape --storefront GB twitter
appstore scrape --output-format json instagram

Key options:

| Option | Description |
|--------|-------------|
| --limit <n> | Maximum results (default: 200) |
| --storefront <code> | Country code (default: US) |
| --output-format <fmt> | text (default), json, raw-json, markdown, html |
| --verbosity <level> | minimal, summary (default), expanded, verbose, complete |

lookup

Look up specific apps by ID, bundle ID, or App Store URL.

appstore lookup 284910350                                   # Numeric = app ID
appstore lookup com.spotify.client                          # Non-numeric = bundle ID
appstore lookup --ids 284910350,324684580                   # Multiple apps
appstore lookup --url "https://apps.apple.com/us/app/yelp/id284910350"
appstore lookup 284910350 --storefront JP
appstore lookup com.facebook.Facebook --output-format json

Key options:

| Option | Description |
|--------|-------------|
| --id <id> | Look up by app ID |
| --ids <id1,id2,...> | Look up multiple apps (comma-separated) |
| --bundle-id <bundle> | Look up by bundle identifier |
| --url <url> | Look up by App Store URL |
| --storefront <code> | Country code (default: US) |
| --output-format <fmt> | text, json, raw-json, markdown, html |
| --verbosity <level> | minimal, summary (default), expanded, verbose, complete |

ranks

Analyze keyword rankings for an app. Auto-generates keywords from the app's name, subtitle, and description, then checks where the app ranks for each keyword. Uses on-device AI (Apple Intelligence) to generate additional keywords when available.

appstore ranks 324684580                        # Analyze Spotify's rankings
appstore ranks 284910350 --limit 30             # Test 30 keywords for Yelp
appstore ranks 544007664 --storefront GB        # UK store rankings

Key options:

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.