add_item
ChatGPTAdd a new item to the library. For best results, use lookup_item first to get the external_id. IMPORTANT: Use anime (not show) for ALL Japanese animation including series, movies, OVAs.
add_to_list
ChatGPTAdd a library item to a list by title. Creates the list if it does not exist. The item must already be in the library (use add_item first if not).
bulk_add_items
ChatGPTAdd up to 250 items to the library in ONE call. Use this whenever the user provides a list of more than 3 items to add — never loop add_item. IMPORTANT: always pass year, and pass external_id whenever you know it. Without them each title is resolved by fuzzy text search, which silently picks the wrong version for any ambiguous title (Roma 1972 vs Roma 2018, remakes, reissues). A wrong match is expensive to undo, so resolve ids up front via lookup_item for anything ambiguous rather than adding bare titles. Returns honest counts: {added, skipped_duplicates, failed} plus a per-item result list. Always report the exact counts to the user; never claim success without reading them. Items are added with the default status; to set a different status on what you just added, call bulk_update_status with those exact titles in titles.
bulk_update_status
ChatGPTUpdate status for multiple items at once.
create_list
ChatGPTCreate a named list. Lists are private, cross-media collections the user curates ("Halloween marathon", "Beach house"). Items from any media type can go on one list.
delete_item
ChatGPTDelete an item from the library.
edit_item
ChatGPTEdit metadata (title, creator, external ID). Use new_external_id to re-link to correct database entry, then call re_enrich to fetch correct metadata.
expand_research_scope
ChatGPTAdd an item to the current research corpus (focused research mode only).
get_by_rating
ChatGPTGet items filtered by user rating range.
get_by_status
ChatGPTGet items filtered by status. Books: unread, reading, finished, abandoned. Movies/shows/anime: unwatched, watching, watched, abandoned. Albums: unheard, listening, played, saved.
get_context
ChatGPTGet user context for adaptive conversation. Returns lifecycle stage and behavioral signals.
get_details
ChatGPTGet FULL details of an item FROM THE USER'S COLLECTION including AI analysis, user notes, rating, timeline, and all metadata. For albums: includes track list with durations. For box sets: lists ALL contained albums. Use this to answer specific questions about items the user owns.
get_list
ChatGPTShow the user's lists. With a name: that list's items in order. Without: all lists with counts.
get_recently_added
ChatGPTList items by when they were ADDED to the library (newest first). Use for "show me the last N things I added", "my last 8 vinyl records", "what did I add recently". This is addition order — different from get_timeline, which orders by reading/watching dates. Returns title, creator, media_type, status, rating, and when each was added.
get_scope_info
ChatGPTGet information about the current research scope.
get_show_progress
ChatGPTRead a TV show's season-by-season watch progress and the next unwatched episode ("up next").
get_signals
ChatGPTGet behavioral signals: theme repetition, consumption gaps, and recent activity.
get_stats
ChatGPTGet collection statistics including progress, rating distribution, genre/theme breakdown, and timeline. If no media_type specified, returns combined stats.
get_taste_portrait
ChatGPTGet the user's full Taste Portrait: their generated archetype, essence, core tension, preoccupations, the recommendation they don't own yet, and their blind spot. A compact version is already in your context; call this to go deeper when they ask about their portrait. Unlocks at 10 items; below that it returns how many more they need.
get_timeline
ChatGPTGet timeline showing items started and finished over time.
get_track_previews
ChatGPTGet playable 30-second audio previews for tracks from an album IN THE USER'S LIBRARY.
get_user_profile
ChatGPTGet the persistent profile built from past conversations. Shows taste patterns, key facts, cross-media connections, and preferences.
log_event
ChatGPTLog a completion or a re-watch/re-read/re-listen with a date. Use when the user mentions finishing something again ("watched Heat again last night", "reread Dune"). The first finish is tracked by status; this records repeats so they show in history and stats.
lookup_item
ChatGPTSearch EXTERNAL databases (NOT the user's collection) to find items BEFORE adding them. Use search/get_details for items the user already owns. Data sources: Books=OpenLibrary, Movies/Shows=TMDB, Albums=Discogs, Anime=AniList. Use anime (not show) for Japanese animation.
mark_tv_watched
ChatGPTMark TV progress. Give season+episode to mark that episode; add through=true to mark everything up to it; give season only to mark the whole season; give neither to mark the whole show. Set watched=false to unmark.
preview_album
ChatGPTPreview any album from Apple Music WITHOUT adding to library. Use this to sample before committing to add. Returns playable 30-second previews.
random_pick
ChatGPTPick random item(s) for serendipitous discovery.
re_enrich
ChatGPTRe-fetch all metadata from external sources. Use when item has wrong data.
read_book_section
ChatGPTRead a specific section of an uploaded book by line numbers.
remove_from_list
ChatGPTRemove an item from a list by title. The item stays in the library.
save_insight
ChatGPTSave a lasting insight about the user to their persistent profile. Use when you discover meaningful patterns, preferences, personal connections to media, or cross-media themes.
search
ChatGPTSearch the USER'S COLLECTION by title, creator, genre, or theme. Returns items they own with status, ratings, and for box sets, the list of contained albums. Use this to answer questions about what the user has.
search_book_content
ChatGPTSemantic search within an uploaded book (EPUB/PDF). Uses AI embeddings to find relevant passages.
search_conversations
ChatGPTSearch past conversations with this user. Supports semantic search - finds conceptually related conversations, not just keyword matches.
search_library
ChatGPTSemantic search across the user's entire library by meaning, theme, or vibe. Searches every book/movie/album/show/anime/podcast/game as one corpus. Use for cross-media or thematic questions like "things about grief" or "noir mood", or any generic/conceptual query where the exact wording may not appear in the item's title/creator/genre text. For specific title/creator lookups, use the keyword search tool instead.
search_youtube
ChatGPTSearch YouTube for relevant videos (interviews, trailers, analysis, music videos).
set_format
ChatGPTSet how a book was read: print, ebook, audiobook, or ereader.
set_priority
ChatGPTSet the priority of an item in the collection. High = want this next, normal = standard backlog, low = speculative or distant.
set_progress
ChatGPTUpdate how far the user is through an in-progress item. Books: current page. Shows: current season + episode. Anime: episodes watched.
show_item
ChatGPTALWAYS use this tool when users say "show me", "open", "go to", "take me to", or "pull up" an item. This navigates them to the item's detail page. Works on ALL clients (web app, iOS app, Claude Desktop) - triggers navigation or returns clickable URL. Do NOT just describe the item when they want to SEE it.
update_notes
ChatGPTAdd or update personal notes for an item.
update_rating
ChatGPTSet or update user rating (1-5 stars).
update_status
ChatGPTUpdate status. Books: unread, reading, finished, abandoned. Movies/shows/anime: unwatched, watching, watched, abandoned. Albums: unheard, listening, played, saved.