> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mem.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Supported tools

> All tools available through Mem's MCP server

Mem's MCP server exposes 21 tools that AI assistants can use to work with your notes, attachments, audio recordings, and collections. You don't need to know the tool names — just describe what you want in natural language and your AI assistant will pick the right tool.

## Notes

<AccordionGroup>
  <Accordion title="create_note">
    Create a note with an optional note ID, timestamps, and collection links.
    If omitted, Mem generates the note ID.
    The first line of `content` becomes the note title.

    When to use:

    * You are creating a new note.
    * You need to create a new note with a specific ID.

    When NOT to use:

    * You need to overwrite a known existing note by ID (`update_note`).
    * You only need to change note/collection membership (`add_note_to_collection`, `remove_note_from_collection`, or `move_note`).

    **Example prompts:**

    * "Create a note with my meeting notes from today's standup"
    * "Save a new note titled 'Project Ideas' with these bullet points"
    * "Write a note capturing the key decisions from our planning session"
  </Accordion>

  <Accordion title="find_related_notes">
    Find notes semantically related to the current persisted content of a note.
    The source note is embedded at request time, so newly created or recently
    updated notes can be used before asynchronous indexing catches up.
    Candidate related notes still come from the note search index.

    When to use:

    * You already have a note ID and need semantically related existing notes.
    * You need collection context for notes related to a newly created or recently updated note.

    When NOT to use:

    * You need keyword or natural-language query discovery (`search_notes`).
    * You need the full current content for one note (`get_note`).

    **Example prompts:**

    * "Find notes related to this project planning note."
    * "After creating this note, check which existing notes and collections are related."
    * "Show me notes similar to the note I just updated."
  </Accordion>

  <Accordion title="get_note">
    Fetch the full current state of a single note by ID.
    If the note is in trash, the response still returns the note and includes `trashed_at`.
    For discovery flows, use `list_notes` or `search_notes`.

    When to use:

    * You already have a note ID and need canonical content, linked recording IDs, or attachment IDs.

    When NOT to use:

    * You need note discovery without known IDs (`list_notes` or `search_notes`).

    **Example prompts:**

    * "Open my note about the API redesign"
    * "Show me the full contents of that meeting notes note"
    * "Pull up my 'Weekly Goals' note"
  </Accordion>

  <Accordion title="list_notes">
    List notes visible to the authenticated caller with cursor pagination.
    When multiple `contains_*` fields are true, a note may match any of them.
    Results are ordered by `order_by` and return `next_page` when additional rows are available.
    For relevance-ranked retrieval by query, use `search_notes`.

    When to use:

    * You need deterministic cursor pagination ordered by `updated_at` or `created_at`.
    * You are iterating through all accessible notes page by page.

    When NOT to use:

    * You need relevance-ranked retrieval from open-ended text (`search_notes`).

    **Example prompts:**

    * "Show me my recent notes"
    * "List all my notes"
    * "What notes have I created lately?"
  </Accordion>

  <Accordion title="restore_note">
    Restore a previously trashed note to the active note set.
    This only reverses soft-delete lifecycle state.

    When to use:

    * You need to undo a prior trash operation.

    When NOT to use:

    * The note is already active and does not need restoration.

    **Example prompts:**

    * "Restore the note I just trashed"
    * "Bring back my deleted meeting notes"
    * "Undo trashing that project plan note"
  </Accordion>

  <Accordion title="search_notes">
    Search notes using a required free-text query and structured filters.
    When multiple `filter_by_contains_*` fields are true, a note may match any of them.
    Returns note results from a bounded search snapshot with deterministic offset pagination.
    Query-based searches are relevance-ranked within the bounded search snapshot window.
    Reuse the returned `snapshot_id` when requesting later pages.
    The returned `total` reflects the bounded search snapshot, capped by the 100-result search window.
    For deterministic chronological pagination across all accessible notes, use `list_notes`.

    When to use:

    * You need relevance-ranked retrieval from a natural-language or keyword query.
    * You need query + filter retrieval instead of full feed traversal.

    When NOT to use:

    * You need deterministic chronological pagination (`list_notes`).

    **Example prompts:**

    * "Find my notes about the Q3 marketing strategy"
    * "Search for anything I've written about React performance"
    * "What notes do I have mentioning the onboarding flow?"
  </Accordion>

  <Accordion title="trash_note">
    Soft-delete a note by moving it to trash.
    Trashed notes can be restored via `restore_note`.

    When to use:

    * You need reversible removal from active notes.

    **Example prompts:**

    * "Trash my old scratch notes from last week"
    * "Move that draft note to the trash"
    * "Get rid of the note titled 'Untitled'"
  </Accordion>

  <Accordion title="update_note">
    Submit a complete markdown body for a note and the exact `version` being updated.
    Send the full desired body in `content` (not a partial markdown patch).
    The first line of `content` becomes the updated title.
    Trashed notes must be restored before they can be updated.

    When to use:

    * You need full-body replacement for an existing note ID.

    When NOT to use:

    * You need partial patch semantics (not supported).
    * You need to create a new note (`create_note`).
    * The note is trashed and must be restored first (`restore_note`).

    **Example prompts:**

    * "Add a new section to my project plan note"
    * "Update my grocery list note with these items"
    * "Append today's action items to my standup notes"
  </Accordion>
