
AppGoat MCP server
Which MCP servers are AppGoat's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-29
- Registry nameai.appgoat/mcpverified in the MCP registry
The registry name sits under appgoat.ai. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-29
- Tools26
- Server calls itselfappgoat
- Server version0.2.0
- Protocol version2025-06-18
On 2026-10-29 the server answered initialize and tools/list without a sign-in. First answer in 252 ms.
- Its tools do every use case we checked: find keywords and rewrite app store listing subtitles; watch competitors for rank jumps and new versions.
- Checked on 5 of the 7 days it takes to judge reliability.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP scoreafter a weeka score needs 7 daily checks: 5 so far
- What an agent can do with it2 of 2 use cases
- Answeredmeasuring5 of the 7 daily checks it takes to print a share
- Median first answer261 ms
- Space in an agent's context≈ 9,238 tokensthe definitions of all its tools (26), which an agent carries on every turn
- Tool definitionsA · 100 of 100
- Typed results0 of 26 toolsdeclared outputSchema: results come typed, read once
- Every tool passes all six checks.
What an agent can do with it
- can do · find keywords and rewrite app store listing subtitles
- can do · watch competitors for rank jumps and new versions
- not sure · draft replies to app reviews and file bug issues
Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?
Worth a look
None of the five warning signs in these definitions.
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
get_appLook 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…
get_reviewsRead 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…
get_app_historyAn 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…
get_app_changesWhat 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…
get_app_keywordsThe 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…
get_competitorsAn 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_appsFind 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…
get_chartsA 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…
keyword_researchKeyword 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…
get_keyword_ranksRanking 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…
watchWatch 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…
unwatchStop 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_watchesYour 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…
get_eventsSignificant 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…
get_developerA 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 <store>:<id>. Cost: 1 credits.
get_jobPoll 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_connectionsThe 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…
read_connectionRead 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…
propose_actionPrepare 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…
apply_actionGo 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…
get_actionOne 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…
reject_actionDiscard a draft or pending action the user does not want; nothing is written to the account. Cost: 0 credits.
audit_appRun 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…
get_auditCheck 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_insightsWhat 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…
list_playbooksAppGoat 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…
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"appgoat": {
"type": "http",
"url": "https://api.appgoat.ai/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http appgoat https://api.appgoat.ai/mcpclaude.ai, ChatGPT and other clients: add https://api.appgoat.ai/mcp as a custom connector in the settings.
OpenAPI spec
38 paths, read 2026-10-29. Open the spec ↗
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Cookies
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.