Review Times
Server Details
Live review times for AI app stores: ChatGPT, Claude, Muse, Grok, Cursor. Check before you submit.
- Status
- Healthy
- Uptime
- 100.0% over 23 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
The two tools serve clearly distinct purposes: report_submission writes a user's own wait-time report, while review_times reads aggregate review-wait data. There is no overlap in action or target resource, so an agent can easily tell them apart.
Both tool names follow a consistent snake_case verb_noun pattern: report_submission and review_times. The convention is predictable and readable across the set.
With only two tools, the server feels thin even for its narrow domain of reporting and viewing review wait times. The count is borderline rather than unreasonable, but more surface would likely be expected.
The core workflow of submitting a report and querying aggregate review times is covered. However, updating an existing submission is only possible via an emailed private link outside the MCP surface, and deletion is absent, leaving minor gaps.
Available Tools
2 toolsreport_submissionReport a store submissionAInspect
Add the user's own submission to a store so others can see real wait times. Only call with the user's permission and for a real submission. The private link to update the report later is emailed to the address given, never returned in the conversation.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| note | No | Optional public note, max 280 chars | |
| No | Optional. The reporter’s email address; the private update link is sent there. Not stored. | ||
| store | Yes | ||
| status | Yes | ||
| decided_on | No | YYYY-MM-DD, required unless status is waiting | |
| listing_ref | No | Optional, private. Directory link, ChatGPT app id, MCP server URL or repository; the report is marked approved when that listing appears. | |
| submitted_on | Yes | YYYY-MM-DD |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| emailed | No | Whether the private update link was emailed |
| share_url | No | Public page for this report |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the generic safety profile (non-read-only, non-destructive, non-idempotent, open-world). The description adds real behavioral context beyond them: consent is required, and the private update link is emailed rather than returned in the conversation, which is a non-obvious side effect an agent must know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the purpose and then the constraints. No filler, though the email/link sentence partially duplicates what the schema already says.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-idempotent write with an output schema present, the description covers the essential extras: consent requirement and the fact that the update link is delivered by email, not in the response. It leaves some parameter semantics to the schema, which is acceptable given the output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 63% across 8 parameters, so several fields (store, submitted_on, status, kind, decided_on, listing_ref) are only minimally documented. The description reinforces the email/link behavior that is already in the schema, adding little new per-parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Add the user's own submission to a store') plus the downstream benefit ('so others can see real wait times'). It does not explicitly distinguish itself from the sibling review_times, so it falls short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives preconditions ('Only call with the user's permission and for a real submission'), which is genuine when-to-call guidance, but it never names or contrasts the sibling tool review_times, leaving the alternative-choice decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_timesGet store review timesARead-onlyIdempotentInspect
How long AI app, connector and plugin stores take to review submissions. Omit store for all stores. Returns typical wait (median days to decision), counts, pace and how review works.
| Name | Required | Description | Default |
|---|---|---|---|
| store | No | Store slug or name: chatgpt, claude-connectors, claude-plugins, muse, grok, clawhub, cursor, copilot, gemini-cli, docker-mcp |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| name | No | |
| pace | No | |
| slug | No | |
| error | No | |
| counts | No | |
| stores | No | |
| vendor | No | |
| verdict | No | One-line answer to how long review is taking |
| docs_url | No | |
| submit_url | No | |
| last_approval | No | |
| last_decision | No | |
| how_review_works | No | |
| longest_seen_days | No | |
| typical_wait_days | No | Median days to a decision, counting submissions still waiting |
| oldest_waiting_days | No | |
| median_to_approval_days | No | |
| median_to_rejection_days | No | |
| typical_wait_is_lower_bound | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral detail by specifying what is returned (median days, counts, pace, how review works) and that omitting store means all stores.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The core purpose is front-loaded, and the key usage nuance (omit store for all stores) is stated early.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one optional parameter, full schema documentation, robust annotations, and an output schema, the description covers everything an agent needs to correctly select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single optional parameter is documented with examples in the schema. The description adds extra semantic value by explaining that omitting the store yields all stores, which is not in the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports how long AI app, connector, and plugin stores take to review submissions, naming the specific resource being queried. It also distinguishes this from the sibling submission-management tools by focusing on review times rather than report/update operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context is provided: use this tool to retrieve review times, and omitting the store returns all stores. It does not explicitly mention sibling alternatives, but the difference from report_submission and update_submission is strongly implied by the resource being described.
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.
2 tool updates
- Changed
report_submission6 fields changed- added
Input schema / properties / emailAdded value: +{ + "description": "Optional. The reporter’s email address; the private update link is sent there. Not stored.", + "type": "string" +} - added
Input schema / properties / listing_refAdded value: +{ + "description": "Optional, private. Directory link, ChatGPT app id, MCP server URL or repository; the report is marked approved when that listing appears.", + "type": "string" +} - added
Output schema / properties / emailedAdded value: +{ + "description": "Whether the private update link was emailed", + "type": "boolean" +} - added
Output schema / properties / share_urlAdded value: +{ + "description": "Public page for this report", + "type": "string" +} - removed
Output schema / properties / tokenRemoved value: -{ - "description": "Private token for update_submission", - "type": "string" -} - removed
Output schema / properties / update_urlRemoved value: -{ - "description": "Private page to update or delete the report", - "type": "string" -}
- Removed
update_submission
3 tool updates
- Changed
report_submission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "error": { + "type": "string" + }, + "token": { + "description": "Private token for update_submission", + "type": "string" + }, + "update_url": { + "description": "Private page to update or delete the report", + "type": "string" + } + }, + "type": "object" +}
- Changed
review_times1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "description": "One store when store is given, otherwise every store under stores.", + "properties": { + "counts": { + "properties": { + "approved": { + "type": "number" + }, + "rejected": { + "type": "number" + }, + "total": { + "type": "number" + }, + "waiting": { + "type": "number" + }, + "withdrawn": { + "type": "number" + } + }, + "type": "object" + }, + "docs_url": { + "type": [ + "string", + "null" + ] + }, + "error": { + "type": "string" + }, + "how_review_works": { + "type": "string" + }, + "last_approval": { + "type": [ + "string", + "null" + ] + }, + "last_decision": { + "type": [ + "string", + "null" + ] + }, + "longest_seen_days": { + "type": [ + "number", + "null" + ] + }, + "median_to_approval_days": { + "type": [ + "number", + "null" + ] + }, + "median_to_rejection_days": { + "type": [ + "number", + "null" + ] + }, + "name": { + "type": "string" + }, + "oldest_waiting_days": { + "type": [ + "number", + "null" + ] + }, + "pace": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "stores": { + "items": { + "properties": { + "counts": { + "properties": { + "approved": { + "type": "number" + }, + "rejected": { + "type": "number" + }, + "total": { + "type": "number" + }, + "waiting": { + "type": "number" + }, + "withdrawn": { + "type": "number" + } + }, + "type": "object" + }, + "docs_url": { + "type": [ + "string", + "null" + ] + }, + "how_review_works": { + "type": "string" + }, + "last_approval": { + "type": [ + "string", + "null" + ] + }, + "last_decision": { + "type": [ + "string", + "null" + ] + }, + "longest_seen_days": { + "type": [ + "number", + "null" + ] + }, + "median_to_approval_days": { + "type": [ + "number", + "null" + ] + }, + "median_to_rejection_days": { + "type": [ + "number", + "null" + ] + }, + "name": { + "type": "string" + }, + "oldest_waiting_days": { + "type": [ + "number", + "null" + ] + }, + "pace": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "submit_url": { + "type": [ + "string", + "null" + ] + }, + "typical_wait_days": { + "description": "Median days to a decision, counting submissions still waiting", + "type": [ + "number", + "null" + ] + }, + "typical_wait_is_lower_bound": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "vendor": { + "type": "string" + }, + "verdict": { + "description": "One-line answer to how long review is taking", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "submit_url": { + "type": [ + "string", + "null" + ] + }, + "typical_wait_days": { + "description": "Median days to a decision, counting submissions still waiting", + "type": [ + "number", + "null" + ] + }, + "typical_wait_is_lower_bound": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "vendor": { + "type": "string" + }, + "verdict": { + "description": "One-line answer to how long review is taking", + "type": "string" + } + }, + "type": "object" +}
- Changed
update_submission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "error": { + "type": "string" + }, + "ok": { + "type": "boolean" + }, + "status": { + "enum": [ + "waiting", + "approved", + "rejected", + "withdrawn" + ], + "type": "string" + } + }, + "type": "object" +}
3 tool updates
- First observed
report_submission - First observed
review_times - First observed
update_submission
Related MCP Connectors
Live status, API pricing and rate limits for ChatGPT, Claude, Gemini, Cursor and 42+ AI tools.
Live status and health checks for AI coding providers: Claude, Cursor, Copilot, Codex and more.
- openasoOAuthai.openaso
App Store Optimization for AI agents: keyword ranks, suggestions, popularity, competitors, reviews
Live data on AI agents, APIs and models: prices, free tiers, limits, outages, real-world usage.
Related MCP Servers
- AlicenseAqualityDmaintenanceReal-time status monitoring, uptime tracking, incident history, and API pricing for 42+ AI tools including ChatGPT, Claude, Gemini, Cursor, GitHub Copilot, Perplexity, DeepSeek, and Groq. No API key required. Data updated every 5 minutes from independent monitoring infrastructure.742 npm1MIT
- AlicenseAqualityAmaintenanceAn MCP server that lets AI agents drive App Store Connect, Google Play Console, and Expo EAS end to end — builds, listings, screenshots, privacy labels, in-app purchases, review submission and even replying to App Review. It automates roughly 60 tools so an app can go from a build to 'Waiting for Review' without clicking through two consoles.6023 PyPI18MIT
- AlicenseNot gradedqualityDmaintenanceProvides live App Store rankings, charts, app details, reviews, and search across 55 countries, enabling AI assistants to query app store data.38 npmMIT
- AlicenseAqualityAmaintenanceThe open-source review layer for AI agents. Work done for humans is decided by humans.1810 npm1AGPL 3.0
Glama MCP Gateway
Add one secure layer between your agents and this server.