Skip to main content
Glama
iran-apps-mcp

iran-apps-mcp

by sepehr071

Compare stores

ap_compare
Read-onlyIdempotent

Compare an Android package across Cafe Bazaar and Myket for version, rating, installs, size, update date, and price, with side-by-side figures and differences.

Instructions

Compare one package across Cafe Bazaar and Myket: version, rating, rating count, installs, size, update date, price.

Returns each store's figures (null when not listed there) and a diff: newer version and rating difference (bazaar minus myket).

Input Schema

NameRequiredDescriptionDefault
packageYesAndroid package name, e.g. 'com.whatsapp'.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.2.0
    • changedInput schema / properties / package / description
      Previous value: -"Android package name, the id in store URLs, e.g. 'ir.mci.ecareapp' or 'com.whatsapp'."New value: +"Android package name, e.g. 'com.whatsapp'."
  2. First observedv0.1.0

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuine value beyond that by disclosing the return shape: per-store figures with null for unlisted stores, plus a diff where rating difference is signed bazaar minus myket and version indicates which is newer. It does not say what happens when the package is absent from both stores, which is a meaningful edge case for an open-world lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the purpose, then the compared fields, then the return contract. The field list is dense but each item is informative; the line break between the two parts aids scanning without wasted phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with no output schema, the description carries the return contract well: per-store figures, null handling, and diff direction. Minor gap is the unspecified behavior when neither store lists the package, which matters given the openWorld hint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'package' parameter already documents the expected Android package-name format with an example. The description only implies that one package is supplied, adding no syntax, normalization, or lookup semantics beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (compare) and resource (one package across Cafe Bazaar vs Myket) and enumerates the exact attributes compared: version, rating, rating count, installs, size, update date, price. This is clearly distinguishable from ap_app (single-store details) and ap_search (discovery).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the verb and the two named stores, so an agent can infer this is the cross-store comparison tool. However, no sibling is named and no when-not conditions are given (e.g. that ap_app should be used for a single store, or ap_search to find a package name first).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.