# Mem0 — how to use (mcp.ai)

Connect your Mem0 account and use 47 tools for artificial intelligence straight from your AI agent. Connect with your own API key. Mem0 is an universal, self-improving memory layer for LLM applications.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_mem0?ms=1787295780000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `mem0_add_member_to_project`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/mem0`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/mem0/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/mem0/add/member/to/project` — Adds an existing user to a project (identified by `project_id` within organization `org_id`), assigning a valid system role.
  - body: { role: string, email: string, org_id: string, project_id: string }
- `POST https://api.mcp.ai/api/mem0/add/new/memory/records` — Stores new memory records from a list of messages, optionally inferring structured content; requires association via `agent_id`, `user_id`, `app_id`, or `run_id`.
  - body: { infer?: boolean, app_id?: string, org_id?: string, run_id?: string, user_id?: string, agent_id?: string, excludes?: string, includes?: string, messages: object[], org_name?: string, async_mode?: boolean, project_id?: string, project_name?: string, output_format?: string }
- `POST https://api.mcp.ai/api/mem0/add/organization/member` — Adds a new member, who must be a registered user, to an organization, assigning them a specific role.
  - body: { role: string, email: string, org_id: string }
- `POST https://api.mcp.ai/api/mem0/create/a/new/agent` — Creates a new agent with a unique `agent_id` and an optional `name`; additional metadata may be assigned by the system.
  - body: { name: string, agent_id: string }
- `POST https://api.mcp.ai/api/mem0/create/a/new/agent/run` — Creates a new agent run in the mem0.ai system.
  - body: { name: string, run_id: string }
