Skip to main content
Glama

submit_pwa

Idempotent

Submit one progressive web app for review. Writes to the moderation queue and emails a receipt to contact_email; a human reviews it before anything is published. Free review takes about 7 days. Requires idempotency_key: replaying the same key returns the first submission instead of creating a duplicate. Returns submission_id, a handle valid for 30 days, after which get_submission_status and create_pro_launch_checkout reject it. Holding the handle authenticates nobody. Submit apps that exist and that you can name; the queue is read by a person.

Input Schema

NameRequiredDescriptionDefault
urlYesThe app's public URL. A bare domain is accepted and normalised to https://.
nameYesThe app's name, as its makers write it.
messageNoAnything else the reviewer should know.
categoryNoOne of the catalog categories. If omitted or unknown, the entry is filed for manual categorisation.
descriptionNoWhat the app does, in the submitter's words. 25 words or more, and five or more tags, is what a listing needs to be indexable.
screenshotsNoURLs of screenshots hosted by the submitter. The directory never re-hosts imagery it does not own.
contact_emailYesWhere the review outcome is sent. Must be an address the submitter can read.
idempotency_keyYesA caller-chosen key. Replaying this tool with the same key returns the first result instead of creating a second entry. MCP defines no idempotency mechanism, so this is an application argument, not a protocol header.

Output Schema

NameRequiredDescriptionDefault
urlYes
nameYes
statusYes
sessionNo
categoryYes
replayedYes
next_stepYes
review_timeYes
submission_idYes
handle_expires_atYes
category_needs_reviewYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), while the description supplies the substance: a moderation-queue write, an outbound receipt email to contact_email, human review before publication, a ~7-day latency, duplicate-suppression semantics, and a 30-day handle lifetime. The 'holding the handle authenticates nobody' note is a genuine security caveat not derivable from any structured field.

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?

Front-loaded with the action and its consequences, and nearly every sentence carries new information. There is mild redundancy between 'a human reviews it before anything is published' and the closing 'the queue is read by a person', which repeats the same fact.

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?

For an 8-parameter write tool with an output schema and full schema coverage, the description covers everything an agent needs: side effects (queue write, email), latency, idempotency, handle lifetime and its downstream effect on two siblings. Return-value details are correctly left to the output schema.

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 description coverage is 100% and every parameter already carries its own prose, so the baseline is 3. The description restates the idempotency_key contract (replay returns the first submission) and the contact_email receipt side effect, but adds no new syntax, constraint or format detail beyond what the schema documents.

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?

Opens with a specific verb and resource ('Submit one progressive web app for review'), immediately distinguishing it from read-oriented siblings like get_pwa, search_pwas and get_submission_status. The scope ('one app', 'for review') is precise enough that an agent can pick this tool without inspecting the schema.

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?

Gives clear context: free review ~7 days, human review required, and a gating rule ('Submit apps that exist and that you can name'). It also warns that the returned handle expires in 30 days and that get_submission_status and create_pro_launch_checkout will reject it afterwards, which routes the agent across siblings. It stops short of an explicit 'call get_submission_requirements first' instruction, so no named-alternative exclusion.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources