Store Scraper MCP
Provides 10 tools for accessing iOS App Store data including app details, search, rankings, reviews, ratings, developer information, similar apps, privacy labels, version history, and search suggestions.
Provides 10 tools for accessing Google Play Store data including app details, search, rankings, reviews, developer information, similar apps, permissions, data safety information, categories, and search suggestions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Store Scraper MCPsearch for fitness apps on Google Play"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Store Scraper MCP
A Model Context Protocol (MCP) server for accessing App Store and Google Play Store data. Provides 20 tools to query application information, reviews, ratings, rankings, and more from both iOS and Android app stores.
Features
✅ 20 MCP Tools - Complete access to App Store and Google Play data
✅ Dual Store Support - iOS (App Store) and Android (Google Play)
✅ No External Dependencies - Self-contained scraping implementation
✅ Robust Error Handling - Automatic retry and timeout management
✅ Normalized Data - Consistent structured JSON responses
✅ Cursor IDE Integration - Ready to use with Cursor
Related MCP server: AppRanks MCP Server
Installation
npm installConfiguration
Cursor IDE
Add the following to your Cursor MCP settings file:
Windows:
%APPDATA%\Cursor\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.jsonmacOS/Linux:
~/.cursor/mcp.jsonConfiguration:
{
"mcpServers": {
"store-scraper": {
"command": "node",
"args": ["/absolute/path/to/store-scraper-mcp/src/server.js"],
"cwd": "/absolute/path/to/store-scraper-mcp"
}
}
}See examples/cursor-mcp.json for a complete example.
Replace /absolute/path/to/store-scraper-mcp with your actual project path.
Restart Cursor completely after configuration.
Available Tools
App Store (iOS) - 10 tools
app - Get detailed app information
search - Search for apps
list - Get app rankings (top free/paid/grossing)
reviews - Get app reviews with pagination
ratings - Get app ratings distribution
developer - Get all apps by a developer
similar - Get similar apps
privacy - Get privacy labels and data usage
versionHistory - Get app version history
suggest - Get search suggestions/autocomplete
Google Play (Android) - 10 tools
gp_app - Get detailed app information
gp_search - Search for apps
gp_list - Get app rankings
gp_reviews - Get app reviews with pagination
gp_developer - Get all apps by a developer
gp_similar - Get similar apps
gp_permissions - Get app permissions
gp_datasafety - Get data safety information
gp_categories - Get list of available categories
gp_suggest - Get search suggestions/autocomplete
Usage Examples
In Cursor
Once configured, you can use prompts like:
App Store:
Search for fitness apps in the App StoreGet details of Duolingo using bundleId com.duolingo.DuolingoMobileShow me the top 20 free apps in the United StatesGoogle Play:
Search for fitness apps on Google PlayGet details of Duolingo on Google Play (appId: com.duolingo)Show me all permissions of WhatsApp on Google Play (appId: com.whatsapp)Get data safety information for TikTok (appId: com.zhiliaoapp.musically)API Reference
App Store Tools
app
Get detailed information about an app.
Parameters:
id(number, optional): iTunes trackIdappId(string, optional): Bundle IDcountry(string, optional): Two-letter country code (default: "us")
search
Search for apps in the App Store.
Parameters:
term(string, required): Search termcountry(string, optional): Two-letter country code (default: "us")lang(string, optional): Language code (default: "en")num(number, optional): Number of results (default: 50, max: 200)page(number, optional): Page number (default: 1)
list
Get app rankings.
Parameters:
chart(string, optional): Chart type - "topfreeapplications", "toppaidapplications", or "topgrossingapplications" (default: "topfreeapplications")country(string, optional): Two-letter country code (default: "us")genre(string, optional): Genre ID or "all" (default: "all")limit(number, optional): Number of results (default: 200)
Google Play Tools
gp_app
Get detailed information about an app.
Parameters:
appId(string, required): Google Play app ID (e.g., "com.duolingo")lang(string, optional): Language code (default: "en")country(string, optional): Two-letter country code (default: "us")
gp_search
Search for apps on Google Play.
Parameters:
term(string, required): Search termcountry(string, optional): Two-letter country code (default: "us")lang(string, optional): Language code (default: "en")num(number, optional): Number of results (default: 250)
gp_permissions
Get app permissions.
Parameters:
appId(string, required): Google Play app IDlang(string, optional): Language code (default: "en")country(string, optional): Two-letter country code (default: "us")short(boolean, optional): If true, return only permission names (default: false)
Requirements
Node.js >= 18.0.0
npm or yarn
Limitations
App Store
Similar apps parsing is limited (HTML parsing required)
Ratings histogram details not available from public API (only average and count)
Privacy data only available for US App Store apps
Google Play
HTML scraping required, may be fragile to structure changes
Some data may not be available depending on app structure
Rate limiting may apply with excessive requests
Error Handling
The server handles errors robustly:
Automatic retry: 3 attempts with exponential backoff
Timeouts: 30 seconds default
HTTP errors: Proper status code handling
Parsing: Validation and graceful handling of missing data
If functionality is unavailable or fails, returns:
nullfor individual objects[]for arraysDescriptive error messages
Project Structure
store-scraper-mcp/
├── src/
│ ├── server.js # MCP server entry point
│ ├── httpClient.js # HTTP client with retry logic
│ ├── endpoints/
│ │ ├── appStore.js # App Store URL builders
│ │ └── googlePlay.js # Google Play URL builders
│ └── parsers/
│ ├── appStore/ # App Store parsers
│ │ ├── app.js
│ │ ├── list.js
│ │ ├── reviews.js
│ │ ├── search.js
│ │ ├── ratings.js
│ │ ├── privacy.js
│ │ ├── similar.js
│ │ ├── versionHistory.js
│ │ └── suggest.js
│ └── googlePlay/ # Google Play parsers
│ ├── app.js
│ ├── categories.js
│ ├── datasafety.js
│ ├── list.js
│ ├── permissions.js
│ ├── reviews.js
│ ├── search.js
│ ├── similar.js
│ └── suggest.js
├── examples/
│ └── cursor-mcp.json # Example Cursor configuration
├── .editorconfig # Editor configuration
├── .gitattributes # Git attributes
├── .gitignore # Git ignore rules
├── CHANGELOG.md # Changelog
├── LICENSE # MIT License
├── package.json # Project configuration
└── README.md # This fileLicense
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Disclaimer
This project is for educational and research purposes. Please respect the terms of service of App Store and Google Play when using this tool.
Available Tools
20 toolsappC
Get detailed information about an app by ID or bundleId
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | iTunes trackId of the app (e.g., 553834731) | |
| appId | No | Bundle ID of the app (e.g., com.midasplayer.apps.candycrushsaga) | |
| country | No | Two-letter country code (default: us) | us |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it implies a read-only operation ('Get detailed information'), it doesn't address important behavioral aspects like what 'detailed information' includes, whether there are rate limits, authentication requirements, error conditions, or how the country parameter affects results. This leaves significant gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (8 words) and front-loaded with the core purpose. Every word earns its place, with no redundant information or unnecessary elaboration. This is model efficiency in technical documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's apparent simplicity (lookup by identifier), no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what 'detailed information' includes, how results are structured, what happens when multiple identifiers are provided, or how this differs from similar tools in the sibling list. The agent would need to guess about the tool's behavior and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all three parameters. The description adds no additional parameter semantics beyond what's in the schema - it mentions 'ID or bundleId' but doesn't explain their relationship or exclusivity. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get detailed information') and resource ('about an app'), making it immediately understandable. However, it doesn't differentiate this tool from potential sibling tools like 'developer', 'gp_app', or 'search' that might also retrieve app information, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search', 'gp_app', or 'developer' from the sibling list. It mentions two identifier options (ID or bundleId) but doesn't explain when one might be preferred over the other or what happens if both are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
developerC
Get all apps by a developer
| Name | Required | Description | Default |
|---|---|---|---|
| devId | Yes | iTunes artistId of the developer (e.g., 284882218 for Facebook) | |
| country | No | Two-letter country code (default: us) | us |
| lang | No | Language code (default: en) | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states a read operation ('Get'), implying it's likely non-destructive, but doesn't mention any constraints like rate limits, authentication needs, pagination, or what the return format looks like. This is inadequate for a tool with parameters and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words, making it easy to parse and front-loaded with the core purpose. It earns its place by clearly stating what the tool does without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has parameters and no output schema, the description is incomplete. It doesn't explain what 'all apps' entails (e.g., format, pagination, or limitations) or provide behavioral context. With no annotations and missing output details, it fails to compensate for the lack of structured information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters (devId, country, lang) with descriptions and defaults. The description adds no additional meaning beyond implying 'developer' relates to 'devId', which is already clear from the schema. This meets the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get all apps by a developer' clearly states the verb ('Get') and resource ('apps by a developer'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'gp_developer' or 'search', which might have overlapping functionality, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'gp_developer', 'search', or 'list'. It lacks any context about prerequisites, exclusions, or comparative use cases, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gp_appB
[Google Play] Get detailed information about an app
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | Google Play app ID (e.g., com.duolingo) | |
| lang | No | Language code (default: en) | en |
| country | No | Two-letter country code (default: us) | us |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Get detailed information' implies a read-only operation, it doesn't specify what 'detailed information' includes, whether there are rate limits, authentication requirements, error conditions, or response format. For a tool with no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded with essential information in just one sentence. Every word earns its place: it specifies the domain ([Google Play]), the action (Get), the scope (detailed information), and the target (about an app). There's no wasted verbiage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate but incomplete. It clearly states what the tool does but doesn't address behavioral aspects, usage context, or output expectations. Without annotations or output schema, the description should ideally provide more context about what 'detailed information' means and how to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't add any parameter semantics beyond what's already in the schema. Since schema description coverage is 100% (all three parameters have clear descriptions in the schema), the baseline score is 3. The description doesn't explain how parameters interact or provide additional context about their usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get detailed information about an app' with the context '[Google Play]' specifying the domain. It uses a specific verb ('Get') and resource ('app'), but doesn't explicitly distinguish it from sibling tools like 'app', 'gp_search', or 'gp_reviews' which might also retrieve app information in different ways.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools like 'gp_search', 'gp_reviews', 'app', and 'search', there's no indication of what makes this tool unique or when it should be preferred over other app-related tools on the server.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gp_categoriesB
[Google Play] Get list of available categories
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states it 'gets' a list without detailing behavior. It doesn't disclose if it's read-only, requires authentication, has rate limits, returns structured data, or handles errors. This is inadequate for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and context, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a simple tool with 0 parameters, the description is incomplete. It lacks behavioral details (e.g., what the list contains, format, or error handling) that would help an agent use it correctly, despite the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema coverage, so the schema fully documents the lack of inputs. The description adds no parameter information, but with no parameters, a baseline of 4 is appropriate as there's nothing to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('list of available categories') with specific context ('Google Play'). It doesn't distinguish from siblings like 'gp_list' or 'list' which might also retrieve lists, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'gp_list' or 'gp_search'. The description implies it's for category data, but doesn't specify use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gp_datasafetyC
[Google Play] Get app data safety information
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | Google Play app ID | |
| lang | No | Language code (default: en) | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'gets' information, implying a read-only operation, but doesn't cover aspects like rate limits, authentication needs, error handling, or response format. This leaves significant gaps for an agent to understand how to interact with it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single, front-loaded sentence that directly states the tool's purpose without any fluff or redundancy. Every word earns its place, making it efficient for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a data safety tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'data safety information' entails, the return format, or any behavioral traits, leaving the agent with insufficient context to use it correctly beyond basic parameter input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear descriptions for both parameters (appId and lang with default). The description adds no additional parameter semantics beyond what the schema provides, such as examples or constraints, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('app data safety information') with platform context ('Google Play'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'privacy' or 'gp_permissions', which might have overlapping domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'privacy' or 'gp_permissions', nor does it mention any prerequisites or exclusions. It's a standalone statement without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gp_developerC
[Google Play] Get all apps by a developer
| Name | Required | Description | Default |
|---|---|---|---|
| devId | Yes | Google Play developer ID | |
| country | No | Two-letter country code (default: us) | us |
| lang | No | Language code (default: en) | en |
| num | No | Number of results (default: 60) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'Get all apps' but doesn't disclose behavioral traits like whether this is a read-only operation, if it requires authentication, rate limits, pagination behavior, or what the output format looks like. For a tool with no annotations and no output schema, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. Every word earns its place: '[Google Play]' provides context, 'Get all apps by a developer' is the action, and there's no redundant information. It's appropriately sized for this tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 4 parameters (with 1 required), the description is incomplete. It doesn't explain what the tool returns (e.g., list of app objects with basic details), behavioral constraints, or error conditions. For a data retrieval tool in a sibling-rich environment, this leaves the agent with insufficient context to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 4 parameters (devId, country, lang, num) with descriptions and defaults. The description adds no additional parameter semantics beyond implying the tool uses these to fetch apps. Baseline 3 is appropriate since the schema does the heavy lifting, but the description doesn't compensate with extra context like parameter interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('all apps by a developer') with the context '[Google Play]'. It distinguishes from siblings like 'gp_app' (single app) and 'developer' (generic developer info), but doesn't explicitly differentiate from 'gp_search' which could also find apps by developer. The purpose is specific but could be more precise about sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With siblings like 'gp_search', 'developer', and 'gp_list', the description doesn't indicate this is the primary tool for retrieving all apps from a specific developer ID. There's no mention of prerequisites, limitations, or comparison to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gp_listC
[Google Play] Get app rankings (top free, paid, grossing)
| Name | Required | Description | Default |
|---|---|---|---|
| collection | No | Collection type: topselling_free, topselling_paid, topgrossing, movers_shakers | topselling_free |
| category | No | Category ID (default: APPLICATION) | APPLICATION |
| country | No | Two-letter country code (default: us) | us |
| lang | No | Language code (default: en) | en |
| num | No | Number of results (default: 60) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on rate limits, authentication requirements, error handling, or output format (e.g., pagination, data structure). For a tool with no annotations, this leaves significant gaps in understanding its operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose in a single, efficient sentence. There's no wasted text, and it immediately conveys the tool's function without unnecessary elaboration, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the rankings output looks like (e.g., list format, fields included), potential limitations, or error conditions. For a tool with 5 parameters and no structured output documentation, more contextual information is needed to fully understand its use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting all 5 parameters with defaults and enums. The description adds minimal value beyond the schema by implying the tool retrieves rankings based on these parameters, but doesn't provide additional context like parameter interactions or usage examples. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get app rankings') and specifies the resource domain ('Google Play'), making the purpose understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'gp_search', 'gp_reviews', or 'list', which might also retrieve Google Play data but for different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'gp_search' (for searching apps) or 'gp_reviews' (for reviews). It mentions ranking types (top free, paid, grossing) but doesn't clarify scenarios where one type is preferred over another or when this tool is appropriate compared to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gp_permissionsC
[Google Play] Get app permissions
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | Google Play app ID | |
| lang | No | Language code (default: en) | en |
| country | No | Two-letter country code (default: us) | us |
| short | No | If true, return only permission names (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it's a 'Get' operation, implying read-only behavior, but doesn't clarify if it requires authentication, has rate limits, or what the output format looks like (e.g., list of permissions with details). For a tool with no annotations, this leaves significant gaps in understanding its behavior and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded: '[Google Play] Get app permissions' in a single phrase. It wastes no words and immediately conveys the core functionality. Every part of the description earns its place by specifying the domain and action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no output schema, no annotations), the description is insufficient. It doesn't explain what the tool returns (e.g., permission names, descriptions, categories) or behavioral aspects like error handling. For a tool that likely fetches structured data from an external API, more context is needed to guide the agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information beyond what the input schema provides. However, schema description coverage is 100%, with clear documentation for all parameters (appId, lang, country, short), including defaults and purposes. This meets the baseline score of 3, as the schema adequately covers parameter semantics without needing additional description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get app permissions' for Google Play. It specifies the verb ('Get') and resource ('app permissions'), and the domain context ('Google Play') helps distinguish it from generic permission tools. However, it doesn't explicitly differentiate from sibling tools like 'gp_datasafety' or 'privacy', which might also relate to app permissions or safety information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'gp_datasafety' or 'privacy' that might overlap in functionality, nor does it specify prerequisites or contexts where this tool is preferred. The agent must infer usage based on the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gp_reviewsC
[Google Play] Get app reviews with pagination
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | Google Play app ID | |
| country | No | Two-letter country code (default: us) | us |
| lang | No | Language code (default: en) | en |
| page | No | Page number (default: 0) | |
| sort | No | Sort order: 0 = most recent, 2 = most helpful (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'with pagination', which hints at behavior, but lacks details on rate limits, authentication needs, error handling, or response format. For a read operation with multiple parameters, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence with zero waste. It's front-loaded with the core purpose, making it efficient and easy to parse, though this brevity contributes to gaps in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and multiple sibling tools, the description is incomplete. It doesn't explain return values, error cases, or how it differs from similar tools, making it inadequate for a tool with 5 parameters and complex context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no extra meaning beyond implying pagination, which is already covered by the 'page' parameter. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get app reviews') and resource ('Google Play'), making the purpose evident. However, it doesn't distinguish this tool from sibling tools like 'reviews' or 'gp_list', which might offer similar functionality, so it misses full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'reviews', 'gp_list', and 'gp_search' available, there's no indication of context, prerequisites, or exclusions, leaving usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gp_searchC
[Google Play] Search for apps
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | Search term | |
| country | No | Two-letter country code (default: us) | us |
| lang | No | Language code (default: en) | en |
| num | No | Number of results (default: 250) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool searches for apps but doesn't mention whether this is a read-only operation, what the response format might be, any rate limits, authentication requirements, or potential side effects. For a search tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two words ('Search for apps') and the domain context in brackets, making it front-loaded and efficient. Every element earns its place without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search operation with 4 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., app details, IDs, or full listings), how results are structured, or any limitations, leaving the agent with insufficient context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for all four parameters (term, country, lang, num), including defaults. The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search for apps') and the resource domain ('Google Play'), providing a specific verb+resource combination. However, it doesn't differentiate this tool from sibling tools like 'search', 'gp_list', or 'gp_suggest', which might offer similar search functionality with different scopes or parameters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools like 'search', 'gp_list', and 'gp_suggest' that might overlap in functionality, there's no indication of context, prerequisites, or exclusions to help an agent choose appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gp_similarC
[Google Play] Get apps similar to the specified app
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | Google Play app ID | |
| lang | No | Language code (default: en) | en |
| country | No | Two-letter country code (default: us) | us |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions it's a read operation ('Get'), but doesn't cover aspects like rate limits, authentication needs, error conditions, or what the output looks like (e.g., list of app IDs, app details). This leaves significant gaps for an agent to use it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key information ('Get apps similar to the specified app') with necessary context ('Google Play'). There's no wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain the return format (e.g., what 'similar apps' includes), potential limitations, or error handling. For a tool with 3 parameters and no structured output, more context is needed to guide an agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (appId, lang, country) with their types and defaults. The description doesn't add any additional meaning beyond what's in the schema, such as examples of app IDs or how lang/country affect results. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('apps similar to the specified app'), and specifies the context ('Google Play'). However, it doesn't explicitly differentiate from sibling tools like 'similar' or 'gp_search', which might offer overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'gp_search', 'similar', or 'gp_suggest'. The description only states what it does, not when it's appropriate or what distinguishes it from other tools in the server.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gp_suggestC
[Google Play] Get search suggestions/autocomplete
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | Search term to get suggestions for | |
| country | No | Two-letter country code (default: us) | us |
| lang | No | Language code (default: en) | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'Get search suggestions/autocomplete' but doesn't specify if this is a read-only operation, requires authentication, has rate limits, or what the output format might be. This leaves significant gaps in understanding the tool's behavior beyond its basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, consisting of a single, efficient sentence that directly states the tool's purpose. Every word earns its place, with no wasted text or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool with three parameters. It doesn't address behavioral aspects like safety, permissions, or response format, which are crucial for an agent to use it correctly in a broader context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear documentation for all three parameters (term, country, lang), including defaults for optional ones. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline score without compensating further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get search suggestions/autocomplete') and resource ('Google Play'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'gp_search' or 'suggest', which could provide similar functionality, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'gp_search' or 'suggest' from the sibling list. It lacks context about specific use cases, prerequisites, or exclusions, leaving the agent to infer usage based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listC
Get app rankings (top free, paid, or grossing)
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Chart type: topfreeapplications, toppaidapplications, or topgrossingapplications | topfreeapplications |
| country | No | Two-letter country code (default: us) | us |
| genre | No | Genre ID or "all" (default: all) | all |
| limit | No | Number of results (default: 200) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states what it does, not how it behaves. It doesn't mention whether this is a read-only operation, potential rate limits, authentication needs, error conditions, or response format. The agent must infer behavior from the name 'list' and description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence with zero waste. Every word earns its place by specifying the action, resource, and key parameter options without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what the rankings include (e.g., app names, ratings, rankings), how results are structured, or any behavioral aspects. The agent lacks context about what to expect from this operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds no additional parameter information beyond implying the 'chart' parameter options, which are already covered by the enum. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('app rankings') with specific categories (top free, paid, or grossing). It distinguishes from siblings like 'search' or 'reviews' by focusing on chart rankings, but doesn't explicitly differentiate from 'gp_list' which might serve a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'search' or 'gp_list'. The description implies it's for retrieving chart data but doesn't specify use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
privacyC
Get app privacy labels and data usage information
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | iTunes trackId of the app |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states this is a 'Get' operation, implying it's likely read-only, but doesn't confirm this or describe other behavioral traits like authentication needs, rate limits, or what happens if the app ID is invalid. For a tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence that directly states the tool's purpose without any fluff or redundant information. It's front-loaded and efficiently communicates the core functionality, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool that likely returns structured privacy data. It doesn't hint at the format or content of the returned information (e.g., labels, data categories, usage details), leaving the agent with insufficient context to understand what to expect from using this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't add any parameter-specific information beyond what's in the input schema, which has 100% coverage for its single parameter 'id'. The schema already describes it as an 'iTunes trackId of the app', so the description doesn't compensate or provide additional context, resulting in the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('app privacy labels and data usage information'), making it immediately understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'gp_datasafety' or 'gp_permissions', which might have overlapping functionality related to app data and privacy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'gp_datasafety' and 'gp_permissions' that might cover similar privacy/data themes, there's no indication of when this tool is preferred or what distinguishes it from those options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ratingsC
Get app ratings distribution
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | iTunes trackId of the app | |
| appId | No | Bundle ID of the app | |
| country | No | Two-letter country code (default: us) | us |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Get') but doesn't describe what 'ratings distribution' entails (e.g., numerical breakdowns, charts, or aggregated data), response format, rate limits, or authentication needs. This leaves significant gaps for a tool with potential data retrieval implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose, making it easy to parse quickly. Every word earns its place in conveying the essential function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't clarify what 'ratings distribution' means in terms of output (e.g., statistical data, visualizations, or raw ratings), which is critical for an agent to understand the tool's utility. The high schema coverage doesn't compensate for this missing behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the input schema fully documents the parameters (id, appId, country). The description doesn't add any meaning beyond this, such as explaining how parameters interact or which to prioritize. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('app ratings distribution'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling tools like 'reviews' or 'gp_reviews', which might also provide rating-related information, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'reviews', 'gp_reviews', or other sibling tools. It lacks context about what makes this tool distinct, leaving the agent to guess based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reviewsC
Get app reviews with pagination
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | iTunes trackId of the app | |
| appId | No | Bundle ID of the app | |
| country | No | Two-letter country code (default: us) | us |
| page | No | Page number (1-10, default: 1) | |
| sort | No | Sort order: mostRecent or mostHelpful | mostRecent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. While 'Get' implies a read operation, it doesn't disclose important behavioral aspects like rate limits, authentication requirements, error conditions, or what the paginated response structure looks like. The mention of 'pagination' is helpful but insufficient for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 5 words, front-loading the core purpose without any unnecessary elaboration. Every word earns its place, making it efficient for quick understanding while covering the essential functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns, how pagination works in practice, or provide context about the review data structure. The agent would need to guess about the response format and operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents all 5 parameters thoroughly. The description adds no additional parameter information beyond what's in the schema, so it meets the baseline of 3 but doesn't provide extra value through examples, edge cases, or clarification of parameter interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Get app reviews with pagination', which specifies the action (get), resource (app reviews), and a key feature (pagination). It distinguishes from some siblings like 'ratings' or 'privacy', but doesn't explicitly differentiate from 'gp_reviews' which appears to be a similar tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple review-related tools in the sibling list (reviews, gp_reviews, ratings), there's no indication of which one to choose for different scenarios, nor any mention of prerequisites or constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchC
Search for apps in the App Store
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | Search term | |
| country | No | Two-letter country code (default: us) | us |
| lang | No | Language code (default: en) | en |
| num | No | Number of results (default: 50, max: 200) | |
| page | No | Page number (default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Search for apps' implies a read-only operation, but the description doesn't mention any behavioral traits like rate limits, authentication requirements, result format, or pagination behavior beyond what's in the schema. This is inadequate for a tool with 5 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without any wasted words. It's appropriately sized for a search tool and gets straight to the point with no unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 5 parameters and no output schema, the description is insufficient. It doesn't explain what kind of results to expect, how they're structured, or any limitations of the search functionality. With no annotations and no output schema, the description should provide more context about the tool's behavior and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are documented in the schema itself. The description doesn't add any meaningful parameter semantics beyond what's already in the schema descriptions, so it meets the baseline for high schema coverage without adding extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search for') and resource ('apps in the App Store'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'gp_search' or 'suggest', which appear to be related search functions, so it doesn't achieve full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools that seem related to search functionality (gp_search, suggest, list), there's no indication of when this specific search tool is appropriate versus those other options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
similarC
Get apps similar to the specified app
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | iTunes trackId of the app | |
| appId | No | Bundle ID of the app | |
| country | No | Two-letter country code (default: us) | us |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Get apps similar') but fails to describe key traits like whether this is a read-only operation, potential rate limits, authentication needs, or the format of returned data. This leaves significant gaps for a tool that likely queries external data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It is front-loaded and appropriately sized, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of querying similar apps and the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'similar' means (e.g., by genre, ratings, or features), how results are returned, or any limitations, making it inadequate for an agent to use effectively without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information beyond what the input schema provides, which has 100% coverage with clear descriptions for 'id', 'appId', and 'country'. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate or add extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('apps similar to the specified app'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'gp_similar' or 'search', which could provide overlapping functionality, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'gp_similar', 'search', or 'suggest' from the sibling list. It lacks context on prerequisites, exclusions, or specific scenarios where this tool is preferred, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggestC
Get search suggestions/autocomplete for a search term
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | Search term to get suggestions for | |
| country | No | Two-letter country code (default: us) | us |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Get[s] search suggestions/autocomplete', implying a read-only operation that returns autocomplete results, but it lacks details on rate limits, error handling, response format, or any side effects. For a tool with no annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core function, making it easy to parse and understand quickly, with no wasted information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for effective tool use. It fails to explain the return values, error conditions, or behavioral nuances, which are critical for an AI agent to invoke the tool correctly. The high schema coverage helps with inputs, but overall context is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for both parameters ('term' and 'country'), including defaults and requirements. The description adds no additional parameter semantics beyond what the schema provides, such as examples or constraints, so it meets the baseline score of 3 for high schema coverage without extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function as 'Get search suggestions/autocomplete for a search term', which specifies the verb ('Get'), resource ('search suggestions/autocomplete'), and target ('search term'). However, it doesn't explicitly differentiate from sibling tools like 'search' or 'gp_suggest', which appear related to search functionality, leaving some ambiguity about when to choose this specific tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'search', 'gp_search', and 'gp_suggest' available, there is no indication of the specific context, prerequisites, or comparative use cases for 'suggest', leaving the agent without direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
versionHistoryC
Get app version history with release notes
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | iTunes trackId of the app | |
| country | No | Two-letter country code (default: us) | us |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on traits like rate limits, error handling, authentication needs, or response format. For a read operation with no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of retrieving version history and the lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects, response structure, or usage context, which are crucial for an agent to invoke this tool effectively in a server with many similar tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents both parameters (id and country) adequately. The description doesn't add any meaning beyond this, such as explaining what 'iTunes trackId' entails or how the country code affects results, but the baseline is 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'app version history with release notes', making the purpose evident. However, it doesn't distinguish this tool from its siblings (like 'app' or 'list'), which might also retrieve app-related information, so it doesn't achieve full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools (e.g., 'app', 'list', 'reviews'), there's no indication of context, prerequisites, or exclusions, leaving the agent to infer usage based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
20 tool updates
- First observed
app - First observed
developer - First observed
gp_app - First observed
gp_categories - First observed
gp_datasafety - First observed
gp_developer - First observed
gp_list - First observed
gp_permissions - First observed
gp_reviews - First observed
gp_search - First observed
gp_similar - First observed
gp_suggest - First observed
list - First observed
privacy - First observed
ratings - First observed
reviews - First observed
search - First observed
similar - First observed
suggest - First observed
versionHistory
TDQS
There is significant overlap between App Store and Google Play tools with unclear boundaries. For example, 'list' and 'gp_list' both get app rankings, 'developer' and 'gp_developer' both get apps by developer, and 'reviews' and 'gp_reviews' both get reviews with pagination. This creates ambiguity about when to use which tool, especially since the descriptions don't clarify the differences beyond platform indication.
The naming is mixed but readable. Most tools use snake_case (e.g., 'gp_categories', 'versionHistory'), but there's inconsistency with 'versionHistory' using camelCase. The 'gp_' prefix for Google Play tools provides some structure, but the App Store tools lack a corresponding prefix, creating a naming asymmetry that reduces overall consistency.
With 20 tools, the count is borderline high for a store scraper server. While covering two platforms (App Store and Google Play) justifies more tools, the duplication between platforms suggests the count could be optimized. It feels heavy but not extreme, as the domain scope is reasonably broad.
The tool set provides good coverage for app store scraping, including search, rankings, reviews, developer info, and metadata like privacy and permissions. Minor gaps exist, such as no explicit update or delete operations (which may not be needed for scraping), but agents can work around this. The surface supports core workflows for both platforms effectively.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Live App Store & Google Play data for AI agents: app discovery, ASO keywords, reviews.
Track app-store rankings, history, listing metadata, reviews and competitors across four stores.
Research iOS and Android apps, use keyword marketing tools, see app installs, revenue and sdks.
Scrape App Store reviews and rating history by app, country, rating or date. Pay per row.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceEmpowers users to search and analyze mobile apps via the AppTweak API, providing insights into app store data, reviews, ratings, and keyword performance on iOS and Android platforms.-
- AlicenseNot gradedqualityDmaintenanceProvides live App Store rankings, charts, app details, reviews, and search across 55 countries, enabling AI assistants to query app store data.63MIT
- AlicenseNot gradedqualityDmaintenanceEnables searching the App Store, retrieving app details, discovering trending apps, and accessing screenshots and release information via Apple's public APIs.144MIT

@sonarapp/mcpofficial
AlicenseAqualityBmaintenanceProvides App Store Optimization tools for AI agents, enabling app lookup, keyword research, ASO audit, review mining, and revenue estimation across iOS and Google Play.43462MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/MiguelAlvRed/mobile-store-scraper-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server