Review Times
Live review times for AI app stores: ChatGPT, Claude, Muse, Grok, Cursor. Check before you submit.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"review-times": {
"url": "https://reviewtimes.fyi/mcp"
}
}
}Remote endpoints
https://reviewtimes.fyi/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
🟢review_times(store)
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.
Input Schema
{
"type": "object",
"properties": {
"store": {
"type": "string",
"description": "Store slug or name: chatgpt, claude-connectors, claude-plugins, muse, grok, clawhub, cursor, copilot, gemini-cli, docker-mcp"
}
}
}Output Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"vendor": {
"type": "string"
},
"url": {
"type": "string"
},
"verdict": {
"type": "string",
"description": "One-line answer to how long review is taking"
},
"typical_wait_days": {
"type": [
"number",
"null"
],
"description": "Median days to a decision, counting submissions still waiting"
},
"typical_wait_is_lower_bound": {
"type": "boolean"
},
"longest_seen_days": {
"type": [
"number",
"null"
]
},
"median_to_approval_days": {
"type": [
"number",
"null"
]
},
"median_to_rejection_days": {
"type": [
"number",
"null"
]
},
"pace": {
"type": "string"
},
"counts": {
"type": "object",
"properties": {
"total": {
"type": "number"
},
"approved": {
"type": "number"
},
"rejected": {
"type": "number"
},
"waiting": {
"type": "number"
},
"withdrawn": {
"type": "number"
}
}
},
"oldest_waiting_days": {
"type": [
"number",
"null"
]
},
"last_decision": {
"type": [
"string",
"null"
]
},
"last_approval": {
"type": [
"string",
"null"
]
},
"how_review_works": {
"type": "string"
},
"submit_url": {
"type": [
"string",
"null"
]
},
"docs_url": {
"type": [
"string",
"null"
]
},
"stores": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"vendor": {
"type": "string"
},
"url": {
"type": "string"
},
"verdict": {
"type": "string",
"description": "One-line answer to how long review is taking"
},
"typical_wait_days": {
"type": [
"number",
"null"
],
"description": "Median days to a decision, counting submissions still waiting"
},
"typical_wait_is_lower_bound": {
"type": "boolean"
},
"longest_seen_days": {
"type": [
"number",
"null"
]
},
"median_to_approval_days": {
"type": [
"number",
"null"
]
},
"median_to_rejection_days": {
"type": [
"number",
"null"
]
},
"pace": {
"type": "string"
},
"counts": {
"type": "object",
"properties": {
"total": {
"type": "number"
},
"approved": {
"type": "number"
},
"rejected": {
"type": "number"
},
"waiting": {
"type": "number"
},
"withdrawn": {
"type": "number"
}
}
},
"oldest_waiting_days": {
"type": [
"number",
"null"
]
},
"last_decision": {
"type": [
"string",
"null"
]
},
"last_approval": {
"type": [
"string",
"null"
]
},
"how_review_works": {
"type": "string"
},
"submit_url": {
"type": [
"string",
"null"
]
},
"docs_url": {
"type": [
"string",
"null"
]
}
}
}
},
"error": {
"type": "string"
}
},
"description": "One store when store is given, otherwise every store under stores."
}🟡report_submission(store, submitted_on, status, decided_on, kind, ...)
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. Returns a token for updating it later.
Input Schema
{
"type": "object",
"properties": {
"store": {
"type": "string"
},
"submitted_on": {
"type": "string",
"description": "YYYY-MM-DD"
},
"status": {
"type": "string",
"enum": [
"waiting",
"approved",
"rejected",
"withdrawn"
]
},
"decided_on": {
"type": "string",
"description": "YYYY-MM-DD, required unless status is waiting"
},
"kind": {
"type": "string",
"enum": [
"new",
"update",
"resubmission"
]
},
"note": {
"type": "string",
"description": "Optional public note, max 280 chars"
}
},
"required": [
"store",
"submitted_on",
"status"
]
}Output Schema
{
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "Private token for update_submission"
},
"update_url": {
"type": "string",
"description": "Private page to update or delete the report"
},
"error": {
"type": "string"
}
}
}🟡update_submission(token, status, decided_on)
Mark a previously reported submission as still waiting, approved, rejected or withdrawn, using its token.
Input Schema
{
"type": "object",
"properties": {
"token": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"waiting",
"approved",
"rejected",
"withdrawn"
]
},
"decided_on": {
"type": "string",
"description": "YYYY-MM-DD"
}
},
"required": [
"token",
"status"
]
}Output Schema
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"status": {
"type": "string",
"enum": [
"waiting",
"approved",
"rejected",
"withdrawn"
]
},
"error": {
"type": "string"
}
}
}Community
Evidence