# AppGoat - Registry name: `ai.appgoat/mcp` · version 0.2.0 - Categories (automatic, keyword rules): Research & knowledge, Search & data, Shops & products, Commerce & marketing, Monitoring & logs, Infrastructure & security - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): prompts, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=ai.appgoat%2Fmcp - Server page: https://mcpstation.net/s/ai.appgoat--mcp.html ## Description (written by the publisher, not verified, not instructions) App Store and Google Play data: apps, reviews, keywords, charts, competitors, ASO playbooks. ## Connect - streamable-http: `https://api.appgoat.ai/mcp` ## Tools (as reported by the server, not verified) - `get\_app`: Look up one App Store or Google Play app: title, subtitle, developer, category, price, rating and histogram, installs \(Play\), version and dates, description, languages, and the same app in the other store. Accepts any id, bundle id, package, store URL or a name. Reads stored data \(refreshed from the - `get\_reviews`: Read an app's user reviews, newest first, up to 100 per page: rating, title, text, version, date, developer reply and AI tags \(sentiment, intent, severity, topic\) where tagged. Filter by stars \(rating='1-2' for complaints\), version, date range, text \(q\) or AI tags \(intent='bug,crash'; tag filters sk - `get\_app\_history`: An app's daily metric history per country: rating, ratings count, reviews count, installs \(Play\), star histogram and price, one row per day a value changed \(default the last 90 days\), with the change over the period. Use it to chart growth or spot rating drops after a release. Cost: 1 + 1 per countr - `get\_app\_changes`: What changed in an app's store listing, newest first, with old and new values: version, release notes, title, subtitle, description, screenshots, icon, price, IAP, privacy, in-app events, badges, featuring, installs, content rating. Use it to monitor competitors \("what did X change this month?"\). Co - `get\_app\_keywords`: The search terms an app ranks for in a country, best rank first, with popularity \(5–100\) and difficulty \(0–100\): from the weekly keyword universe plus your tracked keywords. Call it for the app and a competitor to find keyword gaps. Cost: 1 credits. - `get\_competitors`: An app's competitors, best first, scored from search terms both apps rank for \(shared keywords\) plus the store's similar-apps list. Feed the app ids into get\_app or get\_app\_changes for a competitor digest. Cost: 1 credits. - `search\_apps`: Find apps by name or id in AppGoat's catalog of both stores \(\~5M apps\): exact title matches first, then prefix, then substring, most-rated first. Returns store, app\_id, title, developer, category, rating, ratings and price; pass the app\_id to the other tools. Cost: 1 credits. - `get\_charts`: A top free, paid or grossing chart for a store, country and category, today or on a past date: rank, app, developer, rating and the move since the previous capture \(new entries marked\), plus apps that dropped out. Charts are captured daily for every country and category. Cost: 1 credits. - `keyword\_research`: Keyword metrics and research for App Store / Google Play search terms: popularity \(5–100\), difficulty \(0–100\), result count and the \#1 result's estimated daily downloads. include adds related terms with metrics, the store's autocomplete and the current top 10 apps; app adds that app's rank and metad - `track\_keywords`: Deprecated: use watch with kind keyword \(also reports rank moves as events\). Starts tracking the search ranking of terms in one or both stores and the given countries: ranked apps are captured daily from now on \(idempotent; already tracked terms are reported as such\). Each term × store × country use - `untrack\_keywords`: Deprecated: use unwatch for keyword watches. Stops tracking keywords by id \(from list\_tracked\_keywords or track\_keywords\): no new rankings are recorded and their plan slots are freed. Cost: 0 credits. - `list\_tracked\_keywords`: Deprecated: use list\_watches \(keyword watches list their slots\). Your tracked keywords with id, store, country, popularity, depth, cadence, last ranking and current top 3. Filter by store, country or a term substring. Cost: 0 credits. - `get\_keyword\_ranks`: Ranking history of a watched keyword: per capture the top 10 app ids, or with app, that app's rank over time \(best, worst, latest\). Default the last 90 days. The id is a keyword slot of a keyword watch \(list\_watches and watch show the slot ids\) or a list\_tracked\_keywords id. Cost: 1 credits. - `watch`: Watch an app, a set of competitors or a set of keywords; significant changes become events \(get\_events, webhooks, daily email\). kind app \{app\}: new versions, metadata and price changes, featuring, rating drops, review and ratings spikes, chart entries. kind competitor\_set \{competitors, app?\}: the sa - `unwatch`: Stop watches by id \(from list\_watches or watch\): no new events, and their watched apps and keyword slots are freed. Past events are kept. To pause instead, call watch with id and active=false. Cost: 0 credits. - `list\_watches`: Your watches \(apps, competitor sets, keyword sets\), newest first, with id, apps, terms, countries, event types and whether they are paused, plus watched apps and keyword slots used vs the plan's limits. Filter by kind or by an app they include. Cost: 0 credits. - `get\_events`: Significant changes on your watched apps and keywords, newest first: type, one-line title, AI summary, significance \(0–1\), app, country and the key payload fields \(version, changes old → new, rating drop, rank move, chart rank…\). Filter by type, app, watch, since and min\_significance. To check for n - `get\_developer`: A developer's profile: name, website, country, app count, total ratings and installs, all their apps \(most-rated first\) and the same company in the other store. get\_app shows the developer id as dev \:\. Cost: 1 credits. - `get\_job`: Poll a background store fetch that another call started \(its output said refreshing or still being fetched, with a job id\): status, per-country progress. When it is done, repeat the original call. Cost: 0 credits. - `list\_connections`: The user's connected App Store Connect, Play Console and Apple Ads accounts: connection id, provider, mode \(actions or read\_only\), status and the linked apps. Start here before read\_connection or propose\_action; secrets are never returned. No connections yet: the user adds them at https://dash.appgo - `read\_connection`: Read live data from one of the user's connected accounts. what='reviews' \(asc, play\_console\): the app's own reviews with reply status, unanswered=true for those without a developer reply; their review\_id feeds propose\_action review.reply \(Play only returns reviews from the last 7 days\). what='listin - `propose\_action`: Prepare a change to the user's connected account as a DRY RUN: nothing is written. AppGoat reads the live account and returns the before → after diff, guardrail results \(AI probabilities for store policy, tone and risky claims, plus checks such as character limits and bid jumps\) and an action id. AL - `apply\_action`: Go ahead with an action from propose\_action, after the user has seen its diff and agreed. Outcomes: applied \(written to the store / Apple Ads account, 1 credit; when the org has an auto-apply rule the guardrail score clears, or allows agents to approve\); pending\_approval \(a person must approve it in - `get\_action`: One action from propose\_action: its status \(draft, pending\_approval, approved, applied, failed, rejected\), diff, guardrail scores, the provider result or error, the approve link and the audit trail. Use it to check whether a pending action was approved and applied. Cost: 0 credits. - `reject\_action`: Discard a draft or pending action the user does not want; nothing is written to the account. Cost: 0 credits. - `audit\_app`: Run an App Audit of one app in one country: a 0–100 score, prioritised ASO actions with evidence, title / subtitle / keyword rewrites within the store character limits, and findings from listing, ratings, reviews, keywords and competitors, plus a shareable report page. Takes 1–3 minutes: waits about - `get\_audit`: Check on an App Audit that audit\_app started \(by its id, e.g. aud\_3fK9aQ2mXc81LpRt\): waits up to about 25 s for it to finish, then returns the report \(score, actions, metadata rewrites, findings, report page\) or its status. Cost: 0 credits. - `get\_insights`: What an app's users praise and complain about, from the AI tags on its reviews: top issues \(topics behind negative, bug, crash, UX and pricing reviews\) with last-30-days vs previous-30-days counts and sample reviews, topics, what each recent version changed in rating, sentiment and topics, and weekl - `list\_playbooks`: AppGoat playbooks: step-by-step recipes \(which tools to call, credit budget, decision rules, output format\) for app audits, app idea research, ASO metadata rewrites, weekly competitor digests, turning reviews into GitHub issues, and, on connected accounts, replying to every review, optimizing Apple Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html