Skip to content

Connect I Has Stuff to your AI assistant

A Model Context Protocol (MCP) server for the I Has Stuff collectibles catalog. Works with Meta Muse, Claude, ChatGPT and any MCP client.

Endpoints

Public catalog
https://ihasstuff.com/api/mcp — no sign-in, read-only
Your account
https://ihasstuff.com/api/mcp/account — OAuth 2.1 with PKCE (S256); discovery at /.well-known/oauth-protected-resource/api/mcp/account. Client ID Metadata Documents and dynamic registration are supported. Revoke any time in Settings → Connected apps.
REST
The same operations at https://ihasstuff.com/api/v1 — OpenAPI 3.1 spec. Catalog routes are public; account routes take the same OAuth tokens.
Updates
No webhooks: poll get_updates / GET /api/v1/events?since= for want-list matches, price alerts, completed checklists and photo results. Responses say when to poll next.
Transport
Streamable HTTP, stateless, JSON responses
Limits
Fair-use rate limits apply; busy responses say when to retry. Search returns at most 25 results.

Tools

search_catalogSearch I Has Stuff's public collectibles catalog (sixth-scale figures, designer vinyl, blind boxes, trading cards and more) by name, brand, series, character, SKU or UPC. All words must match; prefix a word with - to exclude it. Returns up to 25 items with ihasstuff.com links. Use this first, then get_item for details and value.
get_itemFull details for one catalog item: brand, line, year, UPC/SKU, description, photos, where it sits in the catalog, and a USD price summary (retail plus market average/low/high from recent eBay sold listings, with the date measured). Accepts an item id or an ihasstuff.com item URL.
get_checklistA public checklist (a series, wave, line or brand master list) with its public sub-checklists and a paginated list of items. Accepts a checklist id, slug or ihasstuff.com checklist URL. Pass nextOffset back as offset to get the next page.
get_checklist_valuesThe most valuable items in a checklist and all of its public sub-checklists, ordered by recent market high, then average, then retail price. Good for 'what are the most valuable X?' questions.
lookup_barcodeFind catalog items by UPC/EAN barcode, SKU or manufacturer part number. Handles the UPC-A vs EAN-13 leading zero.
list_master_listsTop-level brand/franchise master lists (e.g. Hot Toys, Funko, Tokidoki) that group many sub-checklists. Optional query filters by title.
get_meThe signed-in I Has Stuff user's username, display name and public profile link.[profile:read]
search_my_collectionSearch the signed-in user's own collection (answers 'do I own X?'). Filter by status (owned, wanted, for_sale, trade) or checklist. Each entry has condition, rating, price paid, notes, estimated value (with its source) and a link.[collection:read]
get_entryThe signed-in user's entry for one item, by entry id or catalog item id/URL.[collection:read]
list_my_checklistsChecklists the user is collecting, with owned/wanted counts and percent complete, most recently active first.[collection:read]
checklist_progressHow close the user is to completing a checklist (including its public sub-checklists): owned vs total, percent, and the missing items cheapest first by market value, then retail.[collection:read]
valuation_summaryEstimated USD value of everything the user owns: total, cost basis and gain, how many items were priced by market data vs retail, top checklists and top items. Useful for insurance summaries.[collection:read]
quick_addAdd an item to the user's collection (default status owned) with optional condition, rating, price paid, notes and quantity. Pass `item` (id/URL) when known; otherwise `name` is matched against the catalog. If several items match, the result lists candidates — ask the user which one and call again with `item`. Only set create_personal when the user confirms it isn't in the catalog.[collection:write]
set_item_statusMark a catalog item owned, wanted, for_sale or trade in the user's collection, or clear it with status null.[collection:write]
update_entryChange condition, rating, price paid, notes, quantity or status on an item already in the user's collection.[collection:write]
remove_entryDelete an item from the user's collection. If it has notes, photos, a price paid or a rating, the first call returns needs_confirmation; confirm with the user, then call again with confirm: true. To just change status use update_entry.[collection:write]
get_updatesThings that happened for the user since the last check: a wanted item listed for sale (wantlist.matched), a price alert triggered (price.alert), a checklist completed (checklist.completed), a photo added or failed. Pass the previous nextSince as `since`; wait nextPollAfterSec before polling again.[collection:read]
wantlist_listItems the user wants, with any target price (price alert) and current market value.[wantlist:read]
wantlist_addAdd a catalog item to the user's want list, optionally with a target price; I Has Stuff notifies them when the market drops below it.[wantlist:write]
wantlist_removeTake an item off the user's want list and cancel its price alert.[wantlist:write]

Tools marked with a scope are on the account endpoint and need that permission.

Things to ask

  • Do I own Unicorno Series 11 Stellina?
  • Just bought a sealed Tokidoki Unicorno for $20 — add it to my collection.
  • How close am I to finishing Pokémon 151? What's cheapest to get next?
  • What's my collection worth?
  • What's the Hot Toys Iron Man Mark III worth right now?
  • Show me the 10 most valuable figures in the Star Wars Black Series.
  • What is this barcode: 4895228608752?
  • Which Tokidoki Unicorno Series 12 figures are there?

Data and privacy

The public endpoint only returns items from public checklists — the same data anyone can see on the site. The account endpoint only acts on your own collection, within the permissions you approve. Prices are USD; market values come from recent eBay sold listings and include the date they were measured. See the privacy policy and terms. Questions: [email protected].