Skip to main content
Glama

Zero to Hundred marketplace

Server Details

Search live software, compare listings, and prepare owned drafts. Publishing stays on the website.

Ownership verified
Status
Healthy
Uptime
100.0% over 23 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
Zero-to-hundred/zero-to-hundred-plugin
GitHub Stars
0
ChatGPT
–
Claude
–

TDQS

A4.2/5.0

Scored across 9 tools

Disambiguation4/5

Most tools have clearly distinct resource/action targets, especially owned-listing CRUD and the two-step source upload flow. The public discovery trio (search_marketplace, show_marketplace, compare_marketplace_listings) overlaps somewhat, but descriptions clearly explain their separate roles and sequencing.

Naming Consistency5/5

All tools use the same z2h_ prefix followed by consistent snake_case verb_noun naming. The pattern is predictable across discovery, listing management, and source upload operations.

Tool Count5/5

Nine tools is well scoped for a marketplace server covering public discovery plus builder-owned draft and source-upload workflows. Each tool appears to earn its place without excessive surface area.

Completeness4/5

The set covers public search/display/comparison, owned-listing create/read/list/update, and the source upload request/confirm lifecycle. Minor gaps exist because publishing and final review are intentionally delegated to the web wizard, and there is no delete operation for drafts or listings.

Available Tools

9 tools
z2h_compare_marketplace_listingsCompare marketplace softwareA
Read-onlyIdempotent
Inspect

Compare a shortlist of public software from marketplace search. Returns current public descriptions, USD license prices, types and tech stacks. Unavailable software is omitted without disclosing its status. This tool cannot purchase software or access private source.

NameRequiredDescriptionDefault
slugsYesListing identifiers to compare, in the order the Buyer wants them presented. Copy each slug from z2h_search_marketplace.

Output Schema

NameRequiredDescription
hasMoreYesThis response contains the complete refreshed selection.
resultsYesCurrent live software, in selection order when slugs were supplied.
nextCursorYesSelection refreshes do not paginate. Use marketplace search for paging.
unavailableSlugsYesRequested slugs unavailable publicly. Their private status is never disclosed.

TDQS

A4.2/5.0
Behavior4/5

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

Goes beyond the readOnly/idempotent annotations by disclosing that unavailable software is silently dropped without status disclosure — a genuinely non-obvious behavior an agent must account for in reporting. Also bounds the tool with "cannot purchase software or access private source." Minor gap: no guidance on what happens if all slugs are unavailable.

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?

Three tight sentences, zero filler. The capability statement comes first, followed by return contents, then behavioral caveats — a clean front-loaded structure.

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?

With an output schema, full parameter descriptions, and rich annotations, the description covers what remains: scope of data returned and the silent-omission behavior. It leaves out error handling for invalid or non-public slugs, which is the only meaningful residual gap.

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% and already documents minItems 2 / maxItems 4 and the ordering semantics, so the schema does the heavy lifting. The description's word "shortlist" only loosely echoes the array constraint and adds no new syntax or format detail.

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?

States a specific verb (compare) and resource (public marketplace software shortlist) plus what the response contains: descriptions, USD license prices, types, tech stacks. It is clearly distinguishable from z2h_search_marketplace (discovery) and z2h_get_listing (single fetch).

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?

Anchors usage to "a shortlist of public software from marketplace search," implying it is the follow-up step after search and before a decision. It does not explicitly name when to use z2h_get_listing instead, so it falls short of the full when/when-not/alternatives bar.

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

z2h_confirm_source_uploadConfirm a draft source archive uploadA
Destructive
Inspect

After the signed PUT succeeds, verify and attach the archive to the owned draft. Confirm that the Builder accepted "I own or have the rights to sell the codebase I am about to upload."; pass ownershipAccepted=true and ownershipVersion=2026-09-27. The server records the accepted wording with the source change. Final review and publishing stay in the web wizard.

NameRequiredDescriptionDefault
slugYesOwned listing slug from z2h_list_my_listings or z2h_create_draft_listing.
objectKeyYesStorage key returned by z2h_request_source_upload. Pass it unchanged.
sizeBytesYesExact archive size in bytes. Must match the uploaded file.
contentTypeYesArchive MIME type, used unchanged for PUT and confirmation.
ownershipVersionYesVersion of the ownership statement explicitly accepted by the Builder.
ownershipAcceptedYesTrue only after the Builder explicitly accepts the statement in this tool description.

Output Schema

NameRequiredDescription
okYesThe archive was verified and attached, or this same archive was already attached. Publishing remains in the web wizard.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so safety is covered. The description adds real context beyond that: the server persists the accepted ownership wording with the source change, and the call requires an explicit legal attestation with a fixed version string. It does not discuss retry/failure behavior for a non-idempotent confirm.

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?

Three short sentences: sequencing first, then the required attestation values, then the scope boundary. No filler, no restatement of the name, and the most decision-relevant fact leads.

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 a destructive, non-idempotent confirm step with an output schema present, the description supplies everything the agent needs: when it is valid, what values to send, what the server records, and what this tool deliberately does not do. Return values are left to the output schema, as appropriate.

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%, so the baseline is 3. The description still earns credit by explaining the intent behind the two const-valued flags (ownershipAccepted=true and ownershipVersion=2026-09-27) — that they attest to the exact statement shown — which is semantic meaning the enum/const alone doesn't convey.

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?

Uses a specific verb+resource pair ('verify and attach the archive to the owned draft') and pins the exact lifecycle moment ('after the signed PUT succeeds'), which distinguishes it from z2h_request_source_upload and the listing-management siblings. It stops short of naming a sibling tool outright, but the sequencing makes the boundary unambiguous.

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 a clear precondition — call only after the signed PUT completes — and an explicit exclusion: 'Final review and publishing stay in the web wizard,' so the agent won't try to over-extend this call. No alternative tool is named as a substitute, which keeps it at 4 rather than 5.

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

z2h_create_draft_listingCreate a Zero to Hundred draft listingA
Destructive
Inspect

Create an invisible draft and return editUrl and publishUrl. Price and source inclusion are Builder decisions. Set sourceCodeIncluded only after confirmation; omitted values default to false. Requires listings:write. Returns the draft identity, web edit/review links and warnings (quality advice about the saved draft, never an error). Supply a stable idempotencyKey and reuse it on every retry. The same key returns the original draft without editing it. Without a key, check z2h_list_my_listings before retrying. Source delivery, review and publishing continue in the web wizard.

NameRequiredDescriptionDefault
faqsNoSupplying FAQs disables the automatic FAQ draft.
typeYesSoftware category that best matches its main use.
titleYesName Buyers will see on the software listing.
demoUrlNoPublic HTTP or HTTPS demo URL. Omit when no demo is available.
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 creates a draft without industry tags.
imageUrlsNoHTTP or HTTPS screenshot URLs. The first image becomes the thumbnail.
techStackNoFrameworks and languages used by the software.
askingPriceNoUSD license price confirmed by the Builder. Omit if undecided.
thumbnailUrlNoHTTP or HTTPS image URL for the marketplace thumbnail.
sourceRepoUrlNoGitHub repository URL. Connecting and verifying source continues in the web wizard.
idempotencyKeyNoChoose one random key for this new listing and reuse it on every retry. Replays return the original draft without applying changes. Use update for edits. A new key means a deliberately new listing.
videoUploadUrlNoA YouTube or Loom demo URL.
longDescriptionYesWhat the software does, who it helps, and what the Buyer receives.
operatingStatusYesState of the software itself, independent of the listing publication status.
maintenanceLevelNoMaintenance commitment the Builder offers.
shortDescriptionYesBuyer-facing summary shown on marketplace cards.
documentationLevelNoDocumentation supplied with the software.
sourceCodeIncludedNoWhether the sale includes source code. Omission records false. Set true only after the Builder confirms that source code is included.
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

NameRequiredDescription
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.

TDQS

A3.9/5.0
Behavior4/5

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

Adds substantial context beyond the annotations: the draft is invisible (not published), write scope is required, warnings are quality advice about the saved draft and never an error, and replaying the same key returns the original draft unchanged rather than creating a second listing. This meaningfully explains the retry story that the idempotentHint=false annotation would otherwise leave ambiguous. The one unexplained point is why destructiveHint=true is set on a draft-creation tool, which an agent may find disconcerting.

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?

Purpose and return payload are front-loaded, and the retry/idempotency rules follow in logical order with no filler sentences. Some clauses are tightly packed (the warnings sentence carries two ideas at once), and the return-value sentence partially overlaps the output schema, but overall the length is justified for a 20-parameter mutation.

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 20-parameter, open-world, non-read-only create tool with an output schema, the description covers the essentials: preconditions, draft visibility, retry safety, warning semantics, and where the workflow hands off. It does not address the destructive annotation, rate limits, or what happens to an abandoned draft, which leaves minor gaps for an agent reasoning about side effects.

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%, so the schema already carries per-field meaning and the baseline is 3. The description does add decision-level guidance for two fields (askingPrice and sourceCodeIncluded are Builder decisions; omission records false), but it does not extend to the remaining eighteen parameters.

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?

Opens with a specific verb and resource: "Create an invisible draft and return editUrl and publishUrl." The word "draft" plus the return payload makes it distinguishable from z2h_update_draft_listing and z2h_confirm_source_upload, though the description never names the sibling to use for edits (that routing only appears inside the idempotencyKey schema text).

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 concrete conditions: requires listings:write, set sourceCodeIncluded only after confirmation, supply and reuse an idempotencyKey on retries, and if no key was supplied check z2h_list_my_listings before retrying. It also scopes the tool's boundary by stating that source delivery, review and publishing continue in the web wizard. It stops short of an explicit "when not to use this / use update_draft_listing instead" statement in the description body.

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

z2h_get_listingGet my Zero to Hundred listingA
Read-onlyIdempotent
Inspect

Read one owned listing before editing it. Requires listings:read. Use a slug from z2h_list_my_listings. Returns descriptions, pricing, software attributes, source attachment state and web edit links. Missing listings and listings owned by someone else both return not found. This does not download source code.

NameRequiredDescriptionDefault
slugYesIdentifies one of the authenticated Builder's listings. Copy slug from z2h_list_my_listings or z2h_create_draft_listing.

Output Schema

NameRequiredDescription
idYesListing ID for related-listing references.
slugYesListing identifier used by the other Builder tools.
typeYesSoftware category.
titleYesSoftware name.
statusYesListing publication state. Only drafts can be edited through MCP.
demoUrlYesPublic demo URL, or null.
domainsYesIndustry domain taxonomy keys.
editUrlYesWeb wizard URL for editing this listing.
createdAtYesISO creation timestamp.
imageUrlsYesListing screenshot URLs.
techStackYesFrameworks and languages used.
updatedAtYesISO last-update timestamp.
createdViaYesRecorded creation channel.
publishUrlYesWeb review step where the Builder finishes publishing.
sourceKindYesSource attachment method, or null before attachment.
testEnvUrlYesLegacy stored demo URL, or null.
askingPriceYesUSD license price, or null when unset.
thumbnailUrlYesMarketplace thumbnail URL, or null.
sourceRepoUrlYesSource repository URL, or null.
longDescriptionYesFull software description.
operatingStatusYesOperating state of the software, independent of listing publication.
maintenanceLevelYesBuilder maintenance commitment, or null when unset.
shortDescriptionYesMarketplace card summary.
documentationLevelYesDocumentation supplied, or null when unset.
sourceCodeIncludedYesWhether the Builder included source code.
testEnvInstructionsYesLegacy stored demo instructions, or null.
externalDependenciesYesServices the Buyer must provision. Legacy records may contain service names as strings.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/non-destructive annotations, it discloses the required scope (listings:read), enumerates the returned fields, and explains that missing and not-owned listings both return not found — a meaningful behavioral detail (no existence leak) an agent could not infer from annotations or schema.

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?

Five short sentences, front-loaded with the action and the permission gate, then return shape, then error semantics, then the negative constraint. No filler.

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 a single-parameter read tool with an output schema already defining return values, the description still covers auth, error behavior and the non-download caveat. Nothing needed to call it correctly is missing.

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% and the single slug parameter is already fully documented, including copying it from z2h_list_my_listings or z2h_create_draft_listing. The description's slug guidance duplicates the schema rather than extending it, so baseline 3 applies.

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?

States a specific verb and resource ("Read one owned listing") plus the scope qualifier "owned" and the intent "before editing it". It is clearly distinguishable from z2h_list_my_listings (plural list) and z2h_search_marketplace (public search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use a slug from z2h_list_my_listings, frames the correct timing (before editing), and adds an exclusion — it does not download source code — which routes the agent to the upload/confirm tools when that is the actual goal.

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

z2h_list_my_listingsList my Zero to Hundred listingsA
Read-onlyIdempotent
Inspect

Find the authenticated Builder's drafts and live listings before creating another draft. Requires listings:read. Returns items with slugs, publication state, USD prices, edit links, and nextCursor. Pass nextCursor to continue paging; null ends the list. An invalid or expired token requires sign-in again.

NameRequiredDescriptionDefault
limitNoNumber of owned listings to return per page. Omission uses 25, with newest listings first.
cursorNoContinue after the last listing in the preceding result. Use that response's nextCursor; omission starts at the newest listing.
setupCodeNoTemporary code from the Zero to Hundred connection check. Omit for ordinary listing reads.

Output Schema

NameRequiredDescription
itemsYesThe authenticated Builder's listings, newest first.
nextCursorYesOpaque cursor for the next page, or null at the end.

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: states the required scope (listings:read), enumerates what is returned (slugs, publication state, USD prices, edit links, nextCursor), explains paging termination (null ends the list), and describes the expired-token recovery path. This is the behavioral context an agent needs before calling.

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?

Four dense sentences, front-loaded with purpose and scoping, then prerequisites, returns, and paging. No filler and nothing repeated from structured fields unnecessarily.

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 a read-only paginated list tool with an output schema, this covers everything: auth scope, page size default behavior, continuation semantics, and failure handling. Nothing an agent needs to invoke it correctly is missing.

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 limit and cursor are already documented in the schema; the description only reinforces cursor-based continuation. It says nothing about the setupCode connection-check parameter, which is left entirely to the schema.

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?

States a specific verb and resource ('Find the authenticated Builder's drafts and live listings') with clear ownership scope, which separates it from z2h_get_listing and z2h_search_marketplace. The mention of checking before creating another draft fixes the intent precisely.

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 a clear trigger: use it before creating another draft, implicitly routing the agent away from z2h_create_draft_listing when a duplicate may exist. It does not explicitly name exclusions or alternatives for the search/compare siblings, but the context is unambiguous.

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

z2h_request_source_uploadRequest a draft source archive uploadA
Destructive
Inspect

For an owned draft, get a short-lived signed archive URL. Ask the Builder to explicitly accept this exact statement: "I own or have the rights to sell the codebase I am about to upload." Pass ownershipAccepted=true and ownershipVersion=2026-09-27 only after they accept. Returns signedUrl for the archive PUT, objectKey for confirmation, and contentType for the upload header. Keep signedUrl private. PUT up to 100 MB to signedUrl, then call z2h_confirm_source_upload. This does not publish.

NameRequiredDescriptionDefault
slugYesOwned listing slug from z2h_list_my_listings or z2h_create_draft_listing.
sizeBytesYesExact archive size in bytes. Must match the uploaded file.
contentTypeYesArchive MIME type, used unchanged for PUT and confirmation.
ownershipVersionYesVersion of the ownership statement explicitly accepted by the Builder.
ownershipAcceptedYesTrue only after the Builder explicitly accepts the statement in this tool description.

Output Schema

NameRequiredDescription
objectKeyYesStorage key to pass unchanged to z2h_confirm_source_upload.
signedUrlYesShort-lived signed PUT URL. Keep it private and upload the archive before confirmation.
contentTypeYesContent-Type to use for the archive PUT and confirmation.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint, non-idempotency and open-world behavior, so the bar is lower. The description nonetheless adds real operational context: the URL is short-lived, must be kept private, caps at 100 MB, and 'does not publish'—mitigating the scary destructive hint. The URL's actual lifetime and whether re-requests invalidate prior URLs are left unstated.

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 core action in the first clause, and the required statement text is unavoidable verbatim content. However, the sentence enumerating signedUrl/objectKey/contentType largely restates what the output schema already provides, which is wasted space given an output schema exists.

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?

Covers the full call chain an agent needs: precondition, user-confirmation gate, size cap, upload target, privacy caution, and the mandatory follow-up tool. With an output schema present, it need not describe return values—so nothing material is missing.

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%, so the schema already defines every parameter, making 3 the baseline. The description adds meaning beyond the schema by embedding the literal ownership statement and pinning the acceptance semantics of ownershipAccepted/ownershipVersion to that exact wording.

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?

States a specific verb and resource ('get a short-lived signed archive URL') scoped to 'an owned draft.' The follow-on step is named explicitly (z2h_confirm_source_upload), so the agent can distinguish this from the confirmation tool it sits next to in the workflow.

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 a clear precondition ('For an owned draft'), the exact user confirmation gate, and the required sequencing (PUT to signedUrl, then call z2h_confirm_source_upload). It does not spell out the negative case—e.g., when to re-request a URL or what to do if the URL expires—which keeps it short of a 5.

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

z2h_search_marketplaceSearch marketplace softwareA
Read-onlyIdempotent
Inspect

Find live software by keyword before building from scratch. Public, no sign-in needed. Returns descriptions, USD license prices, tech stacks and listing links. Example: {"search": "invoice", "limit": 5}. Empty search browses recent software. When hasMore is true without nextCursor, narrow the search. Matching is lexical. Errors set isError; retry a rate limit later. Use z2h_compare_marketplace_listings for a shortlist or z2h_show_marketplace for cards. A result does not guarantee suitability or purchase availability.

NameRequiredDescriptionDefault
modeNoFilter by the listing's sale model. Omission leaves the sale model unfiltered.
sortNoResult order. Defaults to relevance for a search, otherwise newest.
typeNoCategories matching the kind of software the Buyer wants. Omission searches across categories.
limitNoNumber of listings to return in this page. Omission uses 20.
cursorNoOpaque nextCursor from the previous page. Keep the same filters and sort.
searchNoKeywords describing the software the Buyer needs.
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 searches across industries.
operatingStatusNoFilter by software readiness or existing commercial operation, rather than listing publication state.

Output Schema

NameRequiredDescription
hasMoreYesMore matches exist. If nextCursor is null, narrow the search instead of paging.
resultsYesLive public software matching the filters.
nextCursorYesCursor for the next page, or null if cursor paging is unavailable or finished.
searchModeYesText uses keyword matching, not semantic similarity.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/open-world, and the description adds substantial non-annotation context: no sign-in required, what fields come back, lexical (not semantic) matching, a pagination gotcha ('hasMore true without nextCursor' means narrow the query), error/rate-limit retry behavior, and a suitability disclaimer. This is exactly the kind of operational detail structured fields cannot carry.

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?

Front-loaded with the purpose in the first clause, then packed with high-value operational facts in terse sentences. No filler; nearly every sentence maps to a distinct agent decision.

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 read-only search with an output schema, this covers intent, example invocation, result contents, pagination edge case, error handling, and sibling routing. Nothing an agent needs to call it correctly is missing.

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%, so the baseline is 3; the description adds a concrete call example ({"search": "invoice", "limit": 5}), clarifies that an omitted search browses recent items, and ties 'lexical' matching to the search param and nextCursor to the cursor param. It doesn't clarify the interaction of sort defaults with the filter arrays, so it stays just above baseline rather than excelling.

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?

States a specific verb and resource ('Find live software by keyword') and immediately frames the decision it supports ('before building from scratch'). It also explicitly separates itself from z2h_compare_marketplace_listings (shortlist) and z2h_show_marketplace (cards), so an agent can route without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use reasoning ('before building from scratch'), names two alternative siblings with the condition that selects each, and covers the degenerate case ('Empty search browses recent software'). Exclusions and the fallback path are both stated.

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

z2h_show_marketplaceShow marketplace softwareA
Read-onlyIdempotent
Inspect

Show public software cards and an interactive comparison panel. First search with z2h_search_marketplace, then pass the public slugs to display, and the search text you used as search so the panel shows what the cards are for. Without slugs, shows the newest live software. Prices and availability are refreshed on the server. Listing links open the Zero to Hundred website.

NameRequiredDescriptionDefault
slugsNoSearch-result slugs to show. Omit to display the newest live software.
searchNoText to prefill the panel's search box. Use the query that produced the supplied slugs. Cards are selected by slugs; this text does not filter them.

Output Schema

NameRequiredDescription
hasMoreYesThis response contains the complete refreshed selection.
resultsYesCurrent live software, in selection order when slugs were supplied.
nextCursorYesSelection refreshes do not paginate. Use marketplace search for paging.
unavailableSlugsYesRequested slugs unavailable publicly. Their private status is never disclosed.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world behavior, so the bar is lower. The description still adds useful context beyond them: prices and availability are refreshed server-side, and listing links open the external Zero to Hundred website — behavior an agent could not infer from structured fields.

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-loads what is rendered, then the workflow, then defaults and side notes. Every sentence carries information, though the closing sentence about listing links is slightly tangential and could be tightened.

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?

An output schema exists, so return values need not be described, and the description covers the search-then-show workflow, the empty-input default, and server-side refresh. Only the distinction from z2h_compare_marketplace_listings is left unaddressed.

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 both parameters are already fully documented in the schema, and the description largely restates that slugs select the cards and search only prefills the panel. It adds the rationale for passing the originating query, but no syntax or format detail beyond the schema.

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 — renders public software cards plus an interactive comparison panel — and gives the default behavior (newest live software when no slugs). It hints at a prerequisite relationship with z2h_search_marketplace but never explicitly contrasts itself with the similar-sounding z2h_compare_marketplace_listings sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit sequence: search first with z2h_search_marketplace, then pass the resulting public slugs here. It also states the no-argument path (omit slugs to show the newest live software), so both branches of use are covered without inference.

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

z2h_update_draft_listingUpdate my Zero to Hundred draftA
Destructive
Inspect

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.

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

NameRequiredDescription
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.

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedz2h_create_draft_listing1 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"
        +}
    • Changedz2h_update_draft_listing1 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. 6 tool updates
    • Changedz2h_compare_marketplace_listings2 fields changed
      • removedOutput schema / properties / results / items / properties / licensePrice / anyOf
        Removed value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / results / items / properties / licensePrice / type
        Added value: +[
        +  "number",
        +  "null"
        +]
    • Changedz2h_get_listing18 fields changed
      • removedOutput schema / properties / askingPrice / anyOf
        Removed value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / askingPrice / type
        Added value: +[
        +  "number",
        +  "null"
        +]
      • removedOutput schema / properties / demoUrl / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / demoUrl / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / documentationLevel / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / documentationLevel / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / maintenanceLevel / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / maintenanceLevel / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / sourceKind / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / sourceKind / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / sourceRepoUrl / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / sourceRepoUrl / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / testEnvInstructions / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / testEnvInstructions / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / testEnvUrl / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / testEnvUrl / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / thumbnailUrl / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / thumbnailUrl / type
        Added value: +[
        +  "string",
        +  "null"
        +]
    • Changedz2h_list_my_listings8 fields changed
      • removedOutput schema / properties / items / items / properties / askingPrice / anyOf
        Removed value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / items / items / properties / askingPrice / type
        Added value: +[
        +  "number",
        +  "null"
        +]
      • removedOutput schema / properties / items / items / properties / demoUrl / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / items / items / properties / demoUrl / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / items / items / properties / thumbnailUrl / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / items / items / properties / thumbnailUrl / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / nextCursor / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / nextCursor / type
        Added value: +[
        +  "string",
        +  "null"
        +]
    • Changedz2h_search_marketplace4 fields changed
      • removedOutput schema / properties / nextCursor / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / nextCursor / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / results / items / properties / licensePrice / anyOf
        Removed value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / results / items / properties / licensePrice / type
        Added value: +[
        +  "number",
        +  "null"
        +]
    • Changedz2h_show_marketplace2 fields changed
      • removedOutput schema / properties / results / items / properties / licensePrice / anyOf
        Removed value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / results / items / properties / licensePrice / type
        Added value: +[
        +  "number",
        +  "null"
        +]
    • Changedz2h_update_draft_listing8 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. 2 tool updates
    • Changedz2h_create_draft_listing1 field changed
      • addedInput schema / properties / idempotencyKey
        Added value: +{
        +  "description": "Choose one random key for this new listing and reuse it on every retry. Replays return the original draft without applying changes. Use update for edits. A new key means a deliberately new listing.",
        +  "maxLength": 128,
        +  "minLength": 8,
        +  "pattern": "^[a-zA-Z0-9_-]+$",
        +  "type": "string"
        +}
    • Changedz2h_list_my_listings1 field changed
      • addedInput schema / properties / setupCode
        Added value: +{
        +  "description": "Temporary code from the Zero to Hundred connection check. Omit for ordinary listing reads.",
        +  "pattern": "^[a-f0-9]{32}$",
        +  "type": "string"
        +}
  4. 7 tool updates
    • Changedz2h_compare_marketplace_listings1 field changed
      • changedInput schema / properties / slugs / description
        Previous value: -"Shortlist from marketplace search, in the desired comparison order."New value: +"Listing identifiers to compare, in the order the Buyer wants them presented. Copy each slug from z2h_search_marketplace."
    • Changedz2h_create_draft_listing6 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 creates a draft without industry 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 / shortDescription / description
        Previous value: -"One-sentence summary for marketplace cards."New value: +"Buyer-facing summary shown on marketplace cards."
      • 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. Omission records false. Set true only after the Builder confirms that source code is included."
      • changedInput schema / properties / title / description
        Previous value: -"Software name shown to Buyers."New value: +"Name Buyers will see on the software listing."
    • Changedz2h_get_listing1 field changed
      • changedInput schema / properties / slug / description
        Previous value: -"Owned listing slug from z2h_list_my_listings or z2h_create_draft_listing."New value: +"Identifies one of the authenticated Builder's listings. Copy slug from z2h_list_my_listings or z2h_create_draft_listing."
    • Changedz2h_list_my_listings2 fields changed
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque nextCursor from the previous page. Omit for the first page."New value: +"Continue after the last listing in the preceding result. Use that response's nextCursor; omission starts at the newest listing."
      • changedInput schema / properties / limit / description
        Previous value: -"Listings per page. Defaults to 25; newest first."New value: +"Number of owned listings to return per page. Omission uses 25, with newest listings first."
    • Changedz2h_search_marketplace6 fields changed
      • changedInput schema / properties / domains / description
        Previous value: -"Industry domain keys, such as finance. Omit to search all domains."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 searches across industries."
      • changedInput schema / properties / limit / description
        Previous value: -"Listings per page. Defaults to 20."New value: +"Number of listings to return in this page. Omission uses 20."
      • changedInput schema / properties / mode / description
        Previous value: -"License listing mode filter. Omit for all supported modes."New value: +"Filter by the listing's sale model. Omission leaves the sale model unfiltered."
      • changedInput schema / properties / operatingStatus / description
        Previous value: -"Software operating states to include, independent of listing publication status."New value: +"Filter by software readiness or existing commercial operation, rather than listing publication state."
      • changedInput schema / properties / search / description
        Previous value: -"Buyer need or software keyword. Search is lexical, not semantic."New value: +"Keywords describing the software the Buyer needs."
      • changedInput schema / properties / type / description
        Previous value: -"Software categories to include. Omit for all categories."New value: +"Categories matching the kind of software the Buyer wants. Omission searches across categories."
    • Changedz2h_show_marketplace1 field changed
      • changedInput schema / properties / search / description
        Previous value: -"Search text displayed in the panel. It does not filter these cards; supply search-result slugs too."New value: +"Text to prefill the panel's search box. Use the query that produced the supplied slugs. Cards are selected by slugs; this text does not filter them."
    • Changedz2h_update_draft_listing7 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."
  5. 9 tool updates
    • First observedz2h_compare_marketplace_listings
    • First observedz2h_confirm_source_upload
    • First observedz2h_create_draft_listing
    • First observedz2h_get_listing
    • First observedz2h_list_my_listings
    • First observedz2h_request_source_upload
    • First observedz2h_search_marketplace
    • First observedz2h_show_marketplace
    • First observedz2h_update_draft_listing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables agents to search and browse a directory of AI agents, MCP servers and agent skills by category, pricing and access model, surface trending items and new launches, find alternatives to a given product, and compare several listings side by side. It also lets a signed-in user submit new listings and post star reviews through OAuth-authenticated tools.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to search launched software products, inspect weekly leaderboards and Hall of Fame winners, check upcoming launch calendar availability, and retrieve full product details. It can also draft a new product listing from a supplied URL, returning a private review link without publishing or charging.
    6
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to search a public catalog of published components, estimate what a data model would reuse, mint, and cost, then assemble, publish, and generate the resulting package or application. Spending is gated by a shown estimate and the key's limit, so no build or charge happens without review.
    75 PyPI
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.