← Back to all apps

Mem

Productivityby Mem Labs, Inc.
Launched Apr 14, 2026 on ChatGPTLaunched Mar 3, 2026 on Claude

Give Claude the full context of your second brain by connecting your Mem knowledge base. Search your AI notebook for context, capture and recall ideas, save chats into new notes, edit and update living docs, and organize your AI workspace — simply by asking Claude. Use for: synthesizing and pulling actions items from meeting notes, deep research, personal knowledge management (PKM), knowledge repository building, task management, prioritization, and content development. Example prompts: "Search my notes for pricing strategy and validate our thinking with research." "Create a note from this chat and add it to our GTM collection." "List all open tasks from this week's notes and add to my to-do list."

17ChatGPT Tools
15Claude Tools
Mem Labs, Inc.Developer
ProductivityCategory

Use Cases

productivity

Available Tools

Add Note to Collection

add_note_to_collection
Full Description

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).
Parameters (2 required)
Required
collection_idstring

UUID of the collection that will receive the note. Use an ID returned by create/list/search. The caller must be able to contribute to this collection.

note_idstring

UUID of the note to add. Use an ID returned by create/list/search. The caller must be able to access this note.

Create Collection

create_collection
Full Description

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 or remove notes from 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 or remove_note_from_collection).
Parameters (1 required, 4 optional)
Required
titlestring

Title for the collection. Use a short, stable label suitable for navigation and search. Maximum: 1,000 characters (and no more than 1,000 UTF-8 bytes).

Optional
created_atstring

Optional creation timestamp (ISO 8601). If provided, it must include a timezone offset and cannot be in the future. If omitted, Mem uses `updated_at` when provided; otherwise current server time.

Default: null
descriptionstring

Optional longer description of collection scope or intent. Maximum: 10,000 characters (and no more than 10,000 UTF-8 bytes).

Default: null
idstring

Optional caller-provided UUID for the collection. If omitted, Mem generates a new UUID. If the provided ID already exists, this request returns a conflict.

Default: null
updated_atstring

Optional "last updated" timestamp for this write (ISO 8601). If provided, it must include a timezone offset and cannot be in the future. If omitted, Mem uses `created_at` for the initial collection write.

Default: null

Create Note

create_note
Full Description

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 or remove_note_from_collection).
Parameters (1 required, 5 optional)
Required
contentstring

Full markdown body for the note. Send the full desired note body (partial patch semantics are not supported here). IMPORTANT: The first line is interpreted as the note title. Maximum: 200,000 characters (and no more than 200,000 UTF-8 bytes on create).

Optional
collection_idsarray

Optional collection IDs to associate with the note. IDs that do not map to accessible collections are ignored.

Default: null
collection_titlesarray

Optional collection titles to associate with the note. Matching is case-insensitive exact match; titles with no match are ignored. Maximum per title: 1,000 characters (and no more than 1,000 UTF-8 bytes).

Default: null
created_atstring

Optional creation timestamp (ISO 8601). If provided, it must include a timezone offset and cannot be in the future. If omitted, Mem uses `updated_at` when provided; otherwise current server time.

Default: null
idstring

Optional UUID for the note. If omitted, Mem generates a new UUID.

Default: null
updated_atstring

Optional "last updated" timestamp for this write (ISO 8601). If provided, it must include a timezone offset and cannot be in the future. If omitted, Mem uses the current server time for the initial content write.

Default: null

Delete Collection

delete_collection
Full Description

Permanently delete a collection. Hard-deleting removes the collection resource itself. For membership-only changes, use note add/remove 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 or remove_note_from_collection).
Parameters (1 required)
Required
collection_idstring

UUID of the collection to permanently delete. Use an ID returned by create/list/search. The caller must be able to access this collection.

Get Audio Recording

get_audio_recording
Full Description

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).
Parameters (1 required)
Required
audio_recording_idstring

UUID of the audio recording to read. The caller must be able to access this recording.

Get Collection

get_collection
Full Description