</AccordionGroup>

## Attachments

<AccordionGroup>
  <Accordion title="answer_question_about_attachment">
    Ask one focused question about a single attachment by kind and ID.
    Use `attachment_kind` and `attachment_id` returned in note attachment metadata.

    When to use:

    * You have `attachment_kind` and `attachment_id` from `get_note` attachment metadata and need one grounded answer from that attachment.
    * You want the model to inspect a single attachment without returning all extracted pages or content chunks.

    When NOT to use:

    * You need structured extracted content or pagination controls (`read_attachment`).
    * You need the raw protected file bytes or a signed download URL (`get_note_attachment_download_url`).

    **Example prompts:**

    * "Using the PDF attached to this note, what are the launch requirements?"
    * "Ask the image attachment what text appears in the screenshot"
    * "From this attachment, answer whether it mentions renewal terms"
  </Accordion>

  <Accordion title="get_note_attachment_download_url">
    Generate a temporary signed download URL for a note attachment.
    Use this when note content references an attachment, but the underlying file URL is not directly downloadable.
    The caller must be able to access the requested attachment.

    When to use:

    * You have an attachment ID from `get_note` `attachment_metadata` or note content and need a temporary signed URL to fetch the protected file behind that attachment reference.
    * Use this when note content references an attachment, but the underlying file URL is not directly downloadable.

    When NOT to use:

    * You need note-level discovery or attachment IDs (`get_note`).
    * You do not have an attachment ID from `get_note` or note content.

    **Example prompts:**

    * "Download the image attached to that note"
    * "Transcribe the contents of the PDF attached to that note"
    * "Get the attachment from that note so you can read the PDF and summarize it"
  </Accordion>

  <Accordion title="read_attachment">
    Read structured content for a single attachment by kind and ID.
    Use `attachment_kind` and `attachment_id` returned in note attachment metadata.

    When to use:

    * You have `attachment_kind` and `attachment_id` from `get_note` attachment metadata and need structured extracted content.
    * You need PDF pages, image OCR/visual metadata, audio transcripts, calendar event text, or email text without downloading the raw file.

    When NOT to use:

    * You need the raw protected file bytes or a signed download URL (`get_note_attachment_download_url`).
    * You only need one focused answer from the attachment (`answer_question_about_attachment`).

    **Example prompts:**

    * "Read the PDF attachment from this note and show me the first pages"
    * "Get the OCR text from the image attached to this note"
    * "Use the attachment metadata from this note to inspect the attached document"
  </Accordion>
</AccordionGroup>

## Audio recordings

<AccordionGroup>
  <Accordion title="get_audio_recording">
    Fetch the current public transcript and metadata for a single audio recording by ID.

    When to use:

    * You already have an audio recording ID and need its transcript + metadata.

    When NOT to use:

    * You need note-level discovery or linked recording IDs (`get_note`).

    **Example prompts:**

    * "Show me the transcript for the recording attached to this note"
    * "Open the transcript from my meeting note and include the recording details"
    * "What audio recording is linked to this note? Show me the transcript"
  </Accordion>
</AccordionGroup>

## Collections

