Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Authorization not required, issuer https://api.authrice.com
Authorization not required, issuer https://api.authrice.com
Authorization not required, issuer https://api.authrice.com
Recently observed → Live
Live → Recently observed
Authorization not required, issuer https://api.authrice.com
Authorization not required, issuer https://api.authrice.com
Authorization not required, issuer https://api.authrice.com
Authorization not required, issuer https://api.authrice.com
Authorization not required, issuer https://api.authrice.com
Authorization not required, issuer https://api.authrice.com
Changed the definition of "get_keyword_overview" and "list_google_play_reviews"
{"destructiveHint":false,"idempotentHint":truefalse,"openWorldHint":true,"readOnlyHint":truefalse,"title":"Look up keyword search volume"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true,"title":"Read recent Google Play reviews"}
Added "open_appskyline" (14 tools before, 15 now)
AppSkyline — Use this when someone wants to open AppSkyline and browse their workspace interactively. Apps, connected stores and tracked keywords. Starts with up to 100 items. Not for changing data.
Authorization not required, issuer https://api.authrice.com
Certificate changed, valid to 2026-12-27
Authorization not required, issuer https://api.authrice.com
Changed the definition of "add_keyword", "delete_keyword", "get_app" and 11 more
AddTracktrackeda new keyword
AddUseathisnewwhentrackedsomeonekeywordasks toan
Authorization not required, issuer https://api.authrice.com
Recently observed → Live
Live → Recently observed
Authorization not required, issuer https://api.authrice.com
Authorization not required, issuer https://api.authrice.com
Authorization not required, issuer https://api.authrice.com
Authorization not required, issuer https://api.authrice.com
Changed the definition of "list_apps" and "show_app_overview"
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{},"type":"object"}
{"$schema":"httphttps://json-schema.org/draft-07/schema#","additionalProperties//json-schema.org/draft/2020-12/schema":false,"properties":{"appId":{"description":" ⟨15 unchanged words⟩
Certificate recorded, valid to 2026-10-29
Authorization not required
First tool surface recorded: 14 tools (server version 0.2.3)
Showing the latest 28 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨5 unchanged words⟩ ,"properties":{"appId":{"description":"AppskylineAppSkyline app idto attach the keyword to(uuid)","maxLength":200,"minLength":1,"type":"string"},"country":{"description":"Two-letter store country code(e.g.suchUS)as US; without one the weekly rank check skips this keyword","maxLength":10,"type":"string"},"language":{"description":"Two-letter language code(e.g.such as en)","maxLength":32,"type":"string"},"searchTerms":{"description":"The keywordKeyword phrase to track, as users type it in the store, 1 to 200 characters","maxLength":200,"minLength":1,"type ⟨6 unchanged words⟩
⟨4 unchanged words⟩ openWorldHint":false,"readOnlyHint":false,"title":"AddTracktrackeda new keyword"}
DeleteStoptrackedtracking a keyword
PermanentlyUsedeletethisawhentrackedsomeoneAppskylineaskskeywordtobystopid.trackingIdempotentone—ofdeletingtheir keywords. Returns deleted, or not-found for analready-deletedunknownkeywordidisoraoneno-op.outsideThisthestopsaccount.collectingWeeklynewrankrankingcheckssnapshots;stophistoricalandsearchpastrowssnapshotsinstay,theleaving*-searchesacollectionsgapareifnotitaffected.is tracked again later. Not for pausing tracking temporarily.
⟨6 unchanged words⟩ ":{"id":{"description":"Keyword idto delete","maxLength":200,"minLength":1,"type ⟨5 unchanged words⟩
⟨4 unchanged words⟩ openWorldHint":false,"readOnlyHint":false,"title":"DeleteStoptrackedtracking a keyword"}
Get app detailsFetchUseathissinglewhenAppskylinesomeoneappasksbyaboutid.oneReturnsofthetheirappAppSkylinemetadataapps,formattedsuch asMarkdownwhich(stores it is on or which languages it supports. Returns the app's name, default and supported locales,per-storeApp Store, Mac App Store, Google Play and Microsoft Store ids,creation/editandtimes).creation and edit times. Not for the live public store page or ratings.
⟨5 unchanged words⟩ ,"properties":{"appId":{"description":"AppAppSkyline app id (uuid)","maxLength":200,"minLength ⟨7 unchanged words⟩
⟨84 unchanged words⟩ :"object"},{"type":"null"}],"description":"Null when the app is not in the signed-in account"},"status":{"enum":["found", ⟨8 unchanged words⟩
⟨5 unchanged words⟩ false,"readOnlyHint":true,"title":"Get app details"}
Getappdownloadsengagementandsummaryinstalls
Summarize downloads, installs, uninstalls,Usecrashesthisandwhenothersomeoneengagementaskstotalshowreportedmanybydownloads,ainstalls,storeuninstallsfororonecrashesAppskylinetheir app had over adate window.period. Returnsthe aggregatestore-reported totals, themostlatestrecent30 daily rows,andthetopterritories.countriesMetricfornamesonedifferappperandstorestore;becausemetriceachnamesstoredifferreportsbyitsstore.ownNotset.for keyword rankings.
⟨5 unchanged words⟩ ,"properties":{"appId":{"description":"AppskylineAppSkyline app id (uuid)","maxLength":200,"minLength":1,"type":"string"},"days":{"description":"Rolling windowsizeofinthe last 1 to 365 days, used when noexplicitdates aregivengiven; omit dates and days for every synced day","exclusiveMinimum":0,"maximum":365,"type":"integer"},"endDate":{"description":"EndLast day of the window asYYYY-MM-DDYYYY-MM-DD; applies only together with startDate","pattern":"^\\d{4}-\\d{2}-\\d ⟨3 unchanged words⟩ :"string"},"startDate":{"description":"StartFirst day of the window asYYYY-MM-DDYYYY-MM-DD; applies only together with endDate
⟨75 unchanged words⟩ :"object"},{"type":"null"}],"description":"The most recent 30 days of one daily metric series"},"dataThrough":{"anyOf":[{"maxLength" ⟨25 unchanged words⟩ ,"type":"string"},"topTerritories":{"description":"Up to 8 leading countries or territories by downloads or installs","items":{"maxLength":100,"type":"string"},"maxItems":8,"type":"array"},"totals":{"description":"Store-reported totals for the window; metric names differ by store","items":{"additionalProperties":false,"properties":{ ⟨38 unchanged words⟩
⟨5 unchanged words⟩ :false,"readOnlyHint":true,"title":"Getappdownloadsengagementandsummaryinstalls"}
GetShow keyword rank history
GetUsethethishistoricalwhenrankingsomeonetimeseriesasks how their app's ranking foranaapp,keywordterm,hasandchangedcountryoveracrosstimeday-by-dayinsnapshotsonestoredstorebyandAppskyline.country. ReturnsatheMarkdownapp'stablerankofon each date AppSkyline stored a search snapshot,ranknewest first,anduptotaltoresults365scannedrows;thattrackedday.keywords are re-checked weekly. Not for today's live rank.
⟨5 unchanged words⟩ ,"properties":{"appId":{"description":"AppskylineAppSkyline app id (uuid)","maxLength":200,"minLength":1,"type":"string"},"country":{"description":"Two-letter store country code(e.g.such as US,or IT (required)","maxLength":10,"minLength":1,"type":"string"},"limit":{"description":"MaximumSnapshotsnumbertoofreturn,historynewestrowsfirst, from 1 toreturn365;(newestdefaultsfirst)
⟨45 unchanged words⟩ ,"type":"integer"},"snapshots":{"description":"One row per stored search snapshot, newest first; rank is null when the app was not in that snapshot","items":{"additionalProperties":false,"properties":{" ⟨94 unchanged words⟩
⟨4 unchanged words⟩ openWorldHint":false,"readOnlyHint":true,"title":"GetShow keyword rank history"}
GetLook up keywordsearch-volumesearchoverviewvolume
LookUseupthis when someone asks how popular a keyword is or which keyword ideas are worth targeting. Returns monthlysearchGoogle web-search volume (a demand proxy,keywordnot app-store search counts), difficulty, CPC and competitionlevelfor up to 50searchterms in one country.Values come from Appskyline's shared DataForSEO cache; termsTerms missingor stale infrom the 30-day cache trigger alive,billableupstream lookup, so batch terms rather than callinglookup.onceNotperforkeyword.rankings.
⟨6 unchanged words⟩ "country":{"description":"Two-letter country code(e.g.such as US,or IT (required)","maxLength":2,"minLength":2," ⟨7 unchanged words⟩ "lang":{"description":"Two-letter language code(e.g.such as en,it)or it; optional","maxLength":32,"type":"string"},"terms":{"description":"SearchKeywordtermsideas to look up(maxin one batch, 1 to 50pertermscallof up to 200 characters,nonone
⟨11 unchanged words⟩ ,"type":"string"},"keywords":{"description":"Google web-search demand per term from the shared 30-day cache, highest volume first; a proxy for interest, not app-store search counts","items":{"additionalProperties":false,"properties":{" ⟨99 unchanged words⟩
⟨4 unchanged words⟩ openWorldHint":true,"readOnlyHint":true,"title":"GetLook up keywordsearch-volumesearchoverviewvolume"}
GetCheck an app's keyword rank
Look up theUsecurrentthisrankingwhenofsomeoneaasksspecificwhereAppskylinetheir app ranks for a keywordinrightanowgivenin one store+and country. Returns"ApptheXapp'srankslive#Nposition,oforM"not-ranked,orafter"notscanninginthe topN"50ifresultsthebyappdefaultdoesandnotupappeartoin200,theandscannedrendersresults.a rank card. Not for how a rank changed over time.
⟨5 unchanged words⟩ ,"properties":{"appId":{"description":"AppskylineAppSkyline app id (uuid)","maxLength":200,"minLength":1,"type":"string"},"country":{"description":"Two-letter store country code(e.g.such as US,IT)or IT; defaults to US","maxLength":10,"type":"string"},"lang":{"description":"Two-letter language code(e.g.such as en or it; defaults to en except on Google Play,it)which uses the store default","maxLength":32,"type":"string"},"num":{"default":50,"description":"How many search results to scanwhen lookingfor the app,(defaultfrom50,1max
⟨55 unchanged words⟩ :"integer"},{"type":"null"}],"description":"1-based position; null unless status is ranked"},"resultsScanned":{"description":"How many results were scanned; report a rank as #N of this","maximum":200,"minimum":0,"type": ⟨35 unchanged words⟩
⟨4 unchanged words⟩ openWorldHint":true,"readOnlyHint":true,"title":"GetCheck an app's keyword rank"}
GetReadpublicany app's store listing
Fetch theUsepublicthisstorewhenlistingsomeoneforasksanyaboutappabycompetitor'sitsorstore-nativeanyidapp's(notpublicjuststoreappspage,trackedsuchinasAppskyline):itstitlerating,developer,numberratingof ratings, price, version,releaseordates,lastgenres,update.andReturnstruncatedthe live listing for one store id, with description/and releasenotes.notesUsefulcut to 600 characters. Not forcompetitoryourresearch.own app's synced text per language.
⟨5 unchanged words⟩ properties":{"country":{"description":"Two-letter store country code(e.g.such as US,IT)or IT; defaults to the store's own default","maxLength":10,"type":"string"},"lang":{"description":"Two-letter language code(e.g.such as en,it)or it; defaults to the store's own default","maxLength":32,"type":"string"},"store":{"description":"Which storeStore to read:theios-app-store,listingmacos-app-store,fromgoogle-play or microsoft-store","enum":["ios-app-store","macos-app-store"," ⟨3 unchanged words⟩ :"string"},"storeId":{"description":"Store-nativeThe
⟨130 unchanged words⟩ :"number"},{"type":"null"}],"description":"Average rating as the store reports it"},"screenshotCount":{"maximum":10000,"minimum" ⟨46 unchanged words⟩ :"object"},{"type":"null"}],"description":"The live public listing; description and release notes are cut to 600 characters. Null when the store has no app with that id."},"status":{"enum":["found", ⟨27 unchanged words⟩
⟨4 unchanged words⟩ openWorldHint":true,"readOnlyHint":true,"title":"GetReadpublicany app's store listing"}
GetCheck your store listingmetadataand review status
ReadUsethethisstore-listingwhenmetadatasomeoneAppskylineaskshasaboutsyncedtheirforownoneapp'soflistingyourtextappsper—language,persuchlocaleasnamethe title, subtitle, keywords(withortheirreleasecharacternotes,countoragainstwhetherApple'sthe100-characterlatestlimit),versionpromotionalistext,stillreleaseinnotesreview or approved. Returns the metadata AppSkyline last synced for each locale, with the version,andits reviewstate.stateRead-only:andittheneverkeyworddownloadsfield'sfromlengthoragainstuploadsApple's 100-character limit; longer texts are cut tothe600store.characters. Not for a live competitor listing.
⟨5 unchanged words⟩ ,"properties":{"appId":{"description":"AppskylineAppSkyline app id (uuid)","maxLength":200,"minLength":1,"type":"string"},"locale":{"description":"Onlyreturnthis locale,(e.g.written as in the listing such as en-US,it)or it; every synced locale when absent","maxLength":32,"type":"string"},"store":{"description":"Which storeStore listing to read: ios-app-store, macos-app-store, google-play or microsoft-store","enum":["ios-app-store","macos-app-store"," ⟨9 unchanged words⟩
⟨11 unchanged words⟩ ,"type":"string"},"listings":{"description":"Metadata as last synced into AppSkyline, one row per locale; it may differ from what the store shows now. Long texts are cut to 600 characters.","items":{"additionalProperties":false,"properties":{" ⟨149 unchanged words⟩
⟨4 unchanged words⟩ openWorldHint":false,"readOnlyHint":true,"title":"GetCheck your store listingmetadataand review status"}
List your AppSkyline apps
ListUseallthisAppskylinewhen someone asks which appsthetheyauthenticatedtrackuserinhasAppSkyline,accessorto.anReturnsapp'saidMarkdownistableneeded.ofReturns each app's id, name, default locale,andtheitsper-storeAppidsStore,(iOSMac App Store, Google Play,and Microsoft Store)whenids,set.up to 100 apps. Not for finding other apps in a store.
⟨3 unchanged words⟩ additionalProperties":false,"properties":{"apps":{"description":"Apps the signed-in account can access, at most 100","items":{"additionalProperties":false,"properties":{" ⟨49 unchanged words⟩ ],"type":"string"},"truncated":{"description":"True when the account has more than 100 apps","type":"boolean"}},"required":[" ⟨5 unchanged words⟩
⟨5 unchanged words⟩ :false,"readOnlyHint":true,"title":"List your AppSkyline apps"}
ListRead recent Google Play reviews
ListUsethethismostwhenrecentsomeone asks what users say about their Android app on Google Play,userorreviewsaboutforrecentoneratingsofandyourcomplaints.AppskylineReturnsapps:reviewsstarwithratingstars,truncatedtextreviewcuttextto 300 characters, app version, device,reviewerlanguage,and whether the developerhasreplied,replied.upRequirestoa100 per page. Google Playserviceonlyaccountreturnsconfiguredreviewsforfrom theapp.lastPaginate7withdays.theNotreturnedforpageApptoken.Store reviews.
⟨5 unchanged words⟩ ,"properties":{"appId":{"description":"AppskylineAppSkyline app id (uuid); the app needs a Google Play service account in AppSkyline","maxLength":200,"minLength":1,"type":"string"},"maxResults":{"description":"HowReviewsmanytoreviewsreturntoperfetchpage,(maxfrom 1 to 100)","exclusiveMinimum":0,"maximum":100,"type":"integer"},"token":{"description":"PagenextPageTokentokenfromreturnedthebypreviousa
⟨18 unchanged words⟩ :"string"},{"type":"null"}],"description":"Pass as token to get the next page; null on the last page"},"returned":{"maximum":100,"minimum":0,"type":"integer"},"reviews":{"description":"Reviews created or edited in the last 7 days, as the Google Play API returns them; review text is cut to 300 characters","items":{"additionalProperties":false,"properties":{ ⟨110 unchanged words⟩
⟨4 unchanged words⟩ openWorldHint":false,"readOnlyHint":true,"title":"ListRead recent Google Play reviews"}
List tracked keywords
ListUsetrackedthis when someone asks which keywords they track for anAppskylineapp,app.orReturnsbeforeaaddingMarkdownortabledeletingofone. Returns each tracked keyword's id,termsearch(searchTerms)term, language, country,and bid,amount.up to 500 per call. Not for current rankings or search volume.
⟨5 unchanged words⟩ ,"properties":{"appId":{"description":"App id to listAppSkylinetrackedappkeywordsidfor(uuid)","maxLength":200,"minLength":1,"type":"string"},"limit":{"description":"MaximumKeywordsnumbertoofreturn,keywordsfrom 1 toreturn500;(defaultomitserver-side)for all tracked keywords, capped at 500","exclusiveMinimum":0,"maximum":500,"type":"integer"},"skip":{"description":"PaginationKeywordsoffsetto skip before the first one returned, for paging; defaults to 0
⟨3 unchanged words⟩ additionalProperties":false,"properties":{"keywords":{"description":"Tracked keywords for the app, at most 500 per call","items":{"additionalProperties":false,"properties":{" ⟨7 unchanged words⟩ :"number"},{"type":"null"}],"description":"Bid amount stored for the keyword; null when none is set"},"country":{"anyOf":[{"maxLength" ⟨54 unchanged words⟩ ],"type":"string"},"truncated":{"description":"True when more than 500 keywords matched; page with skip","type":"boolean"}},"required":[" ⟨7 unchanged words⟩
⟨5 unchanged words⟩ :false,"readOnlyHint":true,"title":"List tracked keywords"}
Searchapp-storeanresultsapp store
RunUseathislivewhenrankedsomeone asks which apps show up for a searchagainstterm,theoriOSwho their competitors are for a keyword, on the App Store,macOSMac App Store, Google Play,or MicrosoftStore via Appskyline without storingStore.aReturnssearchthesnapshot.liveReturnsresultsainMarkdownranktableorderofwithrank,store id, title,score,rating and developer (10 by default, up to 200). Not foreachoneresult.app's own position.
⟨5 unchanged words⟩ properties":{"country":{"description":"Two-letter store country code(e.g.such as US,IT)or IT; defaults to US","maxLength":10,"type":"string"},"lang":{"description":"Two-letter language code(e.g.such as en or it; defaults to en except on Google Play,it)which uses the store default","maxLength":32,"type":"string"},"num":{"description":"Number of results to return,(defaultfromdepends1ontostore)200; defaults to 10","exclusiveMinimum":0,"maximum":200,"type":"integer"},"store":{"description":"Which storeStore to search: ios-app-store, macos-app-store, google-play or microsoft-store
⟨20 unchanged words⟩ type":"null"}]},"results":{"description":"Live search results in store rank order; nothing is stored in AppSkyline","items":{"additionalProperties":false,"properties":{" ⟨25 unchanged words⟩ :"number"},{"type":"null"}],"description":"Rating score as the store reports it"},"title":{"$ref":"#/properties/results/items/properties/id"}} ⟨30 unchanged words⟩ 1,"type":"string"},"truncated":{"description":"True when the store returned more than 200 results","type":"boolean"}},"required":[" ⟨9 unchanged words⟩
⟨5 unchanged words⟩ :true,"readOnlyHint":true,"title":"Searchapp-storeanresultsapp store"}
ShowAppskylineapp overview
RenderUseanthisinteractivewhenoverviewsomeoneforwants aknown Appskylinequickapp.overviewUseofthisoneafteroflistingthe appsortheywhentracktheinuserAppSkyline.providesReturns anAppskylineoverviewappcardid.withIttheshowsapp'sstoreconnectedidentitiesstores, locales and up to 50 tracked keywords. Not for keyword rankings.
⟨3 unchanged words⟩ ,"properties":{"appId":{"description":"AppskylineAppSkyline app idto render(uuid)","maxLength":200,"minLength":1,"type ⟨5 unchanged words⟩
⟨93 unchanged words⟩ ,"type":"integer"},"keywords":{"description":"The first 50 tracked keywords; keywordCount has the total","items":{"additionalProperties":false,"properties":{" ⟨57 unchanged words⟩
⟨5 unchanged words⟩ :false,"readOnlyHint":true,"title":"ShowAppskylineapp overview"}
{"$schema":"httphttps://json-schema.org/draft-07/schema#//json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"app" ⟨10 unchanged words⟩ type":"null"}]},"googlePlayId":{"$refanyOf":[{"#/properties/app/anyOf/0/properties/iosAppStoreIdmaxLength":200,"type":"string"},{"type":"null"}]},"id":{"maxLength":200,"minLength":1, ⟨18 unchanged words⟩ ,"type":"array"},"macosAppStoreId":{"$refanyOf":[{"#/properties/app/anyOf/0/properties/iosAppStoreIdmaxLength":200,"type":"string"},{"type":"null"}]},"microsoftStoreId":{"$refanyOf":[{"#/properties/app/anyOf/0/properties/iosAppStoreIdmaxLength":200,"type":"string"},{"type":"null"}]},"name":{"maxLength":200,"minLength":1, ⟨33 unchanged words⟩ type":"null"}]},"id":{"$refanyOf":[{"#/properties/app/anyOf/0/properties/iosAppStoreIdmaxLength":200,"type":"string"},{"type":"null"}]},"language":{"anyOf":[{"maxLength" ⟨38 unchanged words⟩