Skip to main content
Glama
JiantaoFu

App Market Intelligence MCP

google-play-search

Search Google Play Store apps to research competitors, analyze market trends, and gather app intelligence with detailed results including ratings, pricing, and developer information.

Instructions

Search for apps on Google Play. Returns a list of apps with:

  • title: App name

  • appId: Package name (e.g. 'com.company.app')

  • url: Play Store URL

  • icon: Icon image URL

  • developer: Developer name

  • developerId: Developer ID

  • priceText: Price display text

  • free: Boolean indicating if app is free

  • summary: Short description

  • scoreText: Rating display text

  • score: Rating (0-5)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
termYesSearch term to query apps
priceNoFilter by price: all, free, or paid (default: all)all
numNoNumber of results to retrieve (default: 20, max: 250)
langNoLanguage code for result text (default: en)en
countryNoCountry code to get results from (default: us)us
fullDetailNoInclude full app details in results (default: false)

Implementation Reference

  • The handler function for the 'google-play-search' tool. It destructures the input parameters and calls gplay.search() from the '@jeromyfu/google-play-scraper' library, then returns the results as a JSON string in the expected MCP content format.
    async ({ term, price, num, lang, country, fullDetail }) => { const results = await gplay.search({ term, price, num, lang, country, fullDetail }); return { content: [{ type: "text", text: JSON.stringify(results) }] }; }
  • Zod schema object defining the input parameters and their validation rules, descriptions, and defaults for the 'google-play-search' tool.
    { term: z.string().describe("Search term to query apps"), price: z.enum(["all", "free", "paid"]).default("all").describe("Filter by price: all, free, or paid (default: all)"), num: z.number().default(20).describe("Number of results to retrieve (default: 20, max: 250)"), lang: z.string().default("en").describe("Language code for result text (default: en)"), country: z.string().default("us").describe("Country code to get results from (default: us)"), fullDetail: z.boolean().default(false).describe("Include full app details in results (default: false)") },
  • src/server.js:399-424 (registration)
    The complete server.tool() call that registers the 'google-play-search' tool, including its description string, input schema, and inline handler function.
    server.tool("google-play-search", "Search for apps on Google Play. Returns a list of apps with:\n" + "- title: App name\n" + "- appId: Package name (e.g. 'com.company.app')\n" + "- url: Play Store URL\n" + "- icon: Icon image URL\n" + "- developer: Developer name\n" + "- developerId: Developer ID\n" + "- priceText: Price display text\n" + "- free: Boolean indicating if app is free\n" + "- summary: Short description\n" + "- scoreText: Rating display text\n" + "- score: Rating (0-5)", { term: z.string().describe("Search term to query apps"), price: z.enum(["all", "free", "paid"]).default("all").describe("Filter by price: all, free, or paid (default: all)"), num: z.number().default(20).describe("Number of results to retrieve (default: 20, max: 250)"), lang: z.string().default("en").describe("Language code for result text (default: en)"), country: z.string().default("us").describe("Country code to get results from (default: us)"), fullDetail: z.boolean().default(false).describe("Include full app details in results (default: false)") }, async ({ term, price, num, lang, country, fullDetail }) => { const results = await gplay.search({ term, price, num, lang, country, fullDetail }); return { content: [{ type: "text", text: JSON.stringify(results) }] }; } );

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