{
  "name": "ochre-editions",
  "title": "Ochre Editions",
  "version": "1.0.0",
  "description": "Ochre Editions sells museum-quality reproductions of public-domain art from five museums, and every image is free to download. Search and quote without signing in. To buy, sign in with OAuth (scopes read, write, purchase); purchases within your human's spending cap complete with a Stripe shared payment token, and anything else returns an approval link for them. Prices are US cents; shipping is US only.",
  "websiteUrl": "https://www.ochreeditions.com/",
  "documentationUrl": "https://www.ochreeditions.com/developers",
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://www.ochreeditions.com/mcp"
    }
  ],
  "protocolVersions": [
    "2026-07-28",
    "2025-11-25"
  ],
  "capabilities": {
    "tools": {}
  },
  "authentication": {
    "type": "oauth2",
    "required": false,
    "protectedResourceMetadata": "https://www.ochreeditions.com/.well-known/oauth-protected-resource/mcp",
    "scopes": [
      "read",
      "write",
      "purchase"
    ],
    "clientRegistration": [
      "client_id_metadata_document",
      "dynamic_client_registration"
    ]
  },
  "tools": [
    {
      "name": "search_artworks",
      "title": "Search artworks",
      "description": "Searches about 2,000 public-domain paintings, prints and drawings from five museums by text and filters. Returns up to 25 works per page (id, slug, title, artist, date, museum, page URL, thumbnail, cheapest print price) and a cursor for the next page. No account needed. Free; anonymous callers get 60 calls a minute.",
      "scope": null
    },
    {
      "name": "get_artwork",
      "title": "Get an artwork",
      "description": "Returns one artwork's full record: title, artist, date, medium, dimensions, museum credit and object number, licence, the museum's label text (quoted) or, where there is none, a note we wrote, palette, the free full-resolution download URL, and the smallest print price. Look it up by id or slug. No account needed. Free.",
      "scope": null
    },
    {
      "name": "get_gallery",
      "title": "Walk a gallery",
      "description": "The galleries: imagined rooms on two floors, hung with real works from the collection. With no arguments, returns the floor plan (wings and rooms, with their work counts). With gallery, returns that room wall by wall: each work's title, artist, date, museum credit, the museum's label (quoted), its three doors onward (its artist, its style, its time and place) and a walk_url that opens the walk at that work. With artwork and facet, follows that work's door into the gallery it leads to. hang (0–9999) picks another hang of the same room, and cursor continues into its next room. No account needed. Free.",
      "scope": null
    },
    {
      "name": "list_collections",
      "title": "List collections",
      "description": "Lists the editors' themed collections (slug, title, introduction, number of works, sample thumbnails). Use a slug with search_artworks' results pages on the site. No account needed. Free.",
      "scope": null
    },
    {
      "name": "get_print_options",
      "title": "Get print options",
      "description": "Returns every format and size this artwork can be printed at, each with its price in US cents and whether the museum's file is sharp enough (150 ppi or better; larger sizes are refused, not upscaled), plus the frame, mount and canvas-edge choices. No account needed. Free.",
      "scope": null
    },
    {
      "name": "quote_order",
      "title": "Quote an order",
      "description": "Prices order lines for a US address: the subtotal, then for each shipping method its cost, delivery estimate in business days (including two days of production), the sales tax from Stripe Tax, and the total, all in US cents. Nothing is reserved. No account needed; anonymous callers get 20 quotes an hour.",
      "scope": null
    },
    {
      "name": "create_cart",
      "title": "Create a cart",
      "description": "Creates a cart on your human's account holding these lines, with an optional promo code. Returns the cart id, the priced lines, an estimate, and a review link that opens the cart on the site for your human. Pass the cart id to checkout. Needs the purchase scope. Free.",
      "scope": "purchase"
    },
    {
      "name": "checkout",
      "title": "Check out",
      "description": "Pays for a cart. With a Stripe shared payment token (spt_…) and a total within the spending cap your human set, the purchase completes and returns the order number. A payment that is still processing returns status processing; the order appears once it clears. With no token, or over the cap, it returns a single-use approval link (24 hours) for your human to review and pay. Shipping methods: Budget, Standard, Express (none for downloads). Needs the purchase scope. Charges the order total in USD.",
      "scope": "purchase"
    },
    {
      "name": "get_order_status",
      "title": "Get order status",
      "description": "Returns one of your human's orders: status, lines, totals in US cents, shipments with tracking, edition numbers for drop prints, and whether it can still be cancelled or returned. Needs the read scope. Free.",
      "scope": "read"
    },
    {
      "name": "request_return",
      "title": "Request a return",
      "description": "Asks for a return on a delivered order within 30 days of delivery, for one line or the whole order. Reasons: damaged, defective, wrong_item, changed_mind. A person reviews it and replies by email. Needs the write scope. Free.",
      "scope": "write"
    },
    {
      "name": "join_drop",
      "title": "Join the limited drop",
      "description": "Joins this week's limited drop queue (100 numbered prints, one per account, address and card) for your human. Admission is first come, first served by join time. Returns the queue position, or, once admitted, a Checkout link your human pays within 10 minutes; the edition counts against your spending cap. Refused before the drop opens. Needs the purchase scope.",
      "scope": "purchase"
    },
    {
      "name": "share",
      "title": "Share a page",
      "description": "Everything needed to post a link to an artwork, collection, drop, artist or gallery: the canonical URL, the 1200 × 630 card image with its alt text, a 1080 × 1920 story image, post text sized for each platform (X, Threads, Bluesky, Mastodon, LinkedIn, Facebook, Reddit, WhatsApp, Telegram, Pinterest, Hacker News, email), a compose link for each, and the fields for a Bluesky external embed. Each link carries ?ref=<platform>. No account needed. Free.",
      "scope": null
    }
  ]
}