Fold Laboratories Art Catalogue
Measured conclusion: Alive, not deep-tested. L2 outcome: not_attempted.
Original art from galleries and artists: semantic search, provenance, live availability.
| Author | com.foldlaboratories |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Alive, not deep-tested |
| L1 liveness | alive |
| L1 latency | 93 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Fold Laboratories Art Catalogue": {
"url": "https://api.foldlaboratories.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (16)
search_artworksread-onlyUse this when someone wants to find original paintings, prints, photographs or sculpture from independent artists by subject, style, colour, size or budget. It returns only works that meet everything asked for, each with what it met; works that meet only part come back separately as near_matches, each saying what it misses. A request can be written in words ("a large blue abstract painting under $2,000") or sent as filters — min_price_usd, max_price_usd, orientation, subject, style, medium, colors, min_height_in, max_height_in, min_width_in, max_width_in, ships_to, framed, ready_to_hang, signed, edition — and a filter wins over the same thing read from the words. applied_filters lists every constraint used and where it came from; check it, and correct a misreading with a filter. A word that names no constraint must appear in a work’s own words to match ("lighthouse"); words of mood ("calm") only order the results. This catalogue CANNOT be filtered by authenticity or provenance strength: Fold verifies sellers, not works (see _verification). Works on sale now are returned; include_sold adds sold works. Attributes are as the seller stated them, and a null means unspecified, never estimated. completeness says whether every work was checked. A wall — wall: {width, height, furniture_width, furniture_height, unit} — keeps only works whose size suits it by Fold’s rules of thumb; find_artworks_for_wall gives the range and why. similar_to {artwork_id | image_url | image_base64} keeps only works that look like it, at or above Fold’s similarity threshold, the closest first.
Parameters:
query(required) — string — What the buyer is looking for, in their words.wall— object — The wall the work will hang on: only works whose size suits it.limit— integer — Maximum matches. Default 10, hard cap 100.style— array — Any of these styles.colors— array — Every one of these among the colours the seller confirmed for the work.framed— boolean — Framed (true) or unframed (false), as the seller stated.medium— array — Any of these media; a family such as painting or print includes its members.signed— boolean — Signed by the artist, as the seller stated.edition— string — unique: one of a kind; edition: one impression of an edition.subject— array — Any of these subjects.ships_to— object — Where the buyer wants it delivered. Fold delivers to the 50 US states and DC.similar_to— object — A work, or a photo, the works must look like.orientation— array — Any of: portrait (taller than wide), landscape (wider than tall), square.include_sold— boolean — Also include works that have already sold. Off by default. Works taken off sale are never returned either way.max_width_in— number — Width at most this, in inches.min_width_in— number — Width at least this, in inches.max_height_in— number — Height at most this, in inches.max_price_usd— number — Highest acceptable price, in US dollars.min_height_in— number — Height at least this, in inches.min_price_usd— number — Lowest acceptable price, in US dollars.ready_to_hang— boolean — Ready to hang, as the seller stated.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_artworkread-onlyUse this when someone wants the full facts about one work before deciding: what it is, its size, how it looks, what delivery costs and when it ships, whether it can be returned, who made it, and what Fold verified about the seller. Full detail for one artwork: attribution, medium, dimensions, edition structure, provenance, seller, and every individual impression that can be bought with its own price and availability. A numbered edition has one entry per impression — including artist proofs (AP), printer proofs (PP), and the bon à tirer (BAT), which are separate objects from the numbered run and usually priced differently. Each entry in `attributes` says who stands behind it (seller_stated, fold_derived or fold_verified), and a null means unspecified rather than estimated. Also returns image URLs to show the buyer. A signed URL is TEMPORARY: honour its `expires_at` and re-fetch rather than caching or redistributing it. An image marked `permanent` is one of the work’s public images, with no expiry: a clean display copy, or, where it also says `preview`, a reduced copy watermarked by Fold. Use this before presenting a work to a buyer, and quote the `impression` label exactly as given.
Parameters:
artwork_id(required) — string — artwork_id from search_artworks.
Hints: read-only yes · destructive no · idempotent yes · open-world no
check_availabilityread-onlyUse this right before offering a buyer a specific work or impression, to confirm it can still be bought. Re-check whether specific impressions are still purchasable, immediately before presenting them to a buyer or attempting a purchase. Each work here is unique or from a small edition, so an impression can sell between search and checkout. ALWAYS call this before offering a specific impression — offering a sold original is worse than offering nothing.
Parameters:
listing_ids(required) — array — listing_id values from get_artwork.
Hints: read-only yes · destructive no · idempotent yes · open-world no
find_artworks_for_wallread-onlyUse this when a buyer says where a work will hang — how wide and high the wall is, and the sofa, bed or sideboard below it if any — and wants to know what size suits it. It answers with the size range that suits the wall by Fold’s rules of thumb (about 60–75% of the width of what it hangs over, hung at eye level or a few inches above the furniture, with a foot of wall clear), the reasoning in plain sentences to relay, and the works on sale in that range, each with what it met. Add the buyer’s words in query, or filters such as max_price_usd, subject or colors, to narrow it. Sizes are the works’ own as their sellers stated them: a frame adds to them. The range is a rule of thumb, not a measurement of the room. Works on sale now only; completeness says whether every work was checked.
Parameters:
wall(required) — object — The wall the work will hang on, and the furniture below it.limit— integer — Maximum matches. Default 10, hard cap 100.query— string — What the buyer wants on the wall, in their words, if they said.style— array — Any of these styles.colors— array — Every one of these among the colours the seller confirmed for the work.framed— boolean — Framed (true) or unframed (false), as the seller stated.medium— array — Any of these media; a family such as painting or print includes its members.signed— boolean — Signed by the artist, as the seller stated.edition— string — unique: one of a kind; edition: one impression of an edition.subject— array — Any of these subjects.ships_to— object — Where the buyer wants it delivered. Fold delivers to the 50 US states and DC.orientation— array — Any of: portrait (taller than wide), landscape (wider than tall), square.max_width_in— number — Width at most this, in inches.min_width_in— number — Width at least this, in inches.max_height_in— number — Height at most this, in inches.max_price_usd— number — Highest acceptable price, in US dollars.min_height_in— number — Height at least this, in inches.min_price_usd— number — Lowest acceptable price, in US dollars.ready_to_hang— boolean — Ready to hang, as the seller stated.
Hints: read-only yes · destructive no · idempotent yes · open-world no
find_similar_artworksread-onlyUse this when a buyer wants more works that look like one they have seen — a work on Fold, or a photo they have. It answers with the works on sale whose images look like it, each with its similarity from 0 to 1, and only those at or above Fold’s threshold, the closest look first. Send artwork_id, or a photo as image_url (an https address) or image_base64 (a JPEG, PNG or WebP, at most 700 KB). Add the buyer’s words in query, or filters such as max_price_usd, to narrow it; works that look alike but miss a filter come back separately as near_matches. Similarity is how alike the photographs look to an image model, measured on the works’ public images — not a judgement of style or quality, and no claim that the same artist made them. A photo is used for this search only and kept nowhere. completeness says whether every work on sale was compared.
Parameters:
limit— integer — Maximum matches. Default 10, hard cap 100.query— string — What else the buyer wants, in their words, if they said.style— array — Any of these styles.colors— array — Every one of these among the colours the seller confirmed for the work.framed— boolean — Framed (true) or unframed (false), as the seller stated.medium— array — Any of these media; a family such as painting or print includes its members.signed— boolean — Signed by the artist, as the seller stated.edition— string — unique: one of a kind; edition: one impression of an edition.subject— array — Any of these subjects.ships_to— object — Where the buyer wants it delivered. Fold delivers to the 50 US states and DC.image_url— string — A photo to find works like: its https address. Fetched once, used for this search only, and kept nowhere.artwork_id— string — A work on Fold to find works like: an artwork_id from search_artworks.orientation— array — Any of: portrait (taller than wide), landscape (wider than tall), square.image_base64— string — A photo to find works like, inline: a JPEG, PNG or WebP as base64 or a data: URL, at most 700 KB. Used for this search only, and kept nowhere.include_sold— boolean — Also compare works that have sold.max_width_in— number — Width at most this, in inches.min_width_in— number — Width at least this, in inches.max_height_in— number — Height at most this, in inches.max_price_usd— number — Highest acceptable price, in US dollars.min_height_in— number — Height at least this, in inches.min_price_usd— number — Lowest acceptable price, in US dollars.ready_to_hang— boolean — Ready to hang, as the seller stated.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
save_search_alertUse this when a buyer wants to hear about works listed later that match what they are looking for. It saves the search — the buyer’s words in query and the same filters as search_artworks — and tells the buyer by e-mail, or your own system by webhook, when a work that matches it is listed: only works that meet everything asked, never near matches, at most one alert a day, for 180 days. An e-mail alert starts only when the buyer confirms it from the one e-mail Fold sends to ask; ask the buyer before giving Fold their address. Every alert e-mail has one-click unsubscribe. A webhook alert starts once webhook_url answers a signed verification event by echoing its challenge. Works flagged as mature content are left out unless include_mature is true, which only the buyer’s own request should set. Answers with search_alert_id and manage_token, shown once: get_search_alert reads the alert and cancel_search_alert ends it.
Parameters:
wall— object — Only works whose size suits this wall, as find_artworks_for_wall reads it.email— string — The buyer’s e-mail address, which they gave for this alert. Fold sends it one e-mail to confirm, and nothing else until they do.query— string — What the buyer is looking for, in their words, as for search_artworks.style— array — Any of these styles.colors— array — Every one of these among the colours the seller confirmed for the work.framed— boolean — Framed (true) or unframed (false), as the seller stated.medium— array — Any of these media; a family such as painting or print includes its members.signed— boolean — Signed by the artist, as the seller stated.edition— string — unique: one of a kind; edition: one impression of an edition.subject— array — Any of these subjects.ships_to— object — Where the buyer wants it delivered. Fold delivers to the 50 US states and DC.orientation— array — Any of: portrait (taller than wide), landscape (wider than tall), square.webhook_url— string — Your https endpoint for search_alert.new_works events, signed as Standard Webhooks specifies. It must echo the verification event’s data.challenge.max_width_in— number — Width at most this, in inches.min_width_in— number — Width at least this, in inches.max_height_in— number — Height at most this, in inches.max_price_usd— number — Highest acceptable price, in US dollars.min_height_in— number — Height at least this, in inches.min_price_usd— number — Lowest acceptable price, in US dollars.ready_to_hang— boolean — Ready to hang, as the seller stated.include_mature— boolean — Also announce works their sellers flagged as mature content. Only when the buyer asked.
Hints: read-only no · destructive no · idempotent no · open-world yes
get_search_alertread-onlyUse this when a buyer asks about an alert for new works they saved: whether it is waiting for them to confirm it, active or ended, what it watches, when it last sent works and when it ends. Needs the search_alert_id and manage_token save_search_alert gave.
Parameters:
search_alert_id(required) — string — The search_alert_id save_search_alert gave.manage_token(required) — string — The manage_token save_search_alert gave.
Hints: read-only yes · destructive no · idempotent yes · open-world no
cancel_search_alertdestructiveUse this when a buyer wants to stop an alert for new works. Nothing more is sent, and the saved words, filters and address are erased. Needs the search_alert_id and manage_token save_search_alert gave; a buyer can also stop it from any alert e-mail in one click.
Parameters:
search_alert_id(required) — string — The search_alert_id save_search_alert gave.manage_token(required) — string — The manage_token save_search_alert gave.
Hints: read-only no · destructive yes · idempotent yes · open-world no
get_delivered_quoteread-onlyUse this when a buyer asks what a work will cost delivered to them and when it would arrive. Given one listing_id and a US destination (a five-digit ZIP code, and the state if known), it answers with the price, the seller’s delivery charge, an ESTIMATE of sales tax from Fold’s tax engine for that ZIP code, the total, the date the seller says it ships by and the arrival window their transit estimate gives, the returns that apply, the policy links and how to check out. Read-only: nothing is opened or reserved. Checkout calculates the exact tax from the full address before the buyer pays. Fold delivers only to the 50 US states and DC.
Parameters:
listing_id(required) — string — A listing_id from get_artwork.destination(required) — object
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_order_statusread-onlyUse this when a buyer asks where their order is or what they can still claim. With the token from the order page’s address, or the order reference from the confirmation e-mail and the e-mail address the buyer gave at checkout, it answers with the order’s status, the tracking the seller recorded, and each return or claim window with when it closes. An order is shown only to whoever proves they placed it; an unknown order and a wrong proof get the same answer.
Parameters:
buyer_email— string — The e-mail address the buyer gave at checkout. Send with order_reference.order_token— string — The token in the order page’s address, from the confirmation e-mail: /order/<token>.order_reference— string — The order reference printed in the confirmation e-mail. Send with buyer_email.
Hints: read-only yes · destructive no · idempotent yes · open-world no
open_claimUse this when a buyer wants to return a work or report a problem with an order: damage or a difference from the description on arrival, non-delivery, a doubt about authenticity or title, an agent purchase they did not authorise, cancelling before dispatch, or a 30-day return. It checks the ground against the Returns policy’s window for this order, records the request for a person at Fold, and answers with a link for sending photographs. It refunds nothing: a person at Fold decides every request and replies by e-mail. Needs the same proof as get_order_status.
Parameters:
ground(required) — string — The ground, as Returns §2 names it.buyer_email— string — The e-mail address the buyer gave at checkout. Send with order_reference.description— string — What went wrong, in the buyer’s words.order_token— string — The token in the order page’s address, from the confirmation e-mail: /order/<token>.order_reference— string — The order reference printed in the confirmation e-mail. Send with buyer_email.
Hints: read-only no · destructive no · idempotent yes · open-world no
start_purchaseUse this when the buyer has chosen one work and wants to buy it. Begin buying ONE impression. An impression is a single physical object — a unique painting, or one numbered print of an edition — so exactly one listing_id is accepted; to buy several works, start a separate purchase for each, because each is sold by its own seller and is a separate payment to Fold. Call check_availability first. Nothing is reserved by this call and the work can still sell to someone else until you call confirm_purchase. The price and delivery terms are the seller’s and are looked up here; anything you send is ignored. The returned total does NOT include tax until you call set_delivery. The purchase belongs to the credential that starts it, on this endpoint: no other credential can read, change, cancel or complete it, and is told it does not exist. Without an agent credential, this answers with a checkout_url instead: a page for this one work on which the buyer pays — hand it to the buyer or open it in your browser; the other purchase tools are for credentialed agents. If the work has sold, or another buyer is paying for it, the refusal carries out_of_stock: what the work is now, and up to three similar works on sale here to offer the buyer instead.
Parameters:
listing_id(required) — string — A single listing_id from get_artwork or check_availability.buyer_name— stringbuyer_email— string — Optional. The buyer’s order confirmation is sent here.
Hints: read-only no · destructive no · idempotent no · open-world no
get_purchaseread-onlyUse this to see where a purchase the buyer started stands. Read the current state of a purchase you started. Totals and availability reflect this moment, not when it was started — a work can sell to another buyer while yours is deciding.
Parameters:
checkout_id(required) — string
Hints: read-only yes · destructive no · idempotent yes · open-world no
set_deliveryUse this when the buyer gives the address the work should go to: it prices delivery and sales tax into the total. Supply the delivery address, which is what makes a total payable. Fold delivers only to the 50 states and DC. Sales tax depends on where the work is going and is recalculated on every call, so the total can change here. The work itself cannot be changed; start a new purchase instead. Until this succeeds, total_is_payable is false and the total must not be quoted as final. The response carries a new approval_reference: present THIS response to the buyer, and pass its approval_reference to confirm_purchase.
Parameters:
checkout_id(required) — stringline1(required) — stringcity(required) — stringregion(required) — string — One of the 50 states or DC, as its two-letter USPS code, e.g. CO (its name, e.g. Colorado, is read too). Stored as the code. Territories and military addresses are refused.postal_code(required) — stringcountry(required) — string — US: Fold delivers only within the United States. ISO 3166-1 alpha-2.line2— stringbuyer_name— stringbuyer_email— string
Hints: read-only no · destructive no · idempotent yes · open-world no
confirm_purchasedestructiveUse this only once the buyer has seen the full total and said yes: it pays for the work. Only for agents whose operator has a payment agreement with Fold. Charge for the work. Calling this ASSERTS that the buyer has seen the full total — work, delivery and tax — and approved it; that approval is recorded as the consent record for this sale, so do not call it speculatively or to "check" anything. Pass the approval_reference of the response the buyer was shown: it fingerprints the work, price, delivery, address, tax and total, and if any of them changed since, this is REFUSED before anything is reserved or charged — read the purchase again, re-present it, and confirm with the new reference. The work is reserved at this moment and not before. If the seller changed the price after the buyer approved, this DECLINES rather than silently charging the new figure — re-present the purchase and ask again. Retrying with the same idempotency_key replays the original result, a sale or a decline, and cannot charge twice; a new attempt after a decline, usually with another payment method, needs a new key, and a different key on the same purchase can charge. If the work has sold, or another buyer is paying for it, the refusal carries out_of_stock: what the work is now, and up to three similar works on sale here to offer the buyer instead.
Parameters:
checkout_id(required) — stringapproval_reference(required) — string — The approval_reference from the LAST purchase response the buyer was shown, usually set_delivery’s. Required: it is what binds the buyer’s approval to the exact work, price, delivery, address, tax and total presented. A reference from an older response is refused before anything is reserved or charged.payment_token(required) — string — A scoped payment credential: a Stripe shared payment token issued to Fold’s own Stripe network business profile — the payment.network_business_profile_id on every purchase response — never to the seller’s. Never a card number.idempotency_key(required) — string — UUID. The same key replays; a new one is a new attempt.
Hints: read-only no · destructive yes · idempotent yes · open-world yes
cancel_purchasedestructiveUse this when the buyer decides not to buy. Abandon a purchase and release any hold on the work, so another collector can buy it. A purchase already being paid for cannot be cancelled: it will complete, or be resolved by a person at Fold, so read it again later; a completed one cannot be cancelled either, and needs a refund instead.
Parameters:
checkout_id(required) — string
Hints: read-only no · destructive yes · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.