Fetch metadata for a single collection by ID. This endpoint 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).
Parameters (1 required)
Required
collection_idstring

UUID of the collection to read. Use an ID returned by create/list/search. The caller must be able to access this collection.

Get Note

get_note
Full Description

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 + metadata.

When NOT to use:

  • You need note discovery without known IDs (list_notes or search_notes).
Parameters (1 required)
Required
note_idstring

UUID of the note to read. Use an ID returned by create/list/search. The caller must be able to access this note.

Get Note Attachment Download URL

get_note_attachment_download_url
Full Description

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 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).
  • The note content does not expose an attachment ID via a #attachment_id fragment or data-attachment-id attribute; this tool cannot access that attachment.
Parameters (1 required)
Required
attachment_idstring

UUID of the note attachment to download. The caller must be able to access this attachment.

List Collections

list_collections
Full Description

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).
Parameters (0 required, 3 optional)
Optional
limitinteger

Maximum number of collections in this page. Use smaller values for lower latency. Default is 50; valid range is 1 to 100.

Default: 50
order_bystring

Sort key for pagination boundaries. Use `updated_at` (default) for recency feeds. Use `created_at` for creation-order views.

Default: updated_at
pagestring

Opaque cursor from a previous list response. Omit for the first page. IMPORTANT: Reuse with the same `order_by` value.

Default: null

List Notes

list_notes
Full Description

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).
Parameters (0 required, 13 optional)
Optional
collection_idstring

Optional collection filter by UUID. When set, only notes linked to this collection are returned.

Default: null
contains_filesboolean

When true, include notes that contain file-like attachments (including file and PDF kinds). When multiple `contains_*` fields are true, notes matching any selected filter may be returned.

Default: False
contains_imagesboolean

When true, include notes that contain image media (including image and GIF kinds). When multiple `contains_*` fields are true, notes matching any selected filter may be returned.

Default: False
contains_open_tasksboolean

When true, include notes that contain at least one open task item. When multiple `contains_*` fields are true, notes matching any selected filter may be returned.

Default: False
contains_tasksboolean

When true, include notes that contain at least one task item (open or closed). When multiple `contains_*` fields are true, notes matching any selected filter may be returned.

Default: False
filter_by_created_afterstring

Optional inclusive lower bound for note creation time (ISO 8601). The timestamp must include a timezone offset such as `Z` or `+01:00`.

Default: null
filter_by_created_beforestring

Optional inclusive upper bound for note creation time (ISO 8601). The timestamp must include a timezone offset such as `Z` or `+01:00`.

Default: null
filter_by_updated_afterstring

Optional inclusive lower bound for note update time (ISO 8601). The timestamp must include a timezone offset such as `Z` or `+01:00`.

Default: null
filter_by_updated_beforestring

Optional inclusive upper bound for note update time (ISO 8601). The timestamp must include a timezone offset such as `Z` or `+01:00`.

Default: null
include_note_contentboolean

When true, include full markdown content for each returned note. IMPORTANT: This increases payload size and can increase latency.

Default: False
limitinteger

Maximum number of notes in this page. Use smaller values for lower latency. Default is 50; valid range is 1 to 100.

Default: 50
order_bystring

Sort key for pagination boundaries. Use `updated_at` (default) for recency feeds. Use `created_at` for creation-order views.

Default: updated_at
pagestring

Opaque cursor from a previous list response. Omit for the first page. IMPORTANT: Reuse with the same filters and `order_by` settings.

Default: null

Remove Note from Collection

remove_note_from_collection
Full Description

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).
Parameters (2 required)
Required
collection_idstring

UUID of the collection to unlink. Use an ID returned by create/list/search. Caller must be able to edit the note or contribute to the collection.

note_idstring

UUID of the note to unlink. Use an ID returned by create/list/search. Caller must be able to edit the note or contribute to the collection.

Restore Note

restore_note
Full Description

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.
Parameters (1 required)
Required
note_idstring

UUID of the note to restore from trash. Use an ID returned by create/list/search. The caller must be able to edit this note.

Search Collections

search_collections
Full Description

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).
Parameters (0 required, 1 optional)
Optional
querystring

Optional text query for relevance matching across collections. If omitted, search can still return a bounded general set.

Default: null

Search Notes

search_notes
Full Description

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).
Parameters (1 required, 13 optional)
Required
querystring

Required text query for relevance matching. The query must contain at least one non-whitespace character. This endpoint does not provide exhaustive chronological pagination; for that, use `GET /v2/notes`.

Optional
filter_by_collection_idsarray

Optional collection UUID filters. When provided, results are limited to notes in any listed collection.

Default: null
filter_by_contains_filesboolean

When true, include notes that contain file-like attachments (including file and PDF kinds).

Default: False
filter_by_contains_imagesboolean

When true, include notes that contain image media (including image and GIF kinds).

Default: False
filter_by_contains_open_tasksboolean

When true, include notes that contain at least one open task item.

Default: False
filter_by_contains_tasksboolean

When true, include notes that contain at least one task item (open or closed).

Default: False
filter_by_created_afterstring

Optional inclusive lower bound for note creation time (ISO 8601). The timestamp must include a timezone offset such as `Z` or `+01:00`.

Default: null
filter_by_created_beforestring

Optional inclusive upper bound for note creation time (ISO 8601). The timestamp must include a timezone offset such as `Z` or `+01:00`.

Default: null
filter_by_updated_afterstring

Optional inclusive lower bound for note update time (ISO 8601). The timestamp must include a timezone offset such as `Z` or `+01:00`.

Default: null
filter_by_updated_beforestring

Optional inclusive upper bound for note update time (ISO 8601). The timestamp must include a timezone offset such as `Z` or `+01:00`.

Default: null
include_note_contentboolean

When true, include full markdown content for each returned note. Keep false for lightweight metadata/snippet responses.

Default: False
limitinteger

Maximum number of notes in this search page. Use smaller values for lower latency. Default is 20; valid range is 1 to 50.

Default: 20
offsetinteger

Number of matching notes to skip before returning results. This value is zero-based.

Default: 0
snapshot_idstring

Opaque search snapshot identifier returned by a previous search page. Required when requesting later pages with `offset > 0`.

Default: null

Trash Note

trash_note
Full Description

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.
Parameters (1 required)
Required
note_idstring

UUID of the note to move to trash. Use an ID returned by create/list/search. The caller must be able to edit this note.

Update Collection

update_collection
Full Description

Update metadata for a collection by ID. Use this tool to rename a collection by setting title. This endpoint 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 or remove_note_from_collection).
Parameters (1 required, 3 optional)
Required
collection_idstring

UUID of the collection to update. Use an ID returned by create/list/search. The caller must be able to edit this collection.

Optional
descriptionstring

Optional replacement description for the collection. Omit to keep the current description unchanged. Set to an empty string to clear the description. Maximum: 10,000 characters (and no more than 10,000 UTF-8 bytes).

Default: null
titlestring

Optional replacement title for the collection. Use this field to rename a collection. Omit to keep the current title unchanged. Maximum: 1,000 characters (and no more than 1,000 UTF-8 bytes).

Default: null
updated_atstring

Optional "last updated" timestamp for this write (ISO 8601). If provided, it must include a timezone offset and cannot be in the future. If omitted, the current server time is used.

Default: null

Update Note

update_note
Full Description

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).
Parameters (3 required, 1 optional)
Required
contentstring

Complete markdown body to submit for this write. Send the full desired note body (partial patch semantics are not supported in this request payload). The first line is interpreted as the title.

note_idstring

UUID of the note to update. Use an ID returned by create/list/search. The caller must be able to edit this note.

versioninteger

Exact note content document version this update is based on. Use the `version` returned by `GET /v2/notes/{note_id}` or by the most recent note write response.

Optional
updated_atstring

Optional "last updated" timestamp for this write (ISO 8601). If omitted, the current server time is used.

Default: null