- `POST https://api.mcp.ai/api/mem0/create/a/new/application` — Creates a new application, allowing metadata to be passed in the request body (not an explicit field in this action's request model); ensure `app_id` is unique to avoid potential errors or unintended 
  - body: { name: string, app_id: string }
- `POST https://api.mcp.ai/api/mem0/create/a/new/organization/entry` — Creates a new organization entry using the provided name and returns its details.
  - body: { name: string }
- `POST https://api.mcp.ai/api/mem0/create/a/new/user` — Creates a new user with the specified unique `user_id` and supports associating `metadata` (not part of the request schema fields).
  - body: { user_id: string, metadata?: object }
- `POST https://api.mcp.ai/api/mem0/create/memory/entry` — Lists/searches existing memory entries with filtering and pagination; critically, this action retrieves memories and does *not* create new ones, despite its name.
  - body: { page?: integer, org_id?: string, filters: object, org_name?: string, page_size?: integer, project_id?: string, project_name?: string }
- `POST https://api.mcp.ai/api/mem0/create/project` — Creates a new project with a given name within an organization that must already exist.
  - body: { name: string, org_id: string }
- `POST https://api.mcp.ai/api/mem0/create/webhook` — Creates a new webhook for a specific project to receive real-time notifications. Use when you need to set up event-driven integrations that trigger on memory operations.
  - body: { url: string, name?: string, is_active?: boolean, project_id: string, event_types?: string[] }
- `POST https://api.mcp.ai/api/mem0/delete/a/specific/memory/by/id` — Permanently deletes a specific memory by its unique ID; ensure the `memory_id` exists as this operation is irreversible.
  - body: { memory_id: string }
- `POST https://api.mcp.ai/api/mem0/delete/an/organization` — Permanently deletes an existing organization identified by its unique ID.
  - body: { org_id: string }
- `POST https://api.mcp.ai/api/mem0/delete/entity/by/type/and/id` — Call to permanently and irreversibly hard-delete an existing entity (user, agent, app, or run) and all its associated data, using its type and ID.
  - body: { entity_id: string, entity_type: string }
- `POST https://api.mcp.ai/api/mem0/delete/memories/endpoint` — Deletes all memories matching specified filter criteria. IMPORTANT: At least one filter (agent_id, user_id, app_id, or run_id) must be provided to prevent accidental deletion of all memories. Requires
  - body: { app_id?: string, org_id?: string, run_id?: string, user_id?: string, agent_id?: string, metadata?: object, org_name?: string, project_id?: string, project_name?: string }
- `POST https://api.mcp.ai/api/mem0/delete/memory/batch/with/uuids` — Deletes a batch of up to 1000 existing memories, identified by their UUIDs, in a single API call.
  - body: { memories: object[] }
- `POST https://api.mcp.ai/api/mem0/delete/project` — Permanently deletes a specific project and all its associated data from an organization; this action cannot be undone and requires the project to exist within the specified organization.
  - body: { org_id: string, project_id: string }
- `POST https://api.mcp.ai/api/mem0/delete/project/member` — Removes an existing member, specified by email address, from a project, immediately revoking their project-specific access; the user is not removed from the organization.
  - body: { email: string, org_id: string, project_id: string }
- `POST https://api.mcp.ai/api/mem0/delete/webhook` — Deletes a webhook and stops receiving notifications for the specified webhook ID. Use this when you no longer need webhook notifications or want to remove a specific webhook configuration.
  - body: { webhook_id: string }
- `POST https://api.mcp.ai/api/mem0/export/data/based/on/filters` — Creates a new memory export job with optional entity filters (user_id, agent_id, app_id, run_id). Returns export job ID and confirmation message. Requires org_id and project_id. Uses default schema fo
  - body: { app_id?: string, org_id: string, run_id?: string, schema?: object, filters?: object, user_id?: string, agent_id?: string, project_id: string }
- `POST https://api.mcp.ai/api/mem0/fetch/detailed/list/of/organizations` — Retrieves a summary list of organizations for administrative oversight; returns summary data (names, IDs), not exhaustive details, despite 'detailed' in the name.
- `POST https://api.mcp.ai/api/mem0/fetch/details/of/a/specific/organization` — Fetches comprehensive details for an organization using its `org_id`; the `org_id` must be valid and for an existing organization.
  - body: { org_id: string }
- `POST https://api.mcp.ai/api/mem0/fetch/list/of/entity/filters` — Retrieves predefined filter definitions for entities (e.g., by type, creation/modification date); returns definitions only, not filtered entity data.
- `POST https://api.mcp.ai/api/mem0/fetch/specific/entity/details/with/optional/filters` — Fetches detailed information for an existing entity (user, agent, app, or run) identified by its type and unique ID.
  - body: { entity_id: integer, entity_type: string }
- `POST https://api.mcp.ai/api/mem0/get/event/status/by/event/id` — Retrieves a single async event by ID to check its current status and results. Use this after operations that return event IDs (e.g., add_new_memory_records) to poll for completion before proceeding wi
  - body: { event_id: string }
- `POST https://api.mcp.ai/api/mem0/get/memories/by/entity` — Tool to retrieve all memories associated with a specific entity (user, agent, app, or run). Use when you need to fetch memories for a known entity type and ID combination.
  - body: { page?: integer, entity_id: string, page_size?: integer, entity_type: string }
- `POST https://api.mcp.ai/api/mem0/get/memory/export` — Retrieves the status and results of a memory export job by its ID. Use this after creating an export job to fetch the processed memory data. The response structure matches the schema defined during ex
  - body: { org_id?: string, project_id?: string, memory_export_id: string }
- `POST https://api.mcp.ai/api/mem0/get/organization/members` — Fetches a list of members for a specified, existing organization.
  - body: { org_id: string }
- `POST https://api.mcp.ai/api/mem0/get/project/details` — Fetches comprehensive details for a specified project within an organization.
  - body: { org_id: string, project_id: string }
- `POST https://api.mcp.ai/api/mem0/get/project/members` — Retrieves all members for a specified project within an organization.
  - body: { org_id: string, project_id: string }
- `POST https://api.mcp.ai/api/mem0/get/project/webhooks` — Retrieves all webhooks configured for a specific project. Use this to list webhook configurations including their event types, URLs, and active status.
  - body: { project_id: string }
- `POST https://api.mcp.ai/api/mem0/get/projects` — Retrieves all projects for a given organization `org_id` to which the caller has access.
  - body: { org_id: string }
- `POST https://api.mcp.ai/api/mem0/get/user/memory/stats` — Retrieves a summary of the authenticated user's memory activity, including total memories created, search events, and add events. Note: This endpoint is undocumented in the official mem0 API specifica
- `POST https://api.mcp.ai/api/mem0/list/entities/with/optional/org/and/project/filters` — Retrieves a list of entities, optionally filtered by organization or project (prefer `org_id`/`project_id` over deprecated `org_name`/`project_name`), noting results may be summaries and subject to li
  - body: { org_id?: string, org_name?: string, project_id?: string, project_name?: string }
- `POST https://api.mcp.ai/api/mem0/perform/semantic/search/on/memories` — Searches memories semantically using a natural language query and metadata filters. IMPORTANT: - At least one of 'user_id', 'agent_id', or 'run_id' MUST be provided - A non-empty 'query' string is REQ
  - body: { query: string, top_k?: integer, app_id?: string, fields?: string[], org_id?: string, rerank?: boolean, run_id?: string, user_id?: string, agent_id?: string, metadata?: object, org_name?: string, categories?: string[], project_id?: string, project_name?: string, output_format?: string, filter_memories?: boolean, only_metadata_based_search?: boolean }
- `POST https://api.mcp.ai/api/mem0/remove/a/member/from/the/organization` — Removes a member, specified by their username, from an existing organization of which they are currently a member.
  - body: { email: string, org_id: string }
- `POST https://api.mcp.ai/api/mem0/retrieve/all/events/for/the/currently/logged/in/user` — Retrieves a paginated list of events for the authenticated user, filterable and paginable via URL query parameters. This is a read-only operation that does not modify data. Supported Query Parameters 
- `POST https://api.mcp.ai/api/mem0/retrieve/list/of/memory/events` — Retrieves a chronological list of all memory events (e.g., user inputs, AI responses) from the Mem0 platform, providing interaction history and context for AI assistants.
- `POST https://api.mcp.ai/api/mem0/retrieve/memory/by/unique/identifier` — Retrieves a complete memory entry by its unique identifier; `memory_id` must be valid and for an existing memory.
  - body: { memory_id: string }
- `POST https://api.mcp.ai/api/mem0/retrieve/memory/history/by/id` — Retrieves the complete version history for an existing memory, using its unique `memory_id`, to inspect its evolution or audit changes.
  - body: { memory_id: string }
- `POST https://api.mcp.ai/api/mem0/retrieve/memory/list` — Retrieves a list of memories, supporting pagination and diverse filtering (e.g., by IDs, metadata, keywords, date ranges); ensure dates are ISO 8601 and `page`/`page_size` (if used) are positive integ
  - body: { page?: integer, app_id?: string, fields?: string[], org_id?: string, run_id?: string, user_id?: string, agent_id?: string, end_date?: string, keywords?: string, metadata?: object, org_name?: string, page_size?: integer, categories?: string[], project_id?: string, start_date?: string, project_name?: string }
- `POST https://api.mcp.ai/api/mem0/search/memories/with/query/filters` — Semantically searches memories using structured filters with an optional natural language query. If query is omitted, defaults to '*' (wildcard) for filter-only searches. Offers options to rerank resu
  - body: { query?: string, top_k?: integer, fields?: string[], org_id?: string, rerank?: boolean, filters: object, org_name?: string, threshold?: number, project_id?: string, project_name?: string, keyword_search?: boolean, filter_memories?: boolean }
- `POST https://api.mcp.ai/api/mem0/update/memory/batch/with/uuid` — Updates text for up to 1000 memories in a single batch, using their UUIDs.
  - body: { org_id?: string, memories: object[], project_id?: string }
- `POST https://api.mcp.ai/api/mem0/update/memory/details/by/id` — Updates the text content of an existing memory, identified by its `memory_id`.
  - body: { text?: string, metadata?: object, memory_id: string }
- `POST https://api.mcp.ai/api/mem0/update/organization/member/role` — Updates the role of an existing member to a new valid role within an existing organization.
  - body: { role: string, email: string, org_id: string }
- `POST https://api.mcp.ai/api/mem0/update/project` — Updates a project by `project_id` within an `org_id`, modifying only provided fields (name, description, custom_instructions, custom_categories); list fields are fully replaced (cleared by `[]`), othe
  - body: { name?: string, org_id: string, project_id: string, description?: string, custom_categories?: object[], custom_instructions?: string }
- `POST https://api.mcp.ai/api/mem0/update/project/member/role` — Updates the role of a specific member within a designated project, ensuring the new role is valid and recognized by the system.
  - body: { role: string, email: string, org_id: string, project_id: string }

## Example prompts
- "What can I do in Mem0?"
- "Show me a summary of my Mem0 account"

## More
- Page: https://mcp.ai/mem0
- Agent spec (llms.txt): https://mcp.ai/mem0/llms.txt
- Postman collection: https://mcp.ai/mem0/postman.json
