Live US auction lots and sold prices from commercial auction houses and government surplus
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
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.
Part of Pipeworx β an MCP gateway connecting AI agents to 1481+ live data sources.
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. Pass near_zip and results come back ordered by distance with distance_miles on each row.us_auctions_closing_soon(...) β the same pool ordered by soonest close, with hours_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.Keyless to the caller. The gateway injects the pack's data credentials per call; the pack itself is stateless and holds no secret.
gov-auctions β the same store filtered to segment='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.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. allsurplus also
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.group= are DISABLED on this project (PGRST123).
There is no count(). Exact counts come from Prefer: count=exact and the
Content-Range tail; the per-house rollup in us_auction_houses is computed
in the pack over a bounded row pull, not by the database.final_price > 0, never merely not.is.null. The close-out sweep freezes
final_price from 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.closes_on /
starts_on are dates because HiBid publishes sale times with no timezone.
Lot-level closes_at IS a true instant (derived from a countdown), which is
why closing_within_hours keys off lots and us_auction_events off dates.
Don't "fix" this by parsing the local string β that silently shifts evening
West-coast sales onto the next day.or=. Ordering by
closes_at while OR-ing closes_at >= now() with closes_at IS NULL cannot
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.distance_miles is
town-level; the response says so, and it should keep saying so.search_tsv (a
weighted stored column, migration 092) stems and reaches the description; the
trigram ILIKE pass only runs when full-text found nothing, because auction
titles are full of partial model numbers a tsquery cannot match inside a word.Add to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):
tools/list at https://gateway.pipeworx.io/us-auctions/mcp returns the tools in the table
above plus the shared Pipeworx meta-tools β ask_pipeworx,
discover_tools, search_within, remember/recall and the rest of the
gateway-wide set. So the tool count you see is larger than this table: a
single-pack endpoint currently lists roughly 30 shared tools alongside the
pack's own. The connection's initialize response states its exact scope, and
is the authoritative answer for a given day.
This is deliberate, not multiplexing by accident. The meta-tools are what let a
scoped connection answer a question this pack does not cover β via
ask_pipeworx, which routes across the whole catalog β without you adding a
second MCP server. There is currently no way to mount a pack endpoint without
them; if the extra schemas cost you more context than the routing is worth,
connect to the full gateway once rather than to several pack endpoints.
Or connect to the full Pipeworx gateway to get every pack's tools listed directly, instead of just this one's:
Both URLs reach the same gateway and the same 1481+ data sources. The
only difference is which pack's tools are listed directly; ask_pipeworx
reaches all of them from either one.
Instead of calling tools directly, you can ask questions in plain English β this works on the pack endpoint above as well as on the full gateway:
The gateway picks the right tool and fills the arguments automatically.
MIT
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/us-auctions)<a href="https://allmcps.com/mcp/us-auctions"><img src="https://allmcps.com/api/badge/us-auctions?style=directory" alt="US Auctions on AllMCPs" /></a>