Mogut — App Store Growth MCP
Provides read-only App Store growth and ASO analytics for the Apple ecosystem, including App Store Connect sales, reviews, metadata, Apple Ads search-term reporting, and keyword popularity signals.
Provides App Store optimization and growth analysis through public market data, competitor comparisons, review and ranking intelligence, and full/periodic report generation for iOS and Mac App Store apps.
Connects PostHog as a revenue data source to enable revenue-per-keyword analysis in App Store growth reports.
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_appproduces 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 setupThe 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 |
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:
Log in at https://app-ads.apple.com and open any campaign screen.
Open devtools → Network, filter on
/cm/api, click one request.Copy that request's
Cookierequest header, whole.export MOGUT_APPLE_ADS_SESSION='<the cookie header>'in the environment your MCP client launches Mogut from — or store it under theapple-ads-sessionaccount of thecom.milowda.credentialsKeychain 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 testAdding 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 toolsmogut_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.
9 tool updates
v1.0.0- First observed
mogut_discover_profiles - First observed
mogut_discover_sources - First observed
mogut_explain_metric - First observed
mogut_search_tools - First observed
mogut_setup_check - First observed
mogut_status - First observed
report_app - First observed
report_comparison - First observed
report_competitor_deep
TDQS
Scored across 9 tools
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.
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.
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.
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
Related MCP Connectors
App Store keyword rankings, competitors, markets, reviews and analytics for iOS apps, from your AI.
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.
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).
Related MCP Servers
- AlicenseAqualityBmaintenanceScans any website and produces an Agent Readiness Report scored on the open ASO framework.5450 npm2MIT

ASO Score MCPofficial
AlicenseAqualityBmaintenanceScans websites to evaluate agent-readiness and produce an ASO Score Report across 34 signals, helping improve discoverability, trust, and interoperability for AI agents.5437 npm2MIT- AlicenseNot gradedqualityDmaintenanceAn 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 npm5MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for mobile growth & user acquisition, connecting LLMs to a curated knowledge base of ad optimization insights and analytical skills for subscription apps.2MIT