Skip to main content
Glama

Rivioo

Server Details

Analyse App Store and Google Play reviews in Claude: counts, trends and real quotes for any app.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.6/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a distinct purpose: find_app discovers external apps, my_apps lists saved apps, get_reviews reads full reviews, review_stats returns aggregate metrics, and search_reviews counts/mentions themes. The descriptions explicitly guide when to use each tool and clarify overlapping-sounding terms like reviews vs. snippets vs. counts.

Naming Consistency4/5

All names use a consistent rivioo_ snake_case prefix, making them easy to scan. However, not every tool follows a strict verb_noun pattern: rivioo_my_apps and rivioo_review_stats are noun phrases, while the others are verb_noun.

Tool Count5/5

Five tools is well-scoped for an app review analytics server. Each tool covers a distinct part of the workflow: discovery, saved-app lookup, aggregate stats, theme search, and full review reading.

Completeness4/5

The surface covers core review analytics: finding apps, listing saved apps, reading reviews, counting mentions, and viewing rating/version/week trends. A minor gap is that there is no tool to add or remove apps from the saved list, so my_apps is read-only from the agent's perspective.

Available Tools

5 tools
rivioo_find_appFind an appA
Read-onlyIdempotent
Inspect

Search the App Store and Google Play for apps by name in one storefront country (for Google Play the country later picks the review languages). Returns each match's app_id per store, developer, rating and store links. Use it for apps that are not in rivioo_my_apps; ask the user for the country if it is unknown. Omit store to search both stores. Free; delivers no reviews.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesApp name or keywords.
storeNo'ios' for the App Store or 'android' for Google Play.
countryYesTwo-letter storefront country to search, such as us or gb.

Output Schema

ParametersJSON Schema
NameRequiredDescription
queryYes
quotaYes
cachedYes
countryYes
resultsYes
warningsYes
collected_atYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare this is a safe, idempotent, open-world read, so the bar is lower. The description still adds real context beyond them: it is free, it 'delivers no reviews' (steering review needs elsewhere), and the country influences downstream Google Play review languages.

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

Conciseness5/5

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

Four compact sentences, front-loaded with purpose and scope before return values and usage rules. No filler; even the terse 'Free; delivers no reviews' carries decision-relevant information.

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?

With an output schema present, return values need not be fully documented, yet the description still summarizes them. Purpose, alternatives, defaults, and cost are all covered, leaving nothing an agent needs to call it correctly.

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 baseline is 3, but the description adds meaning the schema lacks: omitting store searches both stores (no default is documented in the enum) and country's downstream effect on Google Play review languages. Minor gap only in that query syntax/keyword behavior isn't elaborated.

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?

Opens with a specific verb (Search) plus resources (App Store, Google Play) and scope (by name, one storefront country), which cleanly separates it from the review-oriented siblings rivioo_get_reviews and rivioo_search_reviews. It also names the returned fields (app_id per store, developer, rating, store links).

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?

Explicitly routes the agent: 'Use it for apps that are not in rivioo_my_apps', with a sibling named as the alternative. It also tells the agent to ask the user for the unknown country and that omitting store searches both stores, covering the main path and edge case.

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

rivioo_get_reviewsGet reviewsA
Read-onlyIdempotent
Inspect

Returns a page of full reviews of one app: reviews, not counts. To count how many reviews mention a theme, use rivioo_search_reviews. Every review has a review_id, and a url when the store has one (App Store reviews have no per-review link), to cite when quoting. 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). Pass review_ids (from rivioo_search_reviews) to read those reviews, or a window with filters to read reviews newest first. response_format concise returns id, rating, date, version, title, body and url; detailed adds language and developer reply. Each review uses one review of quota the first time it reaches this account in 30 days; reading it again in that time is free. Pass next_cursor with the same arguments for the next page.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoWindow of this many days ending now. Defaults to 30. Use posted_from instead for exact dates.
limitNoReviews per page, newest first. Default 25.
storeYes'ios' for the App Store or 'android' for Google Play.
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].
review_idsNoRead exactly these reviews. Window and filters are ignored.
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.
response_formatNoconcise
has_developer_replyNotrue for reviews the developer replied to, false for reviews without a reply.

Output Schema

ParametersJSON Schema
NameRequiredDescription
appYes
notesYesShort facts about this result: what the reviews cover, whether the sample is small, what the counts mean and how reviews are identified.
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
reviewsYes
coverageYes
warningsYes
collectionYes
next_cursorYes
collected_atYesWhen the held reviews were last collected, UTC.
max_age_hoursYes
not_found_review_idsYes
not_shown_review_idsYes
total_matching_reviewsYesReviews in the window matching the filters, or the IDs found.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover the safe-read profile, and the description still adds substantial behavior: per-review quota cost (one per review per 30 days, free on re-read), App Store per-country vs Google Play per-language-from-all-countries semantics, and conditional url availability. This is exactly the context annotations cannot convey.

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?