<AccordionGroup>
  <Accordion title="add_note_to_collection">
    Add an existing note to an existing collection.
    This operation only creates the membership link and does not modify note or collection content.
    Use create endpoints to create notes or collections.

    When to use:

    * You need to link an existing note to an existing collection.

    When NOT to use:

    * You need to create notes or collections first (`create_note` or `create_collection`).
    * You need to transfer a note out of one collection into another (`move_note`).

    **Example prompts:**

    * "Add that meeting notes note to my 'Project Phoenix' collection"
    * "Put this note in the 'Research' collection"
  </Accordion>

  <Accordion title="create_collection">
    Create a collection with optional caller-provided ID and timestamps.
    If `id` already exists, this request returns a conflict.
    Use collection membership endpoints to add, remove, or move notes between collections.

    When to use:

    * You are creating a new collection.
    * You need to create a new collection with an optional caller-provided ID or timestamps.

    When NOT to use:

    * You need to update an existing collection by ID (`update_collection`).
    * You only need membership changes between existing notes and collections (`add_note_to_collection`, `remove_note_from_collection`, or `move_note`).

    **Example prompts:**

    * "Create a new collection called 'Project Phoenix'"
    * "Make a collection for my interview prep notes"
    * "Set up a 'Reading List' collection"
  </Accordion>

  <Accordion title="delete_collection">
    Permanently delete a collection.
    Hard-deleting removes the collection resource itself.
    For membership-only changes, use note add, remove, or move collection endpoints.

    When to use:

    * You need irreversible hard-delete behavior for a collection resource.

    When NOT to use:

    * You only need note membership changes in a collection (`add_note_to_collection`, `remove_note_from_collection`, or `move_note`).

    **Example prompts:**

    * "Delete my old 'Temp' collection"
    * "Remove the 'Archive 2023' collection"
  </Accordion>

  <Accordion title="get_collection">
    Fetch metadata for a single collection by ID.
    This tool returns collection metadata only, not a note list for that collection.
    For discovery flows, use `list_collections` or `search_collections`.

    When to use:

    * You already have a collection ID and need canonical metadata.

    When NOT to use:

    * You need collection discovery without known IDs (`list_collections` or `search_collections`).

    **Example prompts:**

    * "Show me what's in my 'Research' collection"
    * "Open the 'Project Phoenix' collection"
    * "What notes are in my 'Design Docs' collection?"
  </Accordion>

  <Accordion title="list_collections">
    List collections visible to the authenticated caller with cursor pagination.
    Results are ordered by `order_by` and return `next_page` when additional rows are available.
    For relevance-ranked retrieval by query, use `search_collections`.

    When to use:

    * You need deterministic cursor pagination for collections.
    * You are iterating through all accessible collections page by page.

    When NOT to use:

    * You need relevance-ranked retrieval from open-ended text (`search_collections`).

    **Example prompts:**

    * "Show me all my collections"
    * "What collections do I have?"
    * "List my collections"
    * "List collections updated after April 1"
  </Accordion>

  <Accordion title="move_note">
    Move a note from one collection to another collection.
    This operation adds the note to the target collection, then removes it from the source collection.
    It does not modify note or collection content.

    When to use:

    * You need to transfer an existing note from one collection to another.

    When NOT to use:

    * The note should remain in the source collection; use `add_note_to_collection`.
    * You only need to unlink a note from a collection; use `remove_note_from_collection`.

    **Example prompts:**

    * "Move the Q1 risks note from 'Planning' to 'Exec Briefings'"
    * "Transfer this note from 'Inbox' to 'Project Phoenix'"
  </Accordion>

  <Accordion title="remove_note_from_collection">
    Remove a note from a collection while keeping both resources.
    This operation only removes the membership link between IDs.
    Use `trash_note` to remove a note from active notes, or `delete_collection` to remove a collection resource.

    When to use:

    * You need to unlink a note from a collection while keeping both resources.

    When NOT to use:

    * You need to remove the note from active notes (`trash_note`) or delete the collection resource (`delete_collection`).
    * You need to transfer a note directly to another collection (`move_note`).

    **Example prompts:**

    * "Remove that note from the 'Archive' collection"
    * "Take the recipe note out of my 'Dinner Ideas' collection"
  </Accordion>

  <Accordion title="search_collections">
    Search collections using free-text relevance matching.
    Returns a bounded relevance-ranked result set and does not return `next_page`.
    For deterministic chronological pagination, use `list_collections`.

    When to use:

    * You need relevance-ranked retrieval for collection lookup.

    When NOT to use:

    * You need deterministic chronological pagination (`list_collections`).

    **Example prompts:**

    * "Find my collection about frontend architecture"
    * "Search for a collection related to hiring"
    * "Do I have a collection for design docs?"
    * "Find collections about hiring that were updated this quarter"
  </Accordion>

  <Accordion title="update_collection">
    Update metadata for a collection by ID.
    Use this tool to rename a collection by setting `title`.
    This tool updates only provided fields (`title`, `description`) and leaves omitted fields unchanged.
    For read-only retrieval, use `get_collection`.

    When to use:

    * You need to rename a collection by updating its title.
    * You need to update title and/or description for an existing collection ID.
    * You need to preserve a collection while correcting metadata.

    When NOT to use:

    * You need to create a new collection (`create_collection`).
    * You only need note membership changes (`add_note_to_collection`, `remove_note_from_collection`, or `move_note`).

    **Example prompts:**

    * "Rename my 'Q1 Ideas' collection to 'Q2 Ideas'"
    * "Update the description of 'Project Phoenix' to include launch milestones"
    * "Change this collection title to 'Customer Research' and keep everything else the same"
  </Accordion>
</AccordionGroup>

## Rate limits and quotas

Mem MCP requests are backed by the Mem API and follow the same API rate limits and quotas.

For current limits, see [/api-reference/overview/rate-limits](/api-reference/overview/rate-limits). If limits are exceeded, requests return HTTP `429` and include a `Retry-After` header.
