app-store-reviews
Fetch App Store reviews by ID or bundle ID to analyze user feedback, ratings, and version-specific insights for app market intelligence.
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
| Name | Required | Description | Default |
|---|---|---|---|
| appId | No | Bundle ID (e.g., 'com.midasplayer.apps.candycrushsaga'). Either this or id must be provided. | |
| country | No | Country code to get reviews from (default: us) | us |
| id | No | Numeric App ID (e.g., 553834731). Either this or appId must be provided. | |
| page | No | Page number to retrieve (default: 1, max: 10) | |
| sort | No | Sort order (recent or helpful) | recent |
Implementation Reference
- src/server.js:138-147 (handler)The asynchronous handler function that implements the core logic of the 'app-store-reviews' tool. It calls store.reviews with the provided parameters (mapping sort to appropriate enum) and returns the results as JSON-formatted text content.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) }] }; }
- src/server.js:132-137 (schema)Zod input schema validating parameters for the 'app-store-reviews' tool: id or appId (app identifier), country, page (1-10), and sort (recent/helpful).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)") },
- src/server.js:120-148 (registration)The complete registration of the 'app-store-reviews' tool via server.tool(), including its 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) }] }; } );