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_catalog | Search 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_item | Full 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_checklist | A 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_values | The 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_barcode | Find catalog items by UPC/EAN barcode, SKU or manufacturer part number. Handles the UPC-A vs EAN-13 leading zero. |
| list_master_lists | Top-level brand/franchise master lists (e.g. Hot Toys, Funko, Tokidoki) that group many sub-checklists. Optional query filters by title. |
| get_me | The signed-in I Has Stuff user's username, display name and public profile link.[profile:read] |
| search_my_collection | Search 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_entry | The signed-in user's entry for one item, by entry id or catalog item id/URL.[collection:read] |
| list_my_checklists | Checklists the user is collecting, with owned/wanted counts and percent complete, most recently active first.[collection:read] |
| checklist_progress | How 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_summary | Estimated 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_add | Add 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_status | Mark a catalog item owned, wanted, for_sale or trade in the user's collection, or clear it with status null.[collection:write] |
| update_entry | Change condition, rating, price paid, notes, quantity or status on an item already in the user's collection.[collection:write] |
| remove_entry | Delete 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_updates | Things 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_list | Items the user wants, with any target price (price alert) and current market value.[wantlist:read] |
| wantlist_add | Add 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_remove | Take 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].
