Skip to main content
Glama

Server Details

Live review times for AI app stores: ChatGPT, Claude, Muse, Grok, Cursor. Check before you submit.

Ownership verified
Status
Healthy
Uptime
100.0% over 23 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4/5.0

Scored across 2 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count3/5

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.

Completeness4/5

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 tools
report_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
noteNoOptional public note, max 280 chars
emailNoOptional. The reporter’s email address; the private update link is sent there. Not stored.
storeYes
statusYes
decided_onNoYYYY-MM-DD, required unless status is waiting
listing_refNoOptional, private. Directory link, ChatGPT app id, MCP server URL or repository; the report is marked approved when that listing appears.
submitted_onYesYYYY-MM-DD

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
emailedNoWhether the private update link was emailed
share_urlNoPublic page for this report

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 timesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
storeNoStore slug or name: chatgpt, claude-connectors, claude-plugins, muse, grok, clawhub, cursor, copilot, gemini-cli, docker-mcp

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNo
nameNo
paceNo
slugNo
errorNo
countsNo
storesNo
vendorNo
verdictNoOne-line answer to how long review is taking
docs_urlNo
submit_urlNo
last_approvalNo
last_decisionNo
how_review_worksNo
longest_seen_daysNo
typical_wait_daysNoMedian days to a decision, counting submissions still waiting
oldest_waiting_daysNo
median_to_approval_daysNo
median_to_rejection_daysNo
typical_wait_is_lower_boundNo

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 2 tool updates
    • Changedreport_submission6 fields changed
      • addedInput schema / properties / email
        Added value: +{
        +  "description": "Optional. The reporter’s email address; the private update link is sent there. Not stored.",
        +  "type": "string"
        +}
      • addedInput schema / properties / listing_ref
        Added 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"
        +}
      • addedOutput schema / properties / emailed
        Added value: +{
        +  "description": "Whether the private update link was emailed",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / share_url
        Added value: +{
        +  "description": "Public page for this report",
        +  "type": "string"
        +}
      • removedOutput schema / properties / token
        Removed value: -{
        -  "description": "Private token for update_submission",
        -  "type": "string"
        -}
      • removedOutput schema / properties / update_url
        Removed value: -{
        -  "description": "Private page to update or delete the report",
        -  "type": "string"
        -}
    • Removedupdate_submission
  2. 3 tool updates
    • Changedreport_submission1 field changed
      • changedOutput 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"
        +}
    • Changedreview_times1 field changed
      • changedOutput 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"
        +}
    • Changedupdate_submission1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "error": {
        +      "type": "string"
        +    },
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "status": {
        +      "enum": [
        +        "waiting",
        +        "approved",
        +        "rejected",
        +        "withdrawn"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
  3. 3 tool updates
    • First observedreport_submission
    • First observedreview_times
    • First observedupdate_submission

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Real-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.
    7
    42 npm
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    An 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.
    60
    23 PyPI
    18
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides live App Store rankings, charts, app details, reviews, and search across 55 countries, enabling AI assistants to query app store data.
    38 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources