create_profile
ChatGPTCreate a new AI context profile for the user. Use this when the user wants to save a profile — a portable description of who they are, how they work, their expertise and communication preferences. Write a rich, structured markdown document as textContent. Text-based profiles are immediately ready for use with no optimization queue. The slug must be unique per user (lowercase letters, numbers, hyphens, underscores only) — if the call returns a conflict error, choose a different slug.
delete_library_item
ChatGPTDelete a library item by its ID
get_last_stash
ChatGPTGet the most recently stashed item from your library
get_library_item
ChatGPTGet a specific library item by its ID. Includes derivedStatus (whether its AI summary, tags and semantic search index are current, stale, processing, failed, skipped, off, or unknown; off means the owner's processing level kept it from AI enrichment) and derived receipts recording which model, quality preset and prompt version produced them, from which content.
get_media_item
ChatGPTGet a specific media item by ID (returns base64 content — this works regardless of the item's public-sharing state). A contentUrl is also included, but only if the item has been made public (isPublic: true); use update_library_item to set that first if you need a shareable link.
get_profile
ChatGPTGet your profile information. If the user's query matches their recent topics, call search_library with those tags to retrieve relevant prior work.
get_relevant_context
ChatGPTGet synthesized context from the user's knowledge library on a specific topic. Returns TLDRs, strategic insights, and key themes from matching items — not raw content. Call this before answering questions where the user's prior research, decisions, or strategic thinking would improve your response.
get_space
ChatGPTGet space details including member profiles and synthesized library context. Call this first before any space-scoped work — it tells you who is in the space, what expertise members bring via their profiles, and what the space is collecting. All context is pre-computed and served from cache. After this, use search_library with the spaceId to find specific items.
get_space_items
ChatGPTList all items shared in a space. Returns metadata only (title, type, size, who added it) — no content bodies. Use search_library with a spaceId to find specific items by content. Call get_space first for member context and the AI-generated library summary.
get_space_vocabulary
ChatGPTGet the established topic vocabulary for a space — frequency-ranked keywords derived from enriched space library items. Call this before stashing content to a space to use tags that align with what the space already contains.
get_taxonomy
ChatGPTGet your personal tag taxonomy — IAB-anchored categories with subcategories and synonym rules. Call this before stashing content to pick tags and categories that align with your existing vocabulary, reducing the need for later harmonization.
list_library_items
ChatGPTBrowse library items filtered by a known tag or category. Use this when you already know the tag or category name. For topic-based discovery when you don't know the exact tag, prefer search_library instead — it uses semantic + keyword hybrid search.
list_library_tags
ChatGPTList all tags in the user's knowledge library with item counts. Call this first when you want to understand what topics the user has saved content about, before searching or filtering. Returns tags sorted by frequency.
list_media_items
ChatGPTGet all media items from your library. Each item includes a contentUrl only if it has been made public (isPublic: true) — use update_library_item to set that first if you need a shareable link. Otherwise use get_media_item to fetch the content directly.
list_spaces
ChatGPTList all spaces the user owns or is a member of. Call this when the user wants to work in a shared space or collaborate with others.
resume_work
ChatGPTResume work saved earlier with save_handoff — including work started in a different AI tool. Call this at the start of a session when the user wants to continue earlier work ("pick up where we left off", "continue the migration task", "what was I working on?"). With no arguments it lists the most recent handoffs. Pass topic to search handoffs about a subject. Pass id to retrieve one full handoff (goal, decisions, open questions, artifacts, next steps); id takes precedence over topic. After retrieving one, restate the goal and next steps to the user, then continue the work — and call save_handoff again before the session ends to record new progress.
save_handoff
ChatGPTSave a structured handoff so any other AI agent — or a future session in this one — can pick up this work exactly where it stopped. Call this before ending any session involving meaningful multi-step work, or when the user says things like "save my progress", "hand this off", or "I'll continue this later in ChatGPT/Claude". The reader is another agent with NO access to this conversation — anything not captured here is lost, so be thorough rather than terse: complete sentences, not fragments; include the why behind each decision, not just the what. A good handoff has 2-6 decisions, 3-8 next steps, and names every file or document touched. Send only structured fields — the server renders the canonical markdown. The handoff is retrieved later via resume_work from any connected agent.
search_library
ChatGPTSearch the user's personal knowledge library for relevant prior research, decisions, or context. Call this proactively when the user asks about any topic they may have researched before, or when prior decisions, recommendations, or domain context would improve your response. Uses semantic + keyword hybrid search across titles, content, tags, notes, and categories. If the user is working in a space, pass spaceId to scope results to that space — membership is verified server-side.
share_to_space
ChatGPTShare a personal library item to a space so all space members can access it. This is permanent: the item cannot be unshared or moved to another space, and any public link on it is turned off. Confirm with the user before calling. Before sharing, call get_space_vocabulary to tag the item with vocabulary consistent with the space's existing content. The item owner can still delete the item entirely.
stash_content
ChatGPTSave new content to your library. Before choosing tags or a category, call get_taxonomy() to use established vocabulary from your existing library — this avoids creating synonyms that need later harmonization.
stash_media
ChatGPTSave media files (images, PDFs, documents) to your library. ALWAYS use url parameter when possible - base64 mode often fails. Only use base64 as last resort when no URL is available.
update_library_item
ChatGPTUpdate a library item's metadata or content. Only provide fields you want to change. If content is updated, the item will be re-enriched (TLDR, insights, tags).
update_profile
ChatGPTUpdate a profile's name, slug, or freeform content. Get profile ids from get_profile. Slug must remain unique — if the call returns a conflict error, choose a different slug. Only text-based (freeform) profiles can have their content updated via MCP; provide only the fields you want to change.
create_profile
Claudedelete_library_item
Claudeget_last_stash
Claudeget_library_item
Claudeget_media_item
Claudeget_profile
Claudeget_relevant_context
Claudeget_space
Claudeget_space_items
Claudeget_space_vocabulary
Claudeget_taxonomy
Claudelist_library_items
Claudelist_library_tags
Claudelist_media_items
Claudelist_spaces
Claudesearch_library
Claudeshare_to_space
Claudestash_content
Claudestash_media
Claudeupdate_library_item
Claudeupdate_profile
Claude