Skip to main content
Glama

Search reviews

rivioo_search_reviews
Read-onlyIdempotent

Exact counts of the reviews of one app that mention specific words, plus snippets with review IDs. It is the tool for "how many reviews mention X" questions and for sizing themes found while reading reviews with rivioo_get_reviews. App Store results are per country. Google Play results are per language, from all countries: the country picks the languages (English plus its main language). any_of matches reviews containing at least one term; all_of requires every term; both can be combined. Matching is literal and case-insensitive on word starts: "crash" finds crashes and crashed, "ad" does not find "bad". A term with spaces matches those words in sequence. Chinese, Japanese, Korean and Thai terms match anywhere. Terms are not translated, so reviews in another language match only terms in that language. Returns the reviews in the window, the matching reviews, counts per term and per star, and up to limit snippets newest first, each with review_id and url when the store has one. Counts are free; each snippet uses one review of quota the first time that review reaches this account in 30 days. Pass next_cursor with the same arguments for more snippets.

Input Schema

NameRequiredDescriptionDefault
daysNoWindow of this many days ending now. Defaults to 30. Use posted_from instead for exact dates.
limitNoSnippets to return, newest first. Default 15.
storeYes'ios' for the App Store or 'android' for Google Play.
all_ofNoMatch only reviews containing every one of these terms.
any_ofNoMatch reviews containing at least one of these terms, such as ["crash", "freeze"].
app_idYesNumeric App Store id (such as 324684580) or Google Play package name (such as com.spotify.music), from rivioo_my_apps or rivioo_find_app.
cursorNonext_cursor from the previous call, with the same arguments, for the next page.
countryNoTwo-letter storefront country such as us or gb. For the App Store it picks the country's reviews; for Google Play it picks the review languages (English plus the country's main language), read from all countries. Optional for saved apps, which use the user's default country.
ratingsNoOnly these star ratings, such as [1, 2].
app_versionNoOnly reviews of this exact app version.
posted_fromNoWindow start, inclusive, in UTC unless an offset is given. Use instead of days.
max_age_hoursNoReuse reviews collected within this many hours; older data is collected again automatically (newest reviews only). Default 24.
posted_beforeNoWindow end, exclusive. Defaults to now.
has_developer_replyNotrue for reviews the developer replied to, false for reviews without a reply.

Output Schema

NameRequiredDescriptionDefault
appYes
notesYesShort facts about this result: what the reviews cover, whether the sample is small, what the counts mean and how reviews are identified.
queryYes
quotaYes
cachedYestrue when the results come from reviews collected before this call.
statusYesfresh: collected during this call. cached: held reviews within max_age_hours. collecting: a collection is still running and results are partial. stale: older than max_age_hours. collection_failed: the latest collection failed.
windowYes
resultsYes
coverageYes
warningsYes
collectionYes
next_cursorYes
term_countsYesReviews in the window containing each term on its own.
collected_atYesWhen the held reviews were last collected, UTC.
max_age_hoursYes
reviews_in_windowYesReviews held in the window after filters, matching or not.
matching_by_ratingYes
total_matching_reviewsYesReviews in the window matching the terms and filters. Not users.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/open-world safety, but the description adds genuinely non-obvious behavior: the quota model (counts free, each snippet consumes one review of quota the first time it reaches the account in 30 days), pagination via next_cursor with identical arguments, and the per-store scope difference (App Store per country, Google Play per language across all countries). These are real cost and result-shape disclosures beyond the annotations. Slight deduction because it doesn't state whether quota exhaustion errors or silently truncates results.

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?

Purpose and the sibling distinction are front-loaded, and the dense matching/quota/pagination rules each earn their place. It is on the long side with several long run-on sentences (the any_of/all_of and matching rules could be tighter), but no sentence is pure filler.

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

Completeness5/5

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

For a 14-parameter, quota-metered search tool with an output schema and full annotation coverage, the description supplies everything an agent needs: what is returned (window reviews, matching reviews, counts per term and per star, snippets with review_id/url), matching semantics, cost, and pagination. The output schema covers return shape, so the description does not need to.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description materially enriches the term parameters beyond the schema: literal, case-insensitive word-start matching ("crash" matches crashes/crashed, "ad" does not match "bad"), space-separated terms matching in sequence, CJK matching anywhere, and no translation. It also explains country semantics for both stores. Minor friction: it instructs "Pass next_cursor" while the schema parameter is named "cursor".

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 and resource with scope: "Exact counts of the reviews of one app that mention specific words, plus snippets with review IDs." It explicitly positions itself against the sibling rivioo_get_reviews (counting/sizing vs. reading), so an agent can route correctly without opening either schema.

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

Usage Guidelines5/5

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

Names the exact question type it answers ("how many reviews mention X") and the workflow it complements ("sizing themes found while reading reviews with rivioo_get_reviews"), which implicitly excludes the reading use case. The alternative and its selecting condition are stated, not inferred.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources