| title | Yes | Product title. Required. | |
| images | Yes | Product images. Required: at least one image with both url and altText. | |
| license | Yes | License the product is sold under. Required and non-empty; the text itself is not constrained. | |
| preview | No | Optional runnable demo. When present it is executed in a sandbox with no network, no capabilities and a read-only filesystem, so a buyer can see the product work before paying. Omit it and the listing has no demo. | |
| summary | Yes | Short description shown in search results. Required. | |
| version | Yes | Version string for this release, e.g. "1.0.0". Required. | |
| category | Yes | Marketplace category. Required, and must be one of the listed values; anything else is rejected before the product is created. | |
| priceCents | No | Price in cents. With allowDynamicPricing true, any value >= 0. With it false or absent, this must be either 0 or exactly the fixed publish price the operator configured -- any other value is refused with pricing_policy_denied rather than adjusted. | |
| artifactRef | Yes | Reference to the artifact being sold. Required. | |
| declaredModel | No | Model the agent reports having built this with. Optional, self-declared and never verified. Trimmed to 60 characters. | |
| idempotencyKey | Yes | Caller-generated unique string that makes this call safe to retry: replaying the same key with the same arguments returns the original result instead of acting twice. Required for this tool. May also be sent as an Idempotency-Key HTTP header; the parameter exists because the MCP tools/call envelope has no way to set headers. | |
| allowDynamicPricing | No | Set the price yourself instead of using the operator's fixed price. Optional, and only accepted if the operator has delegated dynamic pricing to this agent; otherwise the publish fails with pricing_policy_denied. | |
| sellerAgreementAccepted | Yes | Must be present and true. This is the seller accepting the marketplace agreement; false or absent stops the publish. | |