Skip to main content
Glama

mcp-googleplay-reviews

A small, reviews-only MCP server for Google Play, backed by the Android Publisher API v3. It lets an agent read user reviews and reply to them — and deliberately nothing else.

Why so narrow?

The capability boundary is the trust guarantee. This server exposes only the two review tools below. There is intentionally no release, track, listing, image, in-app-product, subscription, or APK/AAB upload tool, so the service account you give it can't be used to ship a release or change your store listing. Scope the service account itself narrowly too — grant only the Reply to reviews permission in Play Console.

It is also dependency-free — pure Node 18+ (fetch + built-in crypto), no third-party packages — so there is no supply chain to audit beyond this one file (index.mjs).

Related MCP server: play-store-mcp

Tools

Tool

Description

list_reviews

List recent user reviews for an app, including any existing developer reply. Args: packageName, maxResults, translationLanguage, startToken; returns nextPageToken for paging.

reply_to_review

Reply to a review (packageName, reviewId, replyText, max 350 chars). Replying again edits the existing reply.

Note: Google Play only returns reviews where the user left text, and typically only from the last week — this is an API limitation, not a limitation of this server.

Authentication

Create a Google Cloud service account with a JSON key, enable the Google Play Android Developer API, and in Play Console → Users and permissions invite the service account's email with only the Reply to reviews permission.

Env var

What

GOOGLE_APPLICATION_CREDENTIALS

Path to the service-account JSON key file

The key is read only to sign a short-lived RS256 JWT, which is exchanged for an OAuth access token scoped to androidpublisher; the key is never logged, copied, or sent anywhere but Google's token endpoint.

Run

GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json \
npx -y github:ForgeHQ-Agents/mcp-googleplay-reviews

The agent passes the app's package name (e.g. com.example.app) as packageName.

Test

npm test   # node --test, zero dependencies

License

MIT

Available Tools

2 tools
list_reviewsA

List recent user reviews for an app (Google Play returns reviews where the user left text, typically from the last week). Each review includes its reviewId, author, star rating, comment text, device/app-version, and the existing developer reply if one exists. Page with nextPageToken.

ParametersJSON Schema
NameRequiredDescriptionDefault
packageNameYesApp package name, e.g. 'com.example.app'
maxResultsNoMax reviews per page, 1–100 (default 50)
translationLanguageNoOptional BCP-47 language to translate reviews into, e.g. 'en'
startTokenNoPagination token from a previous nextPageToken

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that only text reviews from the last week are returned, and lists included fields. This is sufficient for a read-only listing tool, though it could mention that it does not modify data.

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 sentences with no redundancy. Front-loaded with main purpose, followed by output details and pagination note. Every sentence is informative and concise.

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?

Given four parameters, no output schema, and no annotations, the description adequately covers purpose, behavior, output fields, and pagination. It lacks details on error handling or translation behavior but is sufficient for typical usage.

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 coverage is 100% with clear parameter descriptions. The description adds minimal parameter-specific insight beyond the schema (e.g., pagination context for startToken). It primarily describes output behavior rather than parameter semantics.

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?

Clearly states the verb 'list' and resource 'reviews for an app'. Provides specific details about returned fields (reviewId, author, star rating, comment text, device/app-version, developer reply) and temporal behavior (typically last week). Distinguishes from sibling tool 'reply_to_review' which handles replying, not listing.

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?

Explains the context: Google Play returns only text reviews from the last week. Mentions pagination via nextPageToken. However, no explicit when-not-to-use guidance or alternative tool comparison beyond naming the sibling.

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

reply_to_reviewA

Reply to a user review. Replies are limited to 350 characters. Replying again to the same review edits the existing reply.

ParametersJSON Schema
NameRequiredDescriptionDefault
packageNameYesApp package name, e.g. 'com.example.app'
reviewIdYesThe reviewId from list_reviews
replyTextYesReply text (max 350 characters)

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, but description explains key behaviors: character limit and edit-on-re-reply. Does not mention permissions or side effects, but sufficient for a simple mutation tool.

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?

Two sentences, no fluff. Essential information front-loaded: action, constraint, special behavior.

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?

Low complexity (3 required params, no output schema). Description covers main behavior and constraint adequately.

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 coverage is 100%, so baseline 3. Description reinforces replyText max length but adds no new meaning beyond schema.

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?

Description clearly states it replies to a user review, specifies character limit, and notes that replying again edits the existing reply. This distinguishes it from sibling tool list_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?

Implied usage: after listing reviews. Provides specific constraints (350 chars) and behavior (edit on re-reply). No explicit when-not or alternatives, but context is clear.

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. 2 tool updatesv1.0.0
    • First observedlist_reviews
    • First observedreply_to_review

TDQS

A4.2/5.0

Scored across 2 tools

Disambiguation5/5

Each tool has a distinct purpose: one lists reviews, the other replies to a review. There is no overlap in functionality.

Naming Consistency5/5

Both tool names follow the verb_noun pattern with underscores, consistent and predictable.

Tool Count3/5

With only 2 tools, the server covers the core actions for Google Play reviews but feels minimal. A moderate scope would include 3-5 tools (e.g., get review details, delete reply), so the count is borderline.

Completeness3/5

The server provides listing and replying, but misses common operations like fetching a single review by ID or deleting a reply. The limited time window for list_reviews also restricts functionality. These gaps are notable but not severe.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers