{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_4pefxwszdfrk","handle":"appgoat","url":"https://wellknown.network/agents/appgoat","links":{"self":"https://wellknown.network/agents/appgoat/record.json","html":"https://wellknown.network/agents/appgoat","markdown":"https://wellknown.network/agents/appgoat/record.md","api":"https://wellknown.network/api/v1/agents/appgoat","status":"https://wellknown.network/api/v1/agents/appgoat/status","claim":"https://wellknown.network/agents/appgoat/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/appgoat/claim.json","badge":"https://wellknown.network/agents/appgoat/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/appgoat/history","tools":"https://wellknown.network/api/v1/agents/appgoat/tools"},"ard":{"identifier":"urn:air:api.appgoat.ai:server:appgoat","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"AppGoat","summary":"App Store and Google Play data: apps, reviews, keywords, charts, competitors, ASO playbooks.","description":"App Store and Google Play data: apps, reviews, keywords, charts, competitors, ASO playbooks.","publisher":{"name":"ai.appgoat","url":null},"homepage":"https://appgoat.ai","repository":null,"version":"0.2.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://api.appgoat.ai/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-23T17:34:02.044944Z","publishedAt":"2026-10-23T17:34:02.044944Z","registryName":"ai.appgoat/mcp"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"content.writing","name":"Writing & Editing","confidence":1,"provenance":"derived"},{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":1,"provenance":"derived"},{"slug":"analytics.reporting","name":"Reporting & Dashboards","confidence":1,"provenance":"derived"},{"slug":"content.seo","name":"SEO","confidence":0.938,"provenance":"derived"},{"slug":"code.review","name":"Code Review","confidence":0.885,"provenance":"derived"},{"slug":"infra.desktop","name":"Desktop Control","confidence":0.569,"provenance":"derived"},{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":0.51,"provenance":"derived"},{"slug":"communication.notifications","name":"Notifications","confidence":0.51,"provenance":"derived"}],"categories":["analytics","code","commerce","communication","content","infra"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 7h ago.","lastOkAt":"2026-10-27T04:24:29.726Z","lastProbedAt":"2026-10-27T04:24:29.726Z","statusComputedAt":"2026-10-27T04:27:10.555Z","reliability30d":{"probes":9,"successRate":1,"p50Ms":173,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":10,"ok":10,"authBoundaryOk":0,"serviceOk":10,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-27T11:26:01.465Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":390,"error":null,"detail":{"tools":[{"name":"get_app","description":"Look up one App Store or Google Play app: title, subtitle, developer, category, price, rating and histogram, installs (Play), version and dates, description, la"},{"name":"get_reviews","description":"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, topi"},{"name":"get_app_history","description":"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 (def"},{"name":"get_app_changes","description":"What changed in an app's store listing, newest first, with old and new values: version, release notes, title, subtitle, description, screenshots, icon, price, I"},{"name":"get_app_keywords","description":"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 trac"},{"name":"get_competitors","description":"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_ap"},{"name":"search_apps","description":"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,"},{"name":"get_charts","description":"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 capt"},{"name":"keyword_research","description":"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 "},{"name":"get_keyword_ranks","description":"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. Th"},{"name":"watch","description":"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, me"},{"name":"unwatch","description":"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"},{"name":"list_watches","description":"Your watches (apps, competitor sets, keyword sets), newest first, with id, apps, terms, countries, event types and whether they are paused, plus watched apps an"},{"name":"get_events","description":"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 fiel"},{"name":"get_developer","description":"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."},{"name":"get_job","description":"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 i"},{"name":"list_connections","description":"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. S"},{"name":"read_connection","description":"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"},{"name":"propose_action","description":"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"},{"name":"apply_action","description":"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;"},{"name":"get_action","description":"One action from propose_action: its status (draft, pending_approval, approved, applied, failed, rejected), diff, guardrail scores, the provider result or error,"},{"name":"reject_action","description":"Discard a draft or pending action the user does not want; nothing is written to the account. Cost: 0 credits."},{"name":"audit_app","description":"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"},{"name":"get_audit","description":"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, ac"},{"name":"get_insights","description":"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 las"},{"name":"list_playbooks","description":"AppGoat playbooks: step-by-step recipes (which tools to call, credit budget, decision rules, output format) for app audits, app idea research, ASO metadata rewr"}],"toolCount":26,"toolsHash":"ccf9a9d6272bfc1606f339fced81290cb384b30530d647123146b777d056e350","serverName":"appgoat","capabilities":["tools","prompts"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-27T04:24:29.726Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":128,"error":null,"detail":{"tools":[{"name":"get_app","description":"Look up one App Store or Google Play app: title, subtitle, developer, category, price, rating and histogram, installs (Play), version and dates, description, la"},{"name":"get_reviews","description":"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, topi"},{"name":"get_app_history","description":"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 (def"},{"name":"get_app_changes","description":"What changed in an app's store listing, newest first, with old and new values: version, release notes, title, subtitle, description, screenshots, icon, price, I"},{"name":"get_app_keywords","description":"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 trac"},{"name":"get_competitors","description":"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_ap"},{"name":"search_apps","description":"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,"},{"name":"get_charts","description":"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 capt"},{"name":"keyword_research","description":"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 "},{"name":"track_keywords","description":"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 cou"},{"name":"untrack_keywords","description":"Deprecated: use unwatch for keyword watches. Stops tracking keywords by id (from list_tracked_keywords or track_keywords): no new rankings are recorded and thei"},{"name":"list_tracked_keywords","description":"Deprecated: use list_watches (keyword watches list their slots). Your tracked keywords with id, store, country, popularity, depth, cadence, last ranking and cur"},{"name":"get_keyword_ranks","description":"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. Th"},{"name":"watch","description":"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, me"},{"name":"unwatch","description":"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"},{"name":"list_watches","description":"Your watches (apps, competitor sets, keyword sets), newest first, with id, apps, terms, countries, event types and whether they are paused, plus watched apps an"},{"name":"get_events","description":"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 fiel"},{"name":"get_developer","description":"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."},{"name":"get_job","description":"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 i"},{"name":"list_connections","description":"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. S"},{"name":"read_connection","description":"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"},{"name":"propose_action","description":"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"},{"name":"apply_action","description":"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;"},{"name":"get_action","description":"One action from propose_action: its status (draft, pending_approval, approved, applied, failed, rejected), diff, guardrail scores, the provider result or error,"},{"name":"reject_action","description":"Discard a draft or pending action the user does not want; nothing is written to the account. Cost: 0 credits."},{"name":"audit_app","description":"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"},{"name":"get_audit","description":"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, ac"},{"name":"get_insights","description":"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 las"},{"name":"list_playbooks","description":"AppGoat playbooks: step-by-step recipes (which tools to call, credit budget, decision rules, output format) for app audits, app idea research, ASO metadata rewr"}],"toolCount":29,"toolsHash":"f56a71713652755411d3a6f909f1034e18db0e3382ef3f03e1e4225a72ab0361","serverName":"appgoat","capabilities":["tools","prompts"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-26T21:23:44.529Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":166,"error":null,"detail":{"tools":[{"name":"get_app","description":"Look up one App Store or Google Play app: title, subtitle, developer, category, price, rating and histogram, installs (Play), version and dates, description, la"},{"name":"get_reviews","description":"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, topi"},{"name":"get_app_history","description":"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 (def"},{"name":"get_app_changes","description":"What changed in an app's store listing, newest first, with old and new values: version, release notes, title, subtitle, description, screenshots, icon, price, I"},{"name":"get_app_keywords","description":"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 trac"},{"name":"get_competitors","description":"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_ap"},{"name":"search_apps","description":"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,"},{"name":"get_charts","description":"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 capt"},{"name":"keyword_research","description":"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 "},{"name":"track_keywords","description":"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 cou"},{"name":"untrack_keywords","description":"Deprecated: use unwatch for keyword watches. Stops tracking keywords by id (from list_tracked_keywords or track_keywords): no new rankings are recorded and thei"},{"name":"list_tracked_keywords","description":"Deprecated: use list_watches (keyword watches list their slots). Your tracked keywords with id, store, country, popularity, depth, cadence, last ranking and cur"},{"name":"get_keyword_ranks","description":"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. Th"},{"name":"watch","description":"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, me"},{"name":"unwatch","description":"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"},{"name":"list_watches","description":"Your watches (apps, competitor sets, keyword sets), newest first, with id, apps, terms, countries, event types and whether they are paused, plus watched apps an"},{"name":"get_events","description":"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 fiel"},{"name":"get_developer","description":"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."},{"name":"get_job","description":"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 i"},{"name":"list_connections","description":"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. S"},{"name":"read_connection","description":"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"},{"name":"propose_action","description":"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"},{"name":"apply_action","description":"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;"},{"name":"get_action","description":"One action from propose_action: its status (draft, pending_approval, approved, applied, failed, rejected), diff, guardrail scores, the provider result or error,"},{"name":"reject_action","description":"Discard a draft or pending action the user does not want; nothing is written to the account. Cost: 0 credits."},{"name":"audit_app","description":"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"},{"name":"get_audit","description":"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, ac"},{"name":"get_insights","description":"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 las"},{"name":"list_playbooks","description":"AppGoat playbooks: step-by-step recipes (which tools to call, credit budget, decision rules, output format) for app audits, app idea research, ASO metadata rewr"}],"toolCount":29,"toolsHash":"f56a71713652755411d3a6f909f1034e18db0e3382ef3f03e1e4225a72ab0361","serverName":"appgoat","capabilities":["tools","prompts"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-26T14:26:48.417Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":249,"error":null,"detail":{"tools":[{"name":"get_app","description":"Look up one App Store or Google Play app: title, subtitle, developer, category, price, rating and histogram, installs (Play), version and dates, description, la"},{"name":"get_reviews","description":"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, topi"},{"name":"get_app_history","description":"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 (def"},{"name":"get_app_changes","description":"What changed in an app's store listing, newest first, with old and new values: version, release notes, title, subtitle, description, screenshots, icon, price, I"},{"name":"get_app_keywords","description":"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 trac"},{"name":"get_competitors","description":"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_ap"},{"name":"search_apps","description":"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,"},{"name":"get_charts","description":"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 capt"},{"name":"keyword_research","description":"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 "},{"name":"track_keywords","description":"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 cou"},{"name":"untrack_keywords","description":"Deprecated: use unwatch for keyword watches. Stops tracking keywords by id (from list_tracked_keywords or track_keywords): no new rankings are recorded and thei"},{"name":"list_tracked_keywords","description":"Deprecated: use list_watches (keyword watches list their slots). Your tracked keywords with id, store, country, popularity, depth, cadence, last ranking and cur"},{"name":"get_keyword_ranks","description":"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. Th"},{"name":"watch","description":"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, me"},{"name":"unwatch","description":"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"},{"name":"list_watches","description":"Your watches (apps, competitor sets, keyword sets), newest first, with id, apps, terms, countries, event types and whether they are paused, plus watched apps an"},{"name":"get_events","description":"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 fiel"},{"name":"get_developer","description":"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."},{"name":"get_job","description":"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 i"},{"name":"list_connections","description":"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. S"},{"name":"read_connection","description":"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"},{"name":"propose_action","description":"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"},{"name":"apply_action","description":"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;"},{"name":"get_action","description":"One action from propose_action: its status (draft, pending_approval, approved, applied, failed, rejected), diff, guardrail scores, the provider result or error,"},{"name":"reject_action","description":"Discard a draft or pending action the user does not want; nothing is written to the account. Cost: 0 credits."},{"name":"audit_app","description":"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"},{"name":"get_audit","description":"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, ac"},{"name":"get_insights","description":"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 las"},{"name":"list_playbooks","description":"AppGoat playbooks: step-by-step recipes (which tools to call, credit budget, decision rules, output format) for app audits, app idea research, ASO metadata rewr"}],"toolCount":29,"toolsHash":"f56a71713652755411d3a6f909f1034e18db0e3382ef3f03e1e4225a72ab0361","serverName":"appgoat","capabilities":["tools","prompts"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-26T07:23:14.304Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":174,"error":null,"detail":{"tools":[{"name":"get_app","description":"Look up one App Store or Google Play app: title, subtitle, developer, category, price, rating and histogram, installs (Play), version and dates, description, la"},{"name":"get_reviews","description":"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, topi"},{"name":"get_app_history","description":"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 (def"},{"name":"get_app_changes","description":"What changed in an app's store listing, newest first, with old and new values: version, release notes, title, subtitle, description, screenshots, icon, price, I"},{"name":"get_app_keywords","description":"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 trac"},{"name":"get_competitors","description":"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_ap"},{"name":"search_apps","description":"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,"},{"name":"get_charts","description":"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 capt"},{"name":"keyword_research","description":"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 "},{"name":"track_keywords","description":"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 cou"},{"name":"untrack_keywords","description":"Deprecated: use unwatch for keyword watches. Stops tracking keywords by id (from list_tracked_keywords or track_keywords): no new rankings are recorded and thei"},{"name":"list_tracked_keywords","description":"Deprecated: use list_watches (keyword watches list their slots). Your tracked keywords with id, store, country, popularity, depth, cadence, last ranking and cur"},{"name":"get_keyword_ranks","description":"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. Th"},{"name":"watch","description":"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, me"},{"name":"unwatch","description":"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"},{"name":"list_watches","description":"Your watches (apps, competitor sets, keyword sets), newest first, with id, apps, terms, countries, event types and whether they are paused, plus watched apps an"},{"name":"get_events","description":"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 fiel"},{"name":"get_developer","description":"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."},{"name":"get_job","description":"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 i"},{"name":"list_connections","description":"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. S"},{"name":"read_connection","description":"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"},{"name":"propose_action","description":"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"},{"name":"apply_action","description":"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;"},{"name":"get_action","description":"One action from propose_action: its status (draft, pending_approval, approved, applied, failed, rejected), diff, guardrail scores, the provider result or error,"},{"name":"reject_action","description":"Discard a draft or pending action the user does not want; nothing is written to the account. Cost: 0 credits."},{"name":"audit_app","description":"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"},{"name":"get_audit","description":"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, ac"},{"name":"get_insights","description":"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 las"},{"name":"list_playbooks","description":"AppGoat playbooks: step-by-step recipes (which tools to call, credit budget, decision rules, output format) for app audits, app idea research, ASO metadata rewr"}],"toolCount":29,"toolsHash":"f56a71713652755411d3a6f909f1034e18db0e3382ef3f03e1e4225a72ab0361","serverName":"appgoat","capabilities":["tools","prompts"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T23:25:35.601Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":207,"error":null,"detail":{"tools":[{"name":"get_app","description":"Look up one App Store or Google Play app: title, subtitle, developer, category, price, rating and histogram, installs (Play), version and dates, description, la"},{"name":"get_reviews","description":"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, topi"},{"name":"get_app_history","description":"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 (def"},{"name":"get_app_changes","description":"What changed in an app's store listing, newest first, with old and new values: version, release notes, title, subtitle, description, screenshots, icon, price, I"},{"name":"get_app_keywords","description":"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 trac"},{"name":"get_competitors","description":"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_ap"},{"name":"search_apps","description":"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,"},{"name":"get_charts","description":"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 capt"},{"name":"keyword_research","description":"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 "},{"name":"track_keywords","description":"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 cou"},{"name":"untrack_keywords","description":"Deprecated: use unwatch for keyword watches. Stops tracking keywords by id (from list_tracked_keywords or track_keywords): no new rankings are recorded and thei"},{"name":"list_tracked_keywords","description":"Deprecated: use list_watches (keyword watches list their slots). Your tracked keywords with id, store, country, popularity, depth, cadence, last ranking and cur"},{"name":"get_keyword_ranks","description":"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. Th"},{"name":"watch","description":"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, me"},{"name":"unwatch","description":"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"},{"name":"list_watches","description":"Your watches (apps, competitor sets, keyword sets), newest first, with id, apps, terms, countries, event types and whether they are paused, plus watched apps an"},{"name":"get_events","description":"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 fiel"},{"name":"get_developer","description":"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."},{"name":"get_job","description":"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 i"},{"name":"list_connections","description":"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. S"},{"name":"read_connection","description":"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"},{"name":"propose_action","description":"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"},{"name":"apply_action","description":"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;"},{"name":"get_action","description":"One action from propose_action: its status (draft, pending_approval, approved, applied, failed, rejected), diff, guardrail scores, the provider result or error,"},{"name":"reject_action","description":"Discard a draft or pending action the user does not want; nothing is written to the account. Cost: 0 credits."},{"name":"audit_app","description":"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"},{"name":"get_audit","description":"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, ac"},{"name":"get_insights","description":"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 las"},{"name":"list_playbooks","description":"AppGoat playbooks: step-by-step recipes (which tools to call, credit budget, decision rules, output format) for app audits, app idea research, ASO metadata rewr"}],"toolCount":29,"toolsHash":"f56a71713652755411d3a6f909f1034e18db0e3382ef3f03e1e4225a72ab0361","serverName":"appgoat","capabilities":["tools","prompts"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T16:27:36.072Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":236,"error":null,"detail":{"tools":[{"name":"get_app","description":"Look up one App Store or Google Play app: title, subtitle, developer, category, price, rating and histogram, installs (Play), version and dates, description, la"},{"name":"get_reviews","description":"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, topi"},{"name":"get_app_history","description":"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 (def"},{"name":"get_app_changes","description":"What changed in an app's store listing, newest first, with old and new values: version, release notes, title, subtitle, description, screenshots, icon, price, I"},{"name":"get_app_keywords","description":"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 trac"},{"name":"get_competitors","description":"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_ap"},{"name":"search_apps","description":"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,"},{"name":"get_charts","description":"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 capt"},{"name":"keyword_research","description":"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 "},{"name":"track_keywords","description":"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 cou"},{"name":"untrack_keywords","description":"Deprecated: use unwatch for keyword watches. Stops tracking keywords by id (from list_tracked_keywords or track_keywords): no new rankings are recorded and thei"},{"name":"list_tracked_keywords","description":"Deprecated: use list_watches (keyword watches list their slots). Your tracked keywords with id, store, country, popularity, depth, cadence, last ranking and cur"},{"name":"get_keyword_ranks","description":"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. Th"},{"name":"watch","description":"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, me"},{"name":"unwatch","description":"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"},{"name":"list_watches","description":"Your watches (apps, competitor sets, keyword sets), newest first, with id, apps, terms, countries, event types and whether they are paused, plus watched apps an"},{"name":"get_events","description":"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 fiel"},{"name":"get_developer","description":"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."},{"name":"get_job","description":"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 i"},{"name":"list_connections","description":"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. S"},{"name":"read_connection","description":"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"},{"name":"propose_action","description":"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"},{"name":"apply_action","description":"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;"},{"name":"get_action","description":"One action from propose_action: its status (draft, pending_approval, approved, applied, failed, rejected), diff, guardrail scores, the provider result or error,"},{"name":"reject_action","description":"Discard a draft or pending action the user does not want; nothing is written to the account. Cost: 0 credits."},{"name":"audit_app","description":"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"},{"name":"get_audit","description":"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, ac"},{"name":"get_insights","description":"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 las"},{"name":"list_playbooks","description":"AppGoat playbooks: step-by-step recipes (which tools to call, credit budget, decision rules, output format) for app audits, app idea research, ASO metadata rewr"}],"toolCount":29,"toolsHash":"f56a71713652755411d3a6f909f1034e18db0e3382ef3f03e1e4225a72ab0361","serverName":"appgoat","capabilities":["tools","prompts"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T09:28:41.908Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":160,"error":null,"detail":{"tools":[{"name":"get_app","description":"Look up one App Store or Google Play app: title, subtitle, developer, category, price, rating and histogram, installs (Play), version and dates, description, la"},{"name":"get_reviews","description":"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, topi"},{"name":"get_app_history","description":"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 (def"},{"name":"get_app_changes","description":"What changed in an app's store listing, newest first, with old and new values: version, release notes, title, subtitle, description, screenshots, icon, price, I"},{"name":"get_app_keywords","description":"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 trac"},{"name":"get_competitors","description":"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_ap"},{"name":"search_apps","description":"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,"},{"name":"get_charts","description":"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 capt"},{"name":"keyword_research","description":"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 "},{"name":"track_keywords","description":"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 cou"},{"name":"untrack_keywords","description":"Deprecated: use unwatch for keyword watches. Stops tracking keywords by id (from list_tracked_keywords or track_keywords): no new rankings are recorded and thei"},{"name":"list_tracked_keywords","description":"Deprecated: use list_watches (keyword watches list their slots). Your tracked keywords with id, store, country, popularity, depth, cadence, last ranking and cur"},{"name":"get_keyword_ranks","description":"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. Th"},{"name":"watch","description":"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, me"},{"name":"unwatch","description":"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"},{"name":"list_watches","description":"Your watches (apps, competitor sets, keyword sets), newest first, with id, apps, terms, countries, event types and whether they are paused, plus watched apps an"},{"name":"get_events","description":"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 fiel"},{"name":"get_developer","description":"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."},{"name":"get_job","description":"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 i"},{"name":"list_connections","description":"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. S"},{"name":"read_connection","description":"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"},{"name":"propose_action","description":"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"},{"name":"apply_action","description":"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;"},{"name":"get_action","description":"One action from propose_action: its status (draft, pending_approval, approved, applied, failed, rejected), diff, guardrail scores, the provider result or error,"},{"name":"reject_action","description":"Discard a draft or pending action the user does not want; nothing is written to the account. Cost: 0 credits."},{"name":"audit_app","description":"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"},{"name":"get_audit","description":"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, ac"},{"name":"get_insights","description":"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 las"},{"name":"list_playbooks","description":"AppGoat playbooks: step-by-step recipes (which tools to call, credit budget, decision rules, output format) for app audits, app idea research, ASO metadata rewr"}],"toolCount":29,"toolsHash":"f56a71713652755411d3a6f909f1034e18db0e3382ef3f03e1e4225a72ab0361","serverName":"appgoat","capabilities":["tools","prompts"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T02:25:48.296Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":128,"error":null,"detail":{"tools":[{"name":"get_app","description":"Look up one App Store or Google Play app: title, subtitle, developer, category, price, rating and histogram, installs (Play), version and dates, description, la"},{"name":"get_reviews","description":"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, topi"},{"name":"get_app_history","description":"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 (def"},{"name":"get_app_changes","description":"What changed in an app's store listing, newest first, with old and new values: version, release notes, title, subtitle, description, screenshots, icon, price, I"},{"name":"get_app_keywords","description":"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 trac"},{"name":"get_competitors","description":"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_ap"},{"name":"search_apps","description":"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,"},{"name":"get_charts","description":"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 capt"},{"name":"keyword_research","description":"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 "},{"name":"track_keywords","description":"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 cou"},{"name":"untrack_keywords","description":"Deprecated: use unwatch for keyword watches. Stops tracking keywords by id (from list_tracked_keywords or track_keywords): no new rankings are recorded and thei"},{"name":"list_tracked_keywords","description":"Deprecated: use list_watches (keyword watches list their slots). Your tracked keywords with id, store, country, popularity, depth, cadence, last ranking and cur"},{"name":"get_keyword_ranks","description":"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. Th"},{"name":"watch","description":"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, me"},{"name":"unwatch","description":"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"},{"name":"list_watches","description":"Your watches (apps, competitor sets, keyword sets), newest first, with id, apps, terms, countries, event types and whether they are paused, plus watched apps an"},{"name":"get_events","description":"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 fiel"},{"name":"get_developer","description":"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."},{"name":"get_job","description":"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 i"},{"name":"list_connections","description":"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. S"},{"name":"read_connection","description":"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"},{"name":"propose_action","description":"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"},{"name":"apply_action","description":"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;"},{"name":"get_action","description":"One action from propose_action: its status (draft, pending_approval, approved, applied, failed, rejected), diff, guardrail scores, the provider result or error,"},{"name":"reject_action","description":"Discard a draft or pending action the user does not want; nothing is written to the account. Cost: 0 credits."},{"name":"audit_app","description":"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"},{"name":"get_audit","description":"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, ac"},{"name":"get_insights","description":"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 las"},{"name":"list_playbooks","description":"AppGoat playbooks: step-by-step recipes (which tools to call, credit budget, decision rules, output format) for app audits, app idea research, ASO metadata rewr"}],"toolCount":29,"toolsHash":"f56a71713652755411d3a6f909f1034e18db0e3382ef3f03e1e4225a72ab0361","serverName":"appgoat","capabilities":["tools","prompts"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T18:31:42.162Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":204,"error":null,"detail":{"tools":[{"name":"get_app","description":"Look up one App Store or Google Play app: title, subtitle, developer, category, price, rating and histogram, installs (Play), version and dates, description, la"},{"name":"get_reviews","description":"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, topi"},{"name":"get_app_history","description":"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 (def"},{"name":"get_app_changes","description":"What changed in an app's store listing, newest first, with old and new values: version, release notes, title, subtitle, description, screenshots, icon, price, I"},{"name":"get_app_keywords","description":"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 trac"},{"name":"get_competitors","description":"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_ap"},{"name":"search_apps","description":"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,"},{"name":"get_charts","description":"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 capt"},{"name":"keyword_research","description":"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 "},{"name":"track_keywords","description":"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 cou"},{"name":"untrack_keywords","description":"Deprecated: use unwatch for keyword watches. Stops tracking keywords by id (from list_tracked_keywords or track_keywords): no new rankings are recorded and thei"},{"name":"list_tracked_keywords","description":"Deprecated: use list_watches (keyword watches list their slots). Your tracked keywords with id, store, country, popularity, depth, cadence, last ranking and cur"},{"name":"get_keyword_ranks","description":"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. Th"},{"name":"watch","description":"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, me"},{"name":"unwatch","description":"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"},{"name":"list_watches","description":"Your watches (apps, competitor sets, keyword sets), newest first, with id, apps, terms, countries, event types and whether they are paused, plus watched apps an"},{"name":"get_events","description":"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 fiel"},{"name":"get_developer","description":"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."},{"name":"get_job","description":"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 i"},{"name":"list_connections","description":"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. S"},{"name":"read_connection","description":"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"},{"name":"propose_action","description":"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"},{"name":"apply_action","description":"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;"},{"name":"get_action","description":"One action from propose_action: its status (draft, pending_approval, approved, applied, failed, rejected), diff, guardrail scores, the provider result or error,"},{"name":"reject_action","description":"Discard a draft or pending action the user does not want; nothing is written to the account. Cost: 0 credits."},{"name":"audit_app","description":"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"},{"name":"get_audit","description":"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, ac"},{"name":"get_insights","description":"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 las"},{"name":"list_playbooks","description":"AppGoat playbooks: step-by-step recipes (which tools to call, credit budget, decision rules, output format) for app audits, app idea research, ASO metadata rewr"}],"toolCount":29,"toolsHash":"f56a71713652755411d3a6f909f1034e18db0e3382ef3f03e1e4225a72ab0361","serverName":"appgoat","capabilities":["tools","prompts"],"serverVersion":"0.2.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"get_app","description":"Look up one App Store or Google Play app: title, subtitle, developer, category, price, rating and histogram, installs (Play), version and dates, description, la"},{"name":"get_reviews","description":"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, topi"},{"name":"get_app_history","description":"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 (def"},{"name":"get_app_changes","description":"What changed in an app's store listing, newest first, with old and new values: version, release notes, title, subtitle, description, screenshots, icon, price, I"},{"name":"get_app_keywords","description":"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 trac"},{"name":"get_competitors","description":"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_ap"},{"name":"search_apps","description":"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,"},{"name":"get_charts","description":"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 capt"},{"name":"keyword_research","description":"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 "},{"name":"get_keyword_ranks","description":"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. Th"},{"name":"watch","description":"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, me"},{"name":"unwatch","description":"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"},{"name":"list_watches","description":"Your watches (apps, competitor sets, keyword sets), newest first, with id, apps, terms, countries, event types and whether they are paused, plus watched apps an"},{"name":"get_events","description":"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 fiel"},{"name":"get_developer","description":"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."},{"name":"get_job","description":"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 i"},{"name":"list_connections","description":"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. S"},{"name":"read_connection","description":"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"},{"name":"propose_action","description":"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"},{"name":"apply_action","description":"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;"},{"name":"get_action","description":"One action from propose_action: its status (draft, pending_approval, approved, applied, failed, rejected), diff, guardrail scores, the provider result or error,"},{"name":"reject_action","description":"Discard a draft or pending action the user does not want; nothing is written to the account. Cost: 0 credits."},{"name":"audit_app","description":"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"},{"name":"get_audit","description":"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, ac"},{"name":"get_insights","description":"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 las"},{"name":"list_playbooks","description":"AppGoat playbooks: step-by-step recipes (which tools to call, credit budget, decision rules, output format) for app audits, app idea research, ASO metadata rewr"}],"package":null,"toolSurface":{"id":"ts_yh38qe58dcf9","endpointId":"ep_g7ku3jkxjjgw","hash":"ccf9a9d6272bfc1606f339fced81290cb384b30530d647123146b777d056e350","toolCount":26,"serverName":"appgoat","serverVersion":"0.2.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-27T11:26:01.471Z","lastSeenAt":"2026-10-27T11:26:01.471Z","observations":1,"toolNames":["get_app","get_reviews","get_app_history","get_app_changes","get_app_keywords","get_competitors","search_apps","get_charts","keyword_research","get_keyword_ranks","watch","unwatch","list_watches","get_events","get_developer","get_job","list_connections","read_connection","propose_action","apply_action","get_action","reject_action","audit_app","get_audit","get_insights","list_playbooks"],"distinctSurfaces":2},"endpointFacts":[{"id":"ep_g7ku3jkxjjgw","url":"https://api.appgoat.ai/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-26T07:23:14.314Z","auth":{"observedAt":"2026-10-26T07:23:14.369Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://api.appgoat.ai/.well-known/oauth-protected-resource/mcp","resource":"https://api.appgoat.ai/mcp","authorizationServers":["https://api.appgoat.ai"],"scopesSupported":["mcp"]},"authorizationServer":{"url":"https://api.appgoat.ai/.well-known/oauth-authorization-server","issuer":"https://api.appgoat.ai","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["client_secret_basic","client_secret_post","none"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":false},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":false,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-26T07:23:14.388Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"appgoat.ai","issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validFrom":"2026-10-20T16:02:12.000Z","validTo":"2027-01-18T16:02:11.000Z","daysToExpiry":83,"sanCount":2,"fingerprint256":"E2:9C:B6:CA:C9:98:57:5B:E5:D6:CB:AE:CD:C0:15:3E:86:73:F8:10:8B:F0:C4:1F:D9:77:79:FD:82:7D:3F:AE"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"ai.appgoat/mcp","url":"https://registry.modelcontextprotocol.io/v0/servers/ai.appgoat%2Fmcp","firstSeenAt":"2026-10-24T17:21:07.440Z","fetchedAt":"2026-10-24T17:21:07.440Z","normalizedAt":"2026-10-24T17:21:07.440Z"}]},"firstSeenAt":"2026-10-24T17:21:07.440Z","updatedAt":"2026-10-27T04:28:37.071Z"}