putty
MCPCreatorDrops

drop_create

Create a drop for the authenticated caller: a named, fixed-supply edition at an exact USD price, rendered with one of the caller's own brand kits. Free — it costs no credits, takes no signature, moves no money, and mints nothing. The new drop is a `draft`, and a draft's mint page answers 404: publishing it is a separate, irreversible step (`status: "live"`) that this tool and `drop_update` both deliberately do NOT expose, because it is a `publish` approval in putty's model and a direct tool call has no run to ask through. Take the created drop to the person, who publishes it through the real path. Two rules are refused rather than defaulted, and both are the mistakes that are invisible until a collector's money goes somewhere the creator cannot see: a `brandKitId` that is not a kit YOU own (answered the same as one that does not exist, so this is not an id oracle), and a `priceUsd` above zero with no `creatorAddress` — putty never holds a creator's takings and has no address to fall back on. Every problem with the drop is reported at once, as sentences, so a creator fixing one field per round trip is not forced into three. `supply` is fixed at creation and never changes, because every sold edition's buyer was promised a collection of a given size; at most 10,000.

Create a drop for the authenticated caller: a named, fixed-supply edition at an exact USD price, rendered with one of the caller's own brand kits. Free — it costs no credits, takes no signature, moves no money, and mints nothing. The new drop is a draft and is NOT collectable until drop_update sets status: "live". Two rules are refused rather than defaulted, and both are the mistakes that are invisible until a collector's money goes somewhere the creator cannot see: a brandKitId that is not a kit YOU own (answered the same as one that does not exist, so this is not an id oracle), and a priceUsd above zero with no creatorAddress — putty never holds a creator's takings and has no address to fall back on. Every problem with the drop is reported at once, as sentences, so a creator fixing one field per round trip is not forced into three. supply is fixed at creation and never changes, because every sold edition's buyer was promised a collection of a given size; at most 10,000.

Input

The tool takes a single JSON object. Every field, its type, and an example are on the generated reference at GET /mcp/tools, under this tool's name.

Calling it

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": { "name": "drop_create", "arguments": {} }
}

Put your arguments in place of the empty object. A call that fails comes back as a normal result carrying isError: true and a message naming what went wrong, not as a JSON-RPC protocol error.

Notes

The category is Creator, subcategory Drops. The full request and response shape, and a live playground, live on the generated reference at GET /mcp/tools.

drop_get

Read one of the caller's own drops by id: name, symbol, description, the brand kit it renders with, the image, the exact USD price an edition costs, the payout address, whether it is `draft` or `live`, the supply, and the public mint page path. Free, and it reads the caller's records only. A drop owned by another creator is answered with the same not-found as one that does not exist — the store filters by owner inside its query, so there is nothing here to probe with. Read a drop before `drop_update` it, and before telling a user what a drop is: `priceUsd` is an exact decimal string rather than a float, `supply` is `{ total, minted, remaining }`, and a `draft` is not collectable. This tool does not mint, does not publish, and does not charge anything.

drop_update

Patch one of the caller's own drops: its name, ticker, description, image, price, or payout address. Free — it costs no credits, takes no signature, and moves no money. The whole patched drop is re-validated as a unit rather than field by field, because two of the mistakes only appear when the MERGED record is judged: lowering a price to zero on a drop with no payout address turns a paid drop into a free one, and clearing the address on a paid drop leaves a collector's payment going nowhere. Both are refused naming the field. `priceUsd` applies to editions NOT YET MINTED; an edition already sold keeps the price it was sold for. An explicit `null` clears `description`, `creatorAddress`, or `imageUrl`; an absent field leaves it alone. **This tool cannot publish a drop.** Setting `status` is absent on purpose: `live` makes the mint page publicly reachable, which is an irreversible step and therefore an approval in putty's model, and a direct tool call has no run to gate it. `supply` is absent because a drop that has sold editions cannot change how many editions exist.

On this page