Skip to main content
Glama
JiantaoFu

App Market Intelligence MCP

app-store-reviews

Retrieve user reviews from the App Store to analyze feedback, track ratings, and understand customer sentiment for mobile applications.

Instructions

Get reviews for an App Store app. Returns an array of reviews with:

  • id: Review ID

  • userName: Reviewer's name

  • userUrl: Reviewer's profile URL

  • version: App version reviewed

  • score: Rating (1-5)

  • title: Review title

  • text: Review content

  • url: Review URL

  • updated: Review date (ISO string)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoNumeric App ID (e.g., 553834731). Either this or appId must be provided.
appIdNoBundle ID (e.g., 'com.midasplayer.apps.candycrushsaga'). Either this or id must be provided.
countryNoCountry code to get reviews from (default: us)us
pageNoPage number to retrieve (default: 1, max: 10)
sortNoSort order (recent or helpful)recent

Implementation Reference

  • src/server.js:120-148 (registration)
    Registration of the 'app-store-reviews' tool using server.tool(), including description, input schema, and inline handler function.
    server.tool("app-store-reviews", "Get reviews for an App Store app. Returns an array of reviews with:\n" + "- id: Review ID\n" + "- userName: Reviewer's name\n" + "- userUrl: Reviewer's profile URL\n" + "- version: App version reviewed\n" + "- score: Rating (1-5)\n" + "- title: Review title\n" + "- text: Review content\n" + "- url: Review URL\n" + "- updated: Review date (ISO string)", { id: z.number().optional().describe("Numeric App ID (e.g., 553834731). Either this or appId must be provided."), appId: z.string().optional().describe("Bundle ID (e.g., 'com.midasplayer.apps.candycrushsaga'). Either this or id must be provided."), country: z.string().default("us").describe("Country code to get reviews from (default: us)"), page: z.number().min(1).max(10).default(1).describe("Page number to retrieve (default: 1, max: 10)"), sort: z.enum(["recent", "helpful"]).default("recent").describe("Sort order (recent or helpful)") }, async ({ id, appId, country, page, sort }) => { const reviews = await store.reviews({ id, appId, country, page, sort: sort === "helpful" ? store.sort.HELPFUL : store.sort.RECENT }); return { content: [{ type: "text", text: JSON.stringify(reviews) }] }; } );
  • Handler function that fetches reviews using the external 'store.reviews' method from '@jeromyfu/app-store-scraper' library, processes sort option, and returns JSON stringified reviews wrapped in MCP content format.
    async ({ id, appId, country, page, sort }) => { const reviews = await store.reviews({ id, appId, country, page, sort: sort === "helpful" ? store.sort.HELPFUL : store.sort.RECENT }); return { content: [{ type: "text", text: JSON.stringify(reviews) }] }; }
  • Zod input schema defining parameters for the tool: app ID or bundle ID, country, page, and sort order.
    { id: z.number().optional().describe("Numeric App ID (e.g., 553834731). Either this or appId must be provided."), appId: z.string().optional().describe("Bundle ID (e.g., 'com.midasplayer.apps.candycrushsaga'). Either this or id must be provided."), country: z.string().default("us").describe("Country code to get reviews from (default: us)"), page: z.number().min(1).max(10).default(1).describe("Page number to retrieve (default: 1, max: 10)"), sort: z.enum(["recent", "helpful"]).default("recent").describe("Sort order (recent or helpful)") },

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JiantaoFu/AppInsightMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server