Skip to main content
Glama

Zero to Hundred marketplace

Update my Zero to Hundred draft

z2h_update_draft_listing
Destructive

Update an owned draft. Omitted fields stay unchanged; nullable fields accept null to clear them. Live listings cannot be edited through this tool. Requires listings:write. Returns the draft identity, web edit/review links and warnings (quality advice about the saved draft, never an error). On conflict, read the listing again before retrying.

Input Schema

NameRequiredDescriptionDefault
faqsNoSupplying FAQs disables the automatic FAQ draft.
modeNoNon-exclusive license listing mode. Omit to keep it unchanged.
slugYesListing slug returned by z2h_list_my_listings or z2h_create_draft_listing.
typeNoSoftware category that best matches its main use.
titleNoReplacement name Buyers will see on the software listing. Omission keeps the current name.
demoUrlNoPublic HTTP or HTTPS demo URL. Null clears it; omission keeps it.
domainsNoIndustry tags for the software. Choose keys from the Zero to Hundred taxonomy: ai, analytics, art-design, auth-identity, cms, conference, developer-tools, devops, e-commerce-marketplace, education, entertainment, environmental, fashion, finance, food, gaming, graphic-design, health, interior-design, marketing, membership, messaging, non-profit, political, productivity, real-estate, religious, services, social, technology, travel, ux-ui, wedding, other. Omission keeps the current tags.
imageUrlsNoHTTP or HTTPS screenshot URLs. The first image becomes the thumbnail.
techStackNoFrameworks and languages used by the software.
askingPriceNoBuilder-confirmed USD license price. Null clears it; omission keeps it.
thumbnailUrlNoHTTP or HTTPS thumbnail URL. Null clears it; omission keeps it.
sourceRepoUrlNoGitHub repository URL. Null clears it; omission keeps it.
videoUploadUrlNoYouTube or Loom demo URL. Null clears it; omission keeps it.
longDescriptionNoWhat the software does, who it helps, and what the Buyer receives.
operatingStatusNoSoftware readiness or commercial operating state, independent of listing publication. Omission keeps the current state.
maintenanceLevelNoMaintenance commitment the Builder offers.
shortDescriptionNoReplacement summary for marketplace cards. Omission keeps the current summary.
documentationLevelNoDocumentation supplied with the software.
sourceCodeIncludedNoWhether the sale includes source code, as confirmed by the Builder. Omission keeps the current choice.
associatedListingIdsNoIDs of related listings owned by this Builder, obtained from z2h_list_my_listings.
externalDependenciesNoThird-party services a Buyer must provision. Common values: Supabase, PostgreSQL, MySQL, MongoDB, Redis, Upstash, Firebase, PlanetScale, Neon, Clerk, Auth0, Stripe, PayPal, Plaid, Resend, SendGrid, Postmark, Twilio, OpenAI, Anthropic.

Output Schema

