Skip to main content
Glama
Mogut — App Store Growth MCP

Mogut — App Store Growth MCP

Mogut

Read-only App Store growth analysis (ASO) MCP server for the Apple ecosystem (iOS + Mac App Store).

Mogut never writes to the App Store. Write actions are handed off as ready-to-run Heimdall tool calls that the user approves.

1.0: 47 tools over 13 live data sources, ending in the report orchestrators. report_app produces the full App Report in one call; the periodic tiers (daily/weekly/monthly) report deltas from local history. See CHANGELOG.md.

Install

npm install -g mogut
mogut setup

The wizard registers Mogut with the MCP clients it finds (Claude Code & Desktop, Codex, Cursor, VS Code, Windsurf, Antigravity) — restart the client once afterwards.

The wizard stores credentials in the macOS Keychain (com.milowda.credentials) with a .env fallback. Secrets are entered in the terminal only — never in chat, never logged, never displayed. See SECURITY.md.

Related MCP server: ASO Score MCP

MCP config

{
  "mcpServers": {
    "mogut": { "command": "mogut", "args": [] }
  }
}

Nine tools are exposed by default: six mogut_* meta tools plus the three report orchestrators (report_app, report_competitor_deep, report_comparison — the fourth, report_actions, lands in v1.1). Everything else is opt-in per profile: set MOGUT_PROFILES="keyword,competitor" (or "all"). mogut_search_tools finds a tool and tells you which profile enables it. The flows are described in GUIDE.md.

What a result looks like

Every tool returns data (structuredContent) plus a writing instruction for the host model — statistics are computed in code, never delegated to the model. Every result carries source, confidence and lastCheckedAt; truncation is visible (fetched/analyzed counts); review and competitor text is marked untrusted data. A broken source becomes a visibly skipped section, never an invented number.

Tiers

Tier

Needs

Unlocks

0

nothing

all public sources — a full report is produced, marked low confidence

1

App Store Connect key

your own analytics, sales, reviews, metadata

2

+ Apple Ads OAuth

real search term reports and measured demand

3

+ a connector (RevenueCat/PostHog)

revenue-per-keyword analysis

mogut_status shows the current tier, verifies credentials live (verify: true) and counts down the 180-day Apple Ads key rotation.

Which App Store Connect role unlocks what

ASC role on the key

What works

Sales (Access to Reports) or Finance

sales reports, analytics report download, reviews, metadata import

Admin

additionally: the one-off POST /v1/analyticsReportRequests that turns the analytics feed on — Apple gates this single call behind Admin and offers no UI for it

The feed only produces data after that one POST. Mogut never sends it from the MCP surface: run npx mogut analytics enable --app <id> in the terminal (asks for the path to an Admin .p8, uses it in memory, stores nothing), or --print-only to print the request for whoever holds Admin. disable undoes it.

Advanced: Apple Ads popularity index

The official Apple Ads API has no popularity index (verified live: POST /api/v5/keywords/popularities → 404). The number the Ads UI shows comes from an undocumented endpoint that authenticates with a web session, not OAuth. Mogut can read it, but the wizard does not ask for it: it is a pasted browser cookie, it expires, and using it is a grey area against the Apple Ads terms. Without it, keyword_popularity_fetch falls back to a proxy score marked low confidence.

If you want it anyway:

  1. Log in at https://app-ads.apple.com and open any campaign screen.

  2. Open devtools → Network, filter on /cm/api, click one request.

  3. Copy that request's Cookie request header, whole.

  4. export MOGUT_APPLE_ADS_SESSION='<the cookie header>' in the environment your MCP client launches Mogut from — or store it under the apple-ads-session account of the com.milowda.credentials Keychain service.

Re-do it when the session expires. mogut_discover_sources shows the source as down once the endpoint starts refusing.

What a report looks like

report_app produces the on-demand full report; daily_digest, weekly_change_report and monthly_status_report produce the periodic tiers, reading deltas from the same local history. Anonymized golden examples of both: EXAMPLE_REPORT_FULL.md · EXAMPLE_REPORT_PERIODIC.md.

Development

npm install && npm run build && npm test

Adding a data source? Read CONTRIBUTING.md — the adapter contract and the fixture requirement are enforced by tests.

src/core/catalog.ts is generated from docs/TOOL_CATALOG.md — regenerate with node scripts/gen-catalog.mjs.

MIT.

Available Tools

9 tools
mogut_discover_profilesA

Lists every profile, whether it is loaded, and the tools it contains.

Inputs: no named parameters.

mogut_discover_sourcesA

Lists the data sources with their tier, required credentials, health status and confidence level. With probe=true it makes one live request per source instead of reporting what past calls recorded.

Inputs: probe.

mogut_explain_metricA

Explains how a score is computed: formula, inputs and caveats.

Inputs: metric (required).

mogut_search_toolsA

Searches the whole tool catalog (including tools that are not loaded or not implemented yet) by name, description or profile.

Inputs: query (required).

mogut_setup_checkA

Checks Keychain access, the SQLite database and any credentials an existing Heimdall install may already hold (never used without approval). Lists the manual setup links.

Inputs: no named parameters.

mogut_statusA

Current tier, loaded profiles, credential and optional-key state, source health, database info, and what the next tier would add. With verify=true each stored credential is tested against its live API.

Inputs: verify.

report_appA

The full App Report in one call: listing + metadata audit, review mining, keyword opportunity (when terms are given), market difficulty, ASC performance (from previously imported data), rank history, seasonal calendar and culture notes. Sections degrade independently — a broken source is reported as skipped, never invented.

Inputs: app (required), storefront (required), audience, keywords, +1 more.

report_comparisonA

Side-by-side comparison of your app against the SELECTED competitors on the shortlist, across metadata, product page, monetization and keyword ranks. The feature axis is semantic and is derived by you from the descriptions — the data carries the raw text.

Inputs: ownAppId (required), storefront (required), terms, competitorAppIds.

report_competitor_deepA

Deep-dive on ONE competitor: public listing profile, changes observed between captures (inferred, low confidence), monetization signals (price + SensorTower estimates), keyword portfolio against your own ranks, and complaint mining with verbatim quotes. Everything is public data — what cannot be observed is skipped, not guessed.

Inputs: storefront (required), competitorAppId (required), terms, ownAppId, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv1.0.0
    • First observedmogut_discover_profiles
    • First observedmogut_discover_sources
    • First observedmogut_explain_metric
    • First observedmogut_search_tools
    • First observedmogut_setup_check
    • First observedmogut_status
    • First observedreport_app
    • First observedreport_comparison
    • First observedreport_competitor_deep

TDQS

A3.9/5.0

Scored across 9 tools

Disambiguation4/5

The tool set is largely distinct, especially the three report tools. Some overlap exists between mogut_status, mogut_setup_check, and mogut_discover_sources around credentials and source health, but their overall purpose is clear enough to avoid major misselection.

Naming Consistency3/5

The naming pattern is mixed: some tools use the consistent mogut_ prefix with verb-noun forms, but others are noun phrases such as mogut_status and mogut_setup_check, and the report_ group follows a separate convention with report_competitor_deep being especially awkward. The naming is readable but not uniform.

Tool Count5/5

Nine tools is a well-scoped size for this server. The collection covers setup, health, orientation/exploration, metric understanding, and three distinct report types without unnecessary bloat.

Completeness4/5

The server covers its apparent read-only reporting and discovery mission well, including setup checks, source health, profile/tool discovery, metric explanation, and core report outputs. Obvious gaps are not severe: importing data or managing the competitor shortlist appears to be handled outside the MCP, but it is still an implicit dependency.

Maintenance

ActivityNo data
ResponsivenessSyncing

Related MCP Connectors

  • App Store keyword rankings, competitors, markets, reviews and analytics for iOS apps, from your AI.

    https://mcp.apptail.io/mcp
  • Your agent needs app-store data — what an app looks like on the App Store and Google Play, what reviewers say, and what ranks for a search in a given country. **What you can ask for** • "What does this app's store listing look like, and how is it rated?" • "Pull recent reviews for this app and group the complaints." • "What apps rank for this search term in Japan?" • "List the top apps in this category on both stores." • "Compare this app's listing on iOS and Android." **How to use it** Point any MCP client at https://mcp.aisa.one/seo-apps/mcp and sign in with OAuth — there is no key to create or paste. 37 tools: Apple App Store and Google Play app info, app lists, category listings, reviews and store search results, in live and queued forms, with categories, languages and locations for each. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Read the store listing here, then ask the same agent what the app's website ranks for — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/seo/mcp for all of it at once — rankings, keywords, backlinks, site health and AI-answer visibility across DataForSEO, Semrush and Ahrefs.

  • ASO analytics and App Store optimization tools for indie iOS developers and AI agents.

    https://asohawk.cc/api/mcp
  • Live App Store and Google Play data for AI agents: revenue and download estimates for 3.6M+ apps, app search and filters, ASO keyword research, reviews and listing change history. Read-only tools; API key from GetAppNiche (https://getappniche.com/mcp).

    https://api.getappniche.com/mcp

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Scans websites to evaluate agent-readiness and produce an ASO Score Report across 34 signals, helping improve discoverability, trust, and interoperability for AI agents.
    5
    437 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for App Store Optimization that provides keyword research, competitor analysis, review sentiment, and metadata optimization using real App Store data without requiring an API key.
    44 npm
    5
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for mobile growth & user acquisition, connecting LLMs to a curated knowledge base of ad optimization insights and analytical skills for subscription apps.
    2
    MIT