Front-loaded with purpose and the sibling distinction, and nearly every sentence carries non-obvious information (quota, platform semantics, pagination). It is dense and runs long, though, with several ideas packed per sentence that bullet points would have surfaced faster.

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 tool with an output schema, the description covers everything an agent needs: two input modes, pagination contract, platform scoping, quota economics, and response_format effects. Nothing material is left to inference.

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 93%, so the schema carries most parameter meaning (baseline 3). The description adds value above that base: review_ids should come from rivioo_search_reviews, next_cursor must be passed with the same arguments, and response_format's concise vs detailed field lists are spelled out.

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+resource (returns a page of full reviews of one app) and immediately distinguishes itself from rivioo_review_stats with 'reviews, not counts'. The sibling routing sentence makes the boundary crisp without opening any other 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?

Explicit when-to-use: use rivioo_search_reviews to count theme mentions, use this to read full reviews. It also names the two operating modes (review_ids for known reviews vs a window with filters for newest-first) and how to page with next_cursor using the same arguments.

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

rivioo_my_appsMy appsA
Read-onlyIdempotent
Inspect

List the apps this Rivioo user saved: their own apps and competitors, each with store, app_id and default country (for Google Play the default country picks the review languages). Use it to look up an app the user names before calling rivioo_review_stats, rivioo_search_reviews or rivioo_get_reviews. Free; delivers no reviews.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
appsYes
quotaYes
cachedYes
messageYes
manage_urlYes
collected_atYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds value the annotations cannot: cost ('Free'), output scope ('delivers no reviews'), and the behavioral effect of default country on Google Play review language selection.

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

Conciseness5/5

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

Three short sentences, front-loaded with the core action, then routing, then the cost/scope caveat. Every clause carries distinct information and nothing is padded.

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?

An output schema exists, so return-value detail in the description is a bonus rather than a requirement, and the annotations cover safety. Combined with the routing cues and the cost note, an agent has everything needed to call this correctly and to place it in the workflow.

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?

The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to disambiguate. The mention of 'default country' concerns returned data rather than an input, so it neither helps nor hurts parameter understanding.

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 ('List the apps this Rivioo user saved') and enumerates the returned fields (store, app_id, default country), so the agent knows exactly what this yields. It also implicitly separates itself from rivioo_find_app by framing the scope as the user's saved list rather than a lookup, and names the downstream tools it feeds.

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

Usage Guidelines4/5

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

Gives clear when-to-use context: 'look up an app the user names before calling rivioo_review_stats, rivioo_search_reviews or rivioo_get_reviews.' The clause 'Free; delivers no reviews' acts as a when-not for review retrieval. It never explicitly contrasts with rivioo_find_app, which is the closest alternative, so it stops short of full routing guidance.

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

rivioo_review_statsReview statsA
Read-onlyIdempotent
Inspect

Exact rating distribution for one app over a window: total reviews, average rating, reviews per star and developer replies, also by app version (newest first, then other and unknown) and by week (weeks start Monday, UTC). Counts are the reviews Rivioo holds in the window, not users or every review ever written. 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). Use it for ratings, versions and weekly trends, and before reading reviews to see when ratings changed. Free; returns no review text. Collects newer reviews automatically when held reviews are older than max_age_hours.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoWindow of this many days ending now. Defaults to 30. Use posted_from instead for exact dates.
storeYes'ios' for the App Store or 'android' for Google Play.
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.
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.
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.

Output Schema

ParametersJSON Schema
NameRequiredDescription
appYes
notesYesShort facts about this result: what the reviews cover, whether the sample is small, what the counts mean and how reviews are identified.
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.
totalsYes
windowYes
by_weekYes
coverageYes
warningsYes
collectionYes
collected_atYesWhen the held reviews were last collected, UTC.
max_age_hoursYes
by_app_versionYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/no-destructive, and the description layers on real behavioral context: it is free, returns no review text, counts only reviews Rivioo holds in the window (not all reviews ever), and auto-collects newer reviews when held data is older than max_age_hours. The store-specific scoping (App Store per country vs Google Play per language across all countries) is information an agent could not infer from the schema alone.

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?

Front-loaded with the core purpose and tightly packed with no filler sentences, but it is a single long run-on paragraph where bullet-style grouping of store semantics and freshness rules would read faster. Every sentence still carries distinct information.

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?

An output schema exists so return values need no explanation; the description instead supplies the surrounding context an agent needs to call it correctly: window semantics, store-dependent country/language behavior, week boundaries, freshness/auto-collection, and cost. Nothing material is missing for an 8-parameter analytical read tool.

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 adds cross-parameter meaning: how country behaves differently for ios versus android, that App Store results are per country, and that version/week groupings are ordered (newest first, weeks start Monday UTC). It does not restate the days/posted_from/max_age_hours mechanics, which the schema already handles.

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 ('Exact rating distribution for one app over a window') and enumerates exactly what the distribution contains: total reviews, average rating, reviews per star, developer replies, breakdowns by version and by week. The closing 'returns no review text' cleanly separates it from rivioo_get_reviews.

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

Usage Guidelines4/5

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

Gives explicit use cases ('for ratings, versions and weekly trends, and before reading reviews to see when ratings changed'), which effectively routes the agent toward this tool before get_reviews. It never names an alternative sibling or states a when-not-to-use condition, so it stops short of the top mark.

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

rivioo_search_reviewsSearch reviewsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON 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

ParametersJSON Schema
NameRequiredDescription
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.

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedrivioo_find_app
    • First observedrivioo_get_reviews
    • First observedrivioo_my_apps
    • First observedrivioo_review_stats
    • First observedrivioo_search_reviews

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources