Zero to Hundred marketplace
Server Details
Search live software, compare listings, and prepare owned drafts. Publishing stays on the website.
- 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
Scored across 9 tools
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.
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.
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.
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 toolsz2h_compare_marketplace_listingsCompare marketplace softwareARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slugs | Yes | Listing identifiers to compare, in the order the Buyer wants them presented. Copy each slug from z2h_search_marketplace. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hasMore | Yes | This response contains the complete refreshed selection. |
| results | Yes | Current live software, in selection order when slugs were supplied. |
| nextCursor | Yes | Selection refreshes do not paginate. Use marketplace search for paging. |
| unavailableSlugs | Yes | Requested slugs unavailable publicly. Their private status is never disclosed. |
TDQS
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.
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.
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.
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.
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.
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 uploadADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Owned listing slug from z2h_list_my_listings or z2h_create_draft_listing. | |
| objectKey | Yes | Storage key returned by z2h_request_source_upload. Pass it unchanged. | |
| sizeBytes | Yes | Exact archive size in bytes. Must match the uploaded file. | |
| contentType | Yes | Archive MIME type, used unchanged for PUT and confirmation. | |
| ownershipVersion | Yes | Version of the ownership statement explicitly accepted by the Builder. | |
| ownershipAccepted | Yes | True only after the Builder explicitly accepts the statement in this tool description. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | The archive was verified and attached, or this same archive was already attached. Publishing remains in the web wizard. |
TDQS
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.
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.
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.
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.
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.
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 listingADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| faqs | No | Supplying FAQs disables the automatic FAQ draft. | |
| type | Yes | Software category that best matches its main use. | |
| title | Yes | Name Buyers will see on the software listing. | |
| demoUrl | No | Public HTTP or HTTPS demo URL. Omit when no demo is available. | |
| domains | No | 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. | |
| imageUrls | No | HTTP or HTTPS screenshot URLs. The first image becomes the thumbnail. | |
| techStack | No | Frameworks and languages used by the software. | |
| askingPrice | No | USD license price confirmed by the Builder. Omit if undecided. | |
| thumbnailUrl | No | HTTP or HTTPS image URL for the marketplace thumbnail. | |
| sourceRepoUrl | No | GitHub repository URL. Connecting and verifying source continues in the web wizard. | |
| idempotencyKey | No | 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. | |
| videoUploadUrl | No | A YouTube or Loom demo URL. | |
| longDescription | Yes | What the software does, who it helps, and what the Buyer receives. | |
| operatingStatus | Yes | State of the software itself, independent of the listing publication status. | |
| maintenanceLevel | No | Maintenance commitment the Builder offers. | |
| shortDescription | Yes | Buyer-facing summary shown on marketplace cards. | |
| documentationLevel | No | Documentation supplied with the software. | |
| sourceCodeIncluded | No | Whether the sale includes source code. Omission records false. Set true only after the Builder confirms that source code is included. | |
| associatedListingIds | No | IDs of related listings owned by this Builder, obtained from z2h_list_my_listings. | |
| externalDependencies | No | Third-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
| Name | Required | Description |
|---|---|---|
| id | Yes | Listing ID for related-listing references. |
| slug | Yes | Listing identifier used by the other Builder tools. |
| status | Yes | Listing publication state. Only drafts can be edited through MCP. |
| editUrl | Yes | Web wizard URL for editing this listing. |
| warnings | No | 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. |
| createdAt | No | ISO creation timestamp, returned when creating a draft. |
| publishUrl | Yes | Web review step where the Builder finishes publishing. |
| termsAcceptance | No | Present when the Builder needs to accept terms before publishing. |
TDQS
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.
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.
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.
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.
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.
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 listingARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Identifies one of the authenticated Builder's listings. Copy slug from z2h_list_my_listings or z2h_create_draft_listing. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Listing ID for related-listing references. |
| slug | Yes | Listing identifier used by the other Builder tools. |
| type | Yes | Software category. |
| title | Yes | Software name. |
| status | Yes | Listing publication state. Only drafts can be edited through MCP. |
| demoUrl | Yes | Public demo URL, or null. |
| domains | Yes | Industry domain taxonomy keys. |
| editUrl | Yes | Web wizard URL for editing this listing. |
| createdAt | Yes | ISO creation timestamp. |
| imageUrls | Yes | Listing screenshot URLs. |
| techStack | Yes | Frameworks and languages used. |
| updatedAt | Yes | ISO last-update timestamp. |
| createdVia | Yes | Recorded creation channel. |
| publishUrl | Yes | Web review step where the Builder finishes publishing. |
| sourceKind | Yes | Source attachment method, or null before attachment. |
| testEnvUrl | Yes | Legacy stored demo URL, or null. |
| askingPrice | Yes | USD license price, or null when unset. |
| thumbnailUrl | Yes | Marketplace thumbnail URL, or null. |
| sourceRepoUrl | Yes | Source repository URL, or null. |
| longDescription | Yes | Full software description. |
| operatingStatus | Yes | Operating state of the software, independent of listing publication. |
| maintenanceLevel | Yes | Builder maintenance commitment, or null when unset. |
| shortDescription | Yes | Marketplace card summary. |
| documentationLevel | Yes | Documentation supplied, or null when unset. |
| sourceCodeIncluded | Yes | Whether the Builder included source code. |
| testEnvInstructions | Yes | Legacy stored demo instructions, or null. |
| externalDependencies | Yes | Services the Buyer must provision. Legacy records may contain service names as strings. |
TDQS
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.
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.
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.
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.
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.
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 listingsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of owned listings to return per page. Omission uses 25, with newest listings first. | |
| cursor | No | Continue after the last listing in the preceding result. Use that response's nextCursor; omission starts at the newest listing. | |
| setupCode | No | Temporary code from the Zero to Hundred connection check. Omit for ordinary listing reads. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | The authenticated Builder's listings, newest first. |
| nextCursor | Yes | Opaque cursor for the next page, or null at the end. |
TDQS
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.
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.
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.
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.
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.
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 uploadADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Owned listing slug from z2h_list_my_listings or z2h_create_draft_listing. | |
| sizeBytes | Yes | Exact archive size in bytes. Must match the uploaded file. | |
| contentType | Yes | Archive MIME type, used unchanged for PUT and confirmation. | |
| ownershipVersion | Yes | Version of the ownership statement explicitly accepted by the Builder. | |
| ownershipAccepted | Yes | True only after the Builder explicitly accepts the statement in this tool description. |
Output Schema
| Name | Required | Description |
|---|---|---|
| objectKey | Yes | Storage key to pass unchanged to z2h_confirm_source_upload. |
| signedUrl | Yes | Short-lived signed PUT URL. Keep it private and upload the archive before confirmation. |
| contentType | Yes | Content-Type to use for the archive PUT and confirmation. |
TDQS
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.
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.
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.
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.
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.
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 softwareARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Filter by the listing's sale model. Omission leaves the sale model unfiltered. | |
| sort | No | Result order. Defaults to relevance for a search, otherwise newest. | |
| type | No | Categories matching the kind of software the Buyer wants. Omission searches across categories. | |
| limit | No | Number of listings to return in this page. Omission uses 20. | |
| cursor | No | Opaque nextCursor from the previous page. Keep the same filters and sort. | |
| search | No | Keywords describing the software the Buyer needs. | |
| domains | No | 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. | |
| operatingStatus | No | Filter by software readiness or existing commercial operation, rather than listing publication state. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hasMore | Yes | More matches exist. If nextCursor is null, narrow the search instead of paging. |
| results | Yes | Live public software matching the filters. |
| nextCursor | Yes | Cursor for the next page, or null if cursor paging is unavailable or finished. |
| searchMode | Yes | Text uses keyword matching, not semantic similarity. |
TDQS
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.
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.
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.
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.
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.
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 softwareARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slugs | No | Search-result slugs to show. Omit to display the newest live software. | |
| search | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hasMore | Yes | This response contains the complete refreshed selection. |
| results | Yes | Current live software, in selection order when slugs were supplied. |
| nextCursor | Yes | Selection refreshes do not paginate. Use marketplace search for paging. |
| unavailableSlugs | Yes | Requested slugs unavailable publicly. Their private status is never disclosed. |
TDQS
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.
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.
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.
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.
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.
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 draftADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| faqs | No | Supplying FAQs disables the automatic FAQ draft. | |
| mode | No | Non-exclusive license listing mode. Omit to keep it unchanged. | |
| slug | Yes | Listing slug returned by z2h_list_my_listings or z2h_create_draft_listing. | |
| type | No | Software category that best matches its main use. | |
| title | No | Replacement name Buyers will see on the software listing. Omission keeps the current name. | |
| demoUrl | No | Public HTTP or HTTPS demo URL. Null clears it; omission keeps it. | |
| domains | No | 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. | |
| imageUrls | No | HTTP or HTTPS screenshot URLs. The first image becomes the thumbnail. | |
| techStack | No | Frameworks and languages used by the software. | |
| askingPrice | No | Builder-confirmed USD license price. Null clears it; omission keeps it. | |
| thumbnailUrl | No | HTTP or HTTPS thumbnail URL. Null clears it; omission keeps it. | |
| sourceRepoUrl | No | GitHub repository URL. Null clears it; omission keeps it. | |
| videoUploadUrl | No | YouTube or Loom demo URL. Null clears it; omission keeps it. | |
| longDescription | No | What the software does, who it helps, and what the Buyer receives. | |
| operatingStatus | No | Software readiness or commercial operating state, independent of listing publication. Omission keeps the current state. | |
| maintenanceLevel | No | Maintenance commitment the Builder offers. | |
| shortDescription | No | Replacement summary for marketplace cards. Omission keeps the current summary. | |
| documentationLevel | No | Documentation supplied with the software. | |
| sourceCodeIncluded | No | Whether the sale includes source code, as confirmed by the Builder. Omission keeps the current choice. | |
| associatedListingIds | No | IDs of related listings owned by this Builder, obtained from z2h_list_my_listings. | |
| externalDependencies | No | Third-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
| Name | Required | Description |
|---|---|---|
| id | Yes | Listing ID for related-listing references. |
| slug | Yes | Listing identifier used by the other Builder tools. |
| status | Yes | Listing publication state. Only drafts can be edited through MCP. |
| editUrl | Yes | Web wizard URL for editing this listing. |
| warnings | No | 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. |
| createdAt | No | ISO creation timestamp, returned when creating a draft. |
| publishUrl | Yes | Web review step where the Builder finishes publishing. |
| termsAcceptance | No | Present when the Builder needs to accept terms before publishing. |
TDQS
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.
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.
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.
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.
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.
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.
2 tool updates
- Changed
z2h_create_draft_listing1 field changed- added
Output schema / properties / warningsAdded 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" +}
- Changed
z2h_update_draft_listing1 field changed- added
Output schema / properties / warningsAdded 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" +}
6 tool updates
- Changed
z2h_compare_marketplace_listings2 fields changed- removed
Output schema / properties / results / items / properties / licensePrice / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / items / properties / licensePrice / typeAdded value: +[ + "number", + "null" +]
- Changed
z2h_get_listing18 fields changed- removed
Output schema / properties / askingPrice / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / askingPrice / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / demoUrl / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / demoUrl / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / documentationLevel / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / documentationLevel / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / maintenanceLevel / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / maintenanceLevel / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / sourceKind / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / sourceKind / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / sourceRepoUrl / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / sourceRepoUrl / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / testEnvInstructions / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / testEnvInstructions / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / testEnvUrl / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / testEnvUrl / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / thumbnailUrl / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / thumbnailUrl / typeAdded value: +[ + "string", + "null" +]
- Changed
z2h_list_my_listings8 fields changed- removed
Output schema / properties / items / items / properties / askingPrice / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / items / items / properties / askingPrice / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / items / items / properties / demoUrl / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / items / items / properties / demoUrl / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / items / items / properties / thumbnailUrl / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / items / items / properties / thumbnailUrl / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / nextCursor / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / nextCursor / typeAdded value: +[ + "string", + "null" +]
- Changed
z2h_search_marketplace4 fields changed- removed
Output schema / properties / nextCursor / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / nextCursor / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / results / items / properties / licensePrice / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / items / properties / licensePrice / typeAdded value: +[ + "number", + "null" +]
- Changed
z2h_show_marketplace2 fields changed- removed
Output schema / properties / results / items / properties / licensePrice / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / items / properties / licensePrice / typeAdded value: +[ + "number", + "null" +]
- Changed
z2h_update_draft_listing8 fields changed- removed
Input schema / properties / demoUrl / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / demoUrl / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / sourceRepoUrl / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / sourceRepoUrl / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / thumbnailUrl / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / thumbnailUrl / typeAdded value: +[ + "string", + "null" +] - removed
Input schema / properties / videoUploadUrl / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / videoUploadUrl / typeAdded value: +[ + "string", + "null" +]
2 tool updates
- Changed
z2h_create_draft_listing1 field changed- added
Input schema / properties / idempotencyKeyAdded 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" +}
- Changed
z2h_list_my_listings1 field changed- added
Input schema / properties / setupCodeAdded value: +{ + "description": "Temporary code from the Zero to Hundred connection check. Omit for ordinary listing reads.", + "pattern": "^[a-f0-9]{32}$", + "type": "string" +}
7 tool updates
- Changed
z2h_compare_marketplace_listings1 field changed- changed
Input schema / properties / slugs / descriptionPrevious 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."
- Changed
z2h_create_draft_listing6 fields changed- changed
Input schema / properties / domains / descriptionPrevious 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." - changed
Input schema / properties / externalDependencies / items / anyOfPrevious 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" + } +] - changed
Input schema / properties / faqs / items / properties / question / descriptionPrevious value: -"Question a Buyer may ask."New value: +"Buyer question addressed by the paired answer." - changed
Input schema / properties / shortDescription / descriptionPrevious value: -"One-sentence summary for marketplace cards."New value: +"Buyer-facing summary shown on marketplace cards." - changed
Input schema / properties / sourceCodeIncluded / descriptionPrevious 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." - changed
Input schema / properties / title / descriptionPrevious value: -"Software name shown to Buyers."New value: +"Name Buyers will see on the software listing."
- Changed
z2h_get_listing1 field changed- changed
Input schema / properties / slug / descriptionPrevious 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."
- Changed
z2h_list_my_listings2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious 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." - changed
Input schema / properties / limit / descriptionPrevious 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."
- Changed
z2h_search_marketplace6 fields changed- changed
Input schema / properties / domains / descriptionPrevious 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." - changed
Input schema / properties / limit / descriptionPrevious value: -"Listings per page. Defaults to 20."New value: +"Number of listings to return in this page. Omission uses 20." - changed
Input schema / properties / mode / descriptionPrevious 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." - changed
Input schema / properties / operatingStatus / descriptionPrevious 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." - changed
Input schema / properties / search / descriptionPrevious value: -"Buyer need or software keyword. Search is lexical, not semantic."New value: +"Keywords describing the software the Buyer needs." - changed
Input schema / properties / type / descriptionPrevious value: -"Software categories to include. Omit for all categories."New value: +"Categories matching the kind of software the Buyer wants. Omission searches across categories."
- Changed
z2h_show_marketplace1 field changed- changed
Input schema / properties / search / descriptionPrevious 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."
- Changed
z2h_update_draft_listing7 fields changed- changed
Input schema / properties / domains / descriptionPrevious 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." - changed
Input schema / properties / externalDependencies / items / anyOfPrevious 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" + } +] - changed
Input schema / properties / faqs / items / properties / question / descriptionPrevious value: -"Question a Buyer may ask."New value: +"Buyer question addressed by the paired answer." - changed
Input schema / properties / operatingStatus / descriptionPrevious 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." - changed
Input schema / properties / shortDescription / descriptionPrevious value: -"One-sentence summary for marketplace cards."New value: +"Replacement summary for marketplace cards. Omission keeps the current summary." - changed
Input schema / properties / sourceCodeIncluded / descriptionPrevious 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." - changed
Input schema / properties / title / descriptionPrevious value: -"Software name shown to Buyers."New value: +"Replacement name Buyers will see on the software listing. Omission keeps the current name."
9 tool updates
- First observed
z2h_compare_marketplace_listings - First observed
z2h_confirm_source_upload - First observed
z2h_create_draft_listing - First observed
z2h_get_listing - First observed
z2h_list_my_listings - First observed
z2h_request_source_upload - First observed
z2h_search_marketplace - First observed
z2h_show_marketplace - First observed
z2h_update_draft_listing
Related MCP Connectors
Find, compare and get cited software picks. Organic only. Makers can prepare a free listing.
Search and list software for licensing and white-labeling deals; message sellers and buyers.
Search, compare and price software tools. Verified prices with their date, real alternatives.
Search Neeed Directory's software listings, draft one for a maker to claim, and manage your own.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables 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
- AlicenseAqualityCmaintenanceEnables AI assistants to search and retrieve verified software comparisons, including current pricing with source and date, and ranked alternatives for software switching decisions.37 npm1MIT

LaunchOnIt MCP Serverofficial
AlicenseAqualityCmaintenanceEnables 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.61MIT- AlicenseNot gradedqualityBmaintenanceEnables 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 PyPIApache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.