{"ok":true,"site":{"host":"shelfscan.io","url":"https://www.shelfscan.io/workflows","type":"live","desc":"Board game collection manager, play logger, and UPC scanner","tools":[{"name":"load_bgg_collection","kind":"act","impl":"imperative","description":"Fetch a fresh (non-cached) copy of a BoardGameGeek user's collection, games and expansions, and make it the active ShelfScan user and collection. Transient BGG errors are retried for up to a minute. Returns a summary of item counts by status.","title":"Load a BGG collection","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"username":{"type":"string","minLength":1,"description":"BoardGameGeek username whose collection to load"}},"required":["username"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/workflows","pages":["/workflows","/","/subscribe","/extension"]},{"name":"gameupc_data_from_upc","kind":"act","impl":"imperative","description":"Get GameUPC data given a UPC","title":"Get GameUPC data from UPC","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"upc":{"anyOf":[{"type":"string","pattern":"^\\d{12}$","description":"UPC-A: 12 digits including the check digit, e.g. 036000291452"},{"type":"string","pattern":"^[01]\\d{7}$","description":"UPC-E: 8 digits (number system 0 or 1, 6 data digits, check digit), e.g. 04252614"}],"description":"Board game UPC barcode in UPC-A or UPC-E format"},"search":{"description":"Game title to search for when the UPC has no verified match, e.g. \"Wingspan\"","type":"string","minLength":1}},"required":["upc"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/workflows","pages":["/workflows","/","/subscribe","/extension"]},{"name":"gameupc_submit_game","kind":"transact","impl":"imperative","description":"Submit a new game/UPC mapping or verify an existing one","title":"Submit/verify a game/UPC mapping","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"upc":{"anyOf":[{"type":"string","pattern":"^\\d{12}$","description":"UPC-A: 12 digits including the check digit, e.g. 036000291452"},{"type":"string","pattern":"^[01]\\d{7}$","description":"UPC-E: 8 digits (number system 0 or 1, 6 data digits, check digit), e.g. 04252614"}],"description":"Board game UPC barcode in UPC-A or UPC-E format"},"bggId":{"type":"number","description":"BoardGameGeek game object id"},"versionId":{"description":"BoardGameGeek game version id","type":"number"},"updater":{"default":"ShelfScan MCP","description":"GameUPC updater","type":"string","minLength":8}},"required":["upc","bggId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/workflows","pages":["/workflows","/","/subscribe","/extension"]},{"name":"gameupc_remove_game","kind":"act","impl":"imperative","description":"Remove a game/UPC mapping provided by a specific user","title":"Remove a game/UPC mapping","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"upc":{"anyOf":[{"type":"string","pattern":"^\\d{12}$","description":"UPC-A: 12 digits including the check digit, e.g. 036000291452"},{"type":"string","pattern":"^[01]\\d{7}$","description":"UPC-E: 8 digits (number system 0 or 1, 6 data digits, check digit), e.g. 04252614"}],"description":"Board game UPC barcode in UPC-A or UPC-E format"},"bggId":{"type":"number","description":"BoardGameGeek game object id"},"versionId":{"description":"BoardGameGeek game version id","type":"number"},"updater":{"default":"ShelfScan MCP","description":"GameUPC updater","type":"string","minLength":8}},"required":["upc","bggId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/workflows","pages":["/workflows","/","/subscribe","/extension"]},{"name":"add_to_bgg_collection","kind":"act","impl":"imperative","description":"Add a game to the logged in user's BGG collection. The browser must have the ShelfScan extension installed and have a subscription in order to use this tool.","title":"Add game to BGG collection","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/workflows","pages":["/workflows","/","/subscribe","/extension"]},{"name":"add_to_bgg_collection_for_trade","kind":"act","impl":"imperative","description":"Mark a game as for trade in the logged in user's BGG collection, with its trade condition. Updates the existing collection item when a collectionId is given, otherwise adds a new item marked for trade. The browser must have the ShelfScan extension installed and have a subscription in order to use this tool.","title":"Add game to BGG collection for trade","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/workflows","pages":["/workflows","/","/subscribe","/extension"]},{"name":"add_to_bgg_wishlist","kind":"act","impl":"imperative","description":"Add a game to the logged in user's BGG wishlist with a wishlist priority. Updates the existing collection item when a collectionId is given, otherwise adds a new item on the wishlist. The browser must have the ShelfScan extension installed and have a subscription in order to use this tool.","title":"Add game to BGG wishlist","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/workflows","pages":["/workflows","/","/subscribe","/extension"]},{"name":"set_bgg_previously_owned","kind":"act","impl":"imperative","description":"Mark a game as previously owned in the logged in user's BGG collection, which also turns off \"own\". Updates the existing collection item when a collectionId is given, otherwise adds a new item as previously owned. The browser must have the ShelfScan extension installed and have a subscription in order to use this tool.","title":"Set BGG collection item as previously owned","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/workflows","pages":["/workflows","/","/subscribe","/extension"]},{"name":"clear_bgg_collection_statuses","kind":"act","impl":"imperative","description":"Turn off every status (own, previously owned, for trade, want, wishlist, preordered, ...) on an existing item in the logged in user's BGG collection. The item itself stays in the collection. The browser must have the ShelfScan extension installed and have a subscription in order to use this tool.","title":"Clear BGG collection item statuses","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/workflows","pages":["/workflows","/","/subscribe","/extension"]},{"name":"remove_bgg_collection_item","kind":"transact","impl":"imperative","description":"IRREVERSIBLE: permanently deletes an item from the logged in user's BGG collection, including its statuses, rating, comments, trade condition, wishlist details and private info. This cannot be undone. Only use it when the user has explicitly asked to delete this specific item. To stop owning a game use set_bgg_previously_owned, and to drop its statuses but keep the item use clear_bgg_collection_statuses. The item must be in the loaded collection (load_bgg_collection) and match bggId, otherwise nothing is deleted. The browser must have the ShelfScan extension installed and have a subscription in order to use this tool.","title":"Permanently delete BGG collection item (cannot be undone)","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/workflows","pages":["/workflows","/","/subscribe","/extension"]},{"name":"bgg_collection_item_info","kind":"answer","impl":"imperative","description":"Read or update the private info of an item in the logged in user's BGG collection (private comment, statuses, trade condition, price paid, current value, acquisition and inventory details). With read: true it returns the current info and saves nothing. Otherwise the info fields sent are saved and fields left out keep their current value; add preload: true to also get the values from before the update. The browser must have the ShelfScan extension installed and have a subscription in order to use this tool.","title":"Read or update BGG collection item private info","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/workflows","pages":["/workflows","/","/subscribe","/extension"]},{"name":"set_bgg_collection_tags","kind":"act","impl":"imperative","description":"Add, remove or replace the hashtags on an item in the logged in user's BGG collection. Tags are kept as hashtags in one of the item's text fields (the tag location); other text there is kept. The browser must have the ShelfScan extension installed and have a subscription in order to use this tool.","title":"Set BGG collection item tags","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/workflows","pages":["/workflows","/","/subscribe","/extension"]},{"name":"log_bgg_play","kind":"act","impl":"imperative","description":"Log a play of a game for the logged in BGG user, optionally with date, location, duration, quantity, comments and players. The browser must have the ShelfScan extension installed and have a subscription in order to use this tool.","title":"Log a play on BGG","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/workflows","pages":["/workflows","/","/subscribe","/extension"]},{"name":"list_scanned_upcs","kind":"answer","impl":"imperative","description":"List the board game UPC barcodes currently in the ShelfScan scan list, in scan order.","title":"List scanned UPCs","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/workflows","pages":["/workflows","/","/subscribe","/extension"]},{"name":"scan_upc","kind":"answer","impl":"imperative","description":"Get UPCs from an image","title":"Get UPC from data uri or image blob","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"image":{"anyOf":[{"type":"string","pattern":"^data:image\\/[\\w.+-]+;base64,","description":"Base64 image data URI, e.g. data:image/png;base64,…"},{"description":"Image Blob (image/* MIME type)"}],"description":"Image containing one or more UPC barcodes"}},"required":["image"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/workflows","pages":["/workflows","/","/subscribe","/extension"]}],"favicon":"/favicons/shelfscan.io.png","apiSurface":"spec","category":"Media & Personal","toolCount":15}}