@pipeworx/us-auctions
Connect: https://gateway.pipeworx.io/us-auctions/mcp · Install: one-click buttons
Tools: 6
Live US auction lots from both halves of the market — roughly 1,900 commercial auction houses and every reachable government surplus, seized and tax-deed source — searchable by keyword, state or distance from a ZIP, plus the sold prices auction sites delete when a lot closes.
Tools
us_auctions_search(keyword?, state?, asset_type?, segment?, source?, auction_house?, near_zip?, radius_miles?, max_price?, closing_within_hours?, limit?)— the general lot search. Passnear_zipand results come back ordered by distance withdistance_mileson each row.us_auctions_closing_soon(...)— the same pool ordered by soonest close, withhours_remaining. Answers “what can I still bid on”.us_auction_events(state?, keyword?, auction_house?, closes_after?, closes_before?, min_lots?, limit?)— the sales themselves rather than the lots. “What auctions are happening near me next week.”us_auction_houses(state?, keyword?, limit?)— which auctioneers we cover and how much each has live, ranked by lot count. Feed a name back into the two tools above.us_auctions_sold_comps(keyword?, asset_type?, state?, segment?, limit?)— min / median / average / max realized price plus recent examples. The differentiator.us_auctions_coverage()— per-source counts, open sale count, retained comps, per-source last-refresh time.
Auth
Keyless to the caller. Data credentials are injected by the gateway
(injectSupabase: true → _supabaseUrl / _supabaseKey); the pack itself is
stateless and holds no secret.
Relationship to the neighbouring packs
gov-auctions— the same store filtered tosegment='government'. Kept separate because it is published to npm and the MCP Registry under that narrower contract, and a caller asking for surplus pickup trucks must not start getting estate-sale antiques.gsa-auctions— the live GSA federal-surplus API. Not DB-backed, so its lots are not in this store and do not appear here.
Data sources
Ingested by workers/auction-scraper (one adapter per source, cursor-resumed
across cron firings). See that worker for the per-source traps.
hibid— commercial. GraphQL, unauthenticated. ~1,900 US auction houses.govdeals,allsurplus— state/local and business surplus.allsurplusalso covers govliquidation.com and go-dove.com, which are the same catalogue served under different domains — do not build adapters for those.publicsurplus,bid4assets,irs,txauction— the rest of the government half.
Things the next person would otherwise rediscover the hard way
- Aggregate functions and
group=are DISABLED on this project (PGRST123). There is nocount(). Exact counts come fromPrefer: count=exactand theContent-Rangetail; the per-house rollup inus_auction_housesis computed in the pack over a bounded row pull, not by the database. final_price > 0, never merelynot.is.null. The close-out sweep freezesfinal_pricefrom the last known bid, and a commercial lot that drew no bids freezes at zero. Counting those as comps drags every median toward $0 while the response still looks perfectly well-formed.- Event dates are LOCAL CALENDAR DATES, not instants.
closes_on/starts_onare dates because HiBid publishes sale times with no timezone. Lot-levelcloses_atIS a true instant (derived from a countdown), which is whyclosing_within_hourskeys off lots andus_auction_eventsoff dates. Don’t “fix” this by parsing the local string — that silently shifts evening West-coast sales onto the next day. - The unfiltered search is two queries, not one
or=. Ordering bycloses_atwhile OR-ingcloses_at >= now()withcloses_at IS NULLcannot be served from an index, and on the plainest possible call it scanned the whole active pool and blew the 8s statement timeout — alternating between a hard 500 and a silent empty result. The split returns identical rows in identical order. - Coordinates are ZIP centroids. Most sources publish a ZIP and nothing
finer, so a lot’s position is its town’s position.
distance_milesis town-level; the response says so, and it should keep saying so. - Keyword search is full-text first, substring second.
search_tsv(a weighted stored column, migration 092) stems and reaches the description; the trigramILIKEpass only runs when full-text found nothing, because auction titles are full of partial model numbers a tsquery cannot match inside a word.
Tools
- us_auctions_search — Search live US auction lots across every source Pipeworx indexes — commercial auction houses (HiBid: ~1,900 US auctioneers, industrial liquidations, estate and equipment sales) and government surplus/
- us_auctions_closing_soon — US auction lots ordered by soonest close time — the “what can I still bid on before it ends” view across commercial and government sources alike. Optionally filter by state, asset_type, segment, aucti
- us_auction_events — Upcoming US auction EVENTS — the sales themselves rather than individual lots (“Synthetic Fuels Company plant liquidation, 271 lots, Aug 28, Fremont CA”). Use this to answer “what auctions are happeni
- us_auction_houses — Which US auction houses Pipeworx covers, and how much they currently have live — name, home state, number of open sales and total lots across them. Use to find the auctioneers active in a state or in
- us_auctions_sold_comps — Historical SOLD prices for US auction items — the final hammer price of closed lots, which no upstream site keeps but Pipeworx retains across both the commercial and government halves of the market. U
- us_auctions_coverage — Current US auction coverage: per-source active lot counts, open sale counts, retained sold comps, and when each source last refreshed. Use to gauge breadth and freshness before relying on the data.
Tools
-
us_auction_events— Upcoming US auction EVENTS — the sales themselves rather than individual lots ( Synthetic Fuels Company plant liquidation, 271 lots, Aug 28, Fremont CA ). Use this to answer what auctions are happenin -
us_auction_houses— Which US auction houses Pipeworx covers, and how much they currently have live — name, home state, number of open sales and total lots across them. Use to find the auctioneers active in a state or in -
us_auctions_closing_soon— US auction lots ordered by soonest close time — the what can I still bid on before it ends view across commercial and government sources alike. Optionally filter by state, asset_type, segment, auction -
us_auctions_coverage— Current US auction coverage: per-source active lot counts, open sale counts, retained sold comps, and when each source last refreshed. Use to gauge breadth and freshness before relying on the data. -
us_auctions_search— Search live US auction lots across every source Pipeworx indexes — commercial auction houses (HiBid: ~1,900 US auctioneers, industrial liquidations, estate and equipment sales) and government surplus/ -
us_auctions_sold_comps— Historical SOLD prices for US auction items — the final hammer price of closed lots, which no upstream site keeps but Pipeworx retains across both the commercial and government halves of the market. U