app-store-similar
Identify similar apps from the App Store by providing an app ID or bundle ID. Returns detailed data, including app name, developer, category, price, and description, for competitive analysis and market research.
Instructions
Get similar apps ('customers also bought') from the App Store. Returns a list of apps with:
id: App Store ID number
appId: Bundle ID (e.g. 'com.company.app')
title: App name
icon: Icon image URL
url: App Store URL
price: Price in USD
currency: Price currency code
free: Boolean indicating if app is free
description: App description
developer: Developer name
developerUrl: Developer's App Store URL
developerId: Developer's ID
genre: App category name
genreId: Category ID
released: Release date (ISO string)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| appId | No | Bundle ID (e.g., 'com.midasplayer.apps.candycrushsaga'). Either this or id must be provided. | |
| id | No | Numeric App ID (e.g., 553834731). Either this or appId must be provided. |
Implementation Reference
- src/server.js:171-174 (handler)Handler function that calls store.similar({ id, appId }) to fetch similar apps from App Store and returns the JSON stringified result wrapped in MCP content format.async ({ id, appId }) => { const similar = await store.similar({ id, appId }); return { content: [{ type: "text", text: JSON.stringify(similar) }] }; }
- src/server.js:167-170 (schema)Zod schema for tool inputs: optional id (number) or appId (string), one required.{ 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.") },
- src/server.js:150-175 (registration)Full registration of the app-store-similar tool using McpServer.tool method, including detailed description of output fields, input schema, and inline handler.server.tool("app-store-similar", "Get similar apps ('customers also bought') from the App Store. Returns a list of apps with:\n" + "- id: App Store ID number\n" + "- appId: Bundle ID (e.g. 'com.company.app')\n" + "- title: App name\n" + "- icon: Icon image URL\n" + "- url: App Store URL\n" + "- price: Price in USD\n" + "- currency: Price currency code\n" + "- free: Boolean indicating if app is free\n" + "- description: App description\n" + "- developer: Developer name\n" + "- developerUrl: Developer's App Store URL\n" + "- developerId: Developer's ID\n" + "- genre: App category name\n" + "- genreId: Category ID\n" + "- released: Release 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.") }, async ({ id, appId }) => { const similar = await store.similar({ id, appId }); return { content: [{ type: "text", text: JSON.stringify(similar) }] }; } );