NameRequiredDescriptionDefault
idYesListing ID for related-listing references.
slugYesListing identifier used by the other Builder tools.
statusYesListing publication state. Only drafts can be edited through MCP.
editUrlYesWeb wizard URL for editing this listing.
warningsNoQuality warnings for the saved draft. The save succeeded; fix these with z2h_update_draft_listing to improve the listing. Empty when there is nothing to flag.
createdAtNoISO creation timestamp, returned when creating a draft.
publishUrlYesWeb review step where the Builder finishes publishing.
termsAcceptanceNoPresent when the Builder needs to accept terms before publishing.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / warnings
      Added value: +{
      +  "description": "Quality warnings for the saved draft. The save succeeded; fix these with z2h_update_draft_listing to improve the listing. Empty when there is nothing to flag.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "code": {
      +        "description": "Machine-readable warning code, for example description_short or no_tech_stack.",
      +        "type": "string"
      +      },
      +      "field": {
      +        "description": "Listing field to change, using the same name as the create and update inputs.",
      +        "type": "string"
      +      },
      +      "message": {
      +        "description": "What to fix, in plain words.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "code",
      +      "field",
      +      "message"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  2. Changed8 schema fields changed
    • removedInput schema / properties / demoUrl / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / demoUrl / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / sourceRepoUrl / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / sourceRepoUrl / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / thumbnailUrl / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / thumbnailUrl / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / videoUploadUrl / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / videoUploadUrl / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  3. Changed7 schema fields changed
    • changedInput schema / properties / domains / description
      Previous value: -"Industry domain keys from Zero to Hundred taxonomy, such as finance."New value: +"Industry tags for the software. Choose keys from the Zero to Hundred taxonomy: ai, analytics, art-design, auth-identity, cms, conference, developer-tools, devops, e-commerce-marketplace, education, entertainment, environmental, fashion, finance, food, gaming, graphic-design, health, interior-design, marketing, membership, messaging, non-profit, political, productivity, real-estate, religious, services, social, technology, travel, ux-ui, wedding, other. Omission keeps the current tags."
    • changedInput schema / properties / externalDependencies / items / anyOf
      Previous value: -[
      -  {
      -    "description": "Service name, such as Stripe.",
      -    "maxLength": 80,
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  {
      -    "properties": {
      -      "cost": {
      -        "description": "Expected service cost, such as USD 20/month.",
      -        "maxLength": 40,
      -        "type": "string"
      -      },
      -      "name": {
      -        "description": "Service the Buyer must provision.",
      -        "maxLength": 80,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "note": {
      -        "description": "What the software needs this service for.",
      -        "maxLength": 200,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "name"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "description": "Service name, such as Stripe.",
      +    "maxLength": 80,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  {
      +    "properties": {
      +      "cost": {
      +        "description": "Expected service cost, such as USD 20/month.",
      +        "maxLength": 40,
      +        "type": "string"
      +      },
      +      "name": {
      +        "description": "Name of a service the Buyer needs to operate the software, such as Stripe.",
      +        "maxLength": 80,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "note": {
      +        "description": "What the software needs this service for.",
      +        "maxLength": 200,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / faqs / items / properties / question / description
      Previous value: -"Question a Buyer may ask."New value: +"Buyer question addressed by the paired answer."
    • changedInput schema / properties / operatingStatus / description
      Previous value: -"State of the software itself, independent of the listing publication status."New value: +"Software readiness or commercial operating state, independent of listing publication. Omission keeps the current state."
    • changedInput schema / properties / shortDescription / description
      Previous value: -"One-sentence summary for marketplace cards."New value: +"Replacement summary for marketplace cards. Omission keeps the current summary."
    • changedInput schema / properties / sourceCodeIncluded / description
      Previous value: -"Whether the sale includes source code, as confirmed by the Builder."New value: +"Whether the sale includes source code, as confirmed by the Builder. Omission keeps the current choice."
    • changedInput schema / properties / title / description
      Previous value: -"Software name shown to Buyers."New value: +"Replacement name Buyers will see on the software listing. Omission keeps the current name."
  4. First observed

TDQS

A4.1/5.0
Behavior4/5

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

The annotations already declare the write/destructive/idempotent profile, and the description adds genuinely independent facts: PATCH-style merge semantics, null-to-clear behavior, the listings:write permission requirement, and the key nuance that returned warnings are quality advice and never errors. That last point materially changes how an agent would interpret a response. The remaining gap is that it does not say what a conflict looks like or what happens to publication state when a draft is edited.

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?

Five short sentences, front-loaded with the operation and merge semantics, with no filler. One sentence describing the return payload (draft identity, edit/review links, warnings) partly restates what the output schema already covers, though the "never an error" qualifier rescues it.

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 21-parameter mutation tool with an output schema, the description covers the things an agent must know: ownership scope, merge/clear semantics, permission requirement, excluded case, and conflict recovery. It omits what an agent should do instead when the target is a live listing, and does not mention how slug relates to the mutable fields beyond the 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 coverage is 100%, so per-parameter meaning is already fully documented and the baseline of 3 applies. The description does add cross-cutting semantics that apply to all 20 optional fields (omitted = unchanged, null = cleared), which the schema documents only field by field, but it offers no field-level guidance beyond that.

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 opening sentence gives a specific verb and resource ("Update an owned draft") and immediately bounds the scope to drafts the caller owns. The explicit exclusion of live listings separates it from any editing path on published listings, and the name-plus-description pair makes it distinguishable from z2h_create_draft_listing without opening either 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?

It states a clear negative condition (live listings cannot be edited here) and a recovery procedure ("On conflict, read the listing again before retrying"), which is real when-to-use guidance. It stops short of naming the sibling an agent should use for live listings or for creation, so the routing is only half-explicit.

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.