MCP server exposing Google Play tools (reviews, reporting, purchases).
Scoring was not performed
Output schemas not documented. No tool provides documentation of what fields and structure are returned. LLMs cannot plan downstream tool calls or extract necessary context (e.g., what fields does list_reviews return? Does it include review_id?). This is critical for composability.
Destructive operations lack confirmation or dry-run pattern. images_deleteall and similar destructive tools (delete_all, publish) provide no opportunity for agents to preview or confirm before executing. This risks catastrophic errors.
Error handling guidance absent. Tool descriptions do not explain what errors can occur, how to recover, or what the agent should do if a call fails. For example, if clone_listing_to_locale fails, should the agent retry? Try a different language? Ask the user?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 19 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 38 | - | v1 |
Ambiguous tool naming: patch_listing vs update_listing. Both modify listings but with different semantics (PATCH vs PUT). Descriptions do not clearly distinguish when to use each. This invites LLM confusion and incorrect tool selection.
Parameter format constraints not fully specified in descriptions. For example, start_date and end_date in crash_rate_query accept 'YYYY-MM-DD' but descriptions do not enforce this format or explain what happens if the format is wrong. LLMs often pass dates in other formats.
Missing pagination guidance. Tools like list_reviews accept max_results but do not document whether results are paginated, what to do if there are more results, or how to retrieve the next page. LLMs may assume they got all data when they didn't.
subscriptions_v2_get has an unclear name. The 'v2' suffix suggests API versioning internal detail. Better names: check_subscription_status or get_subscription_status. The current name does not clearly communicate intent.