# Mem0 — MCP server on 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. By: mcp.ai · official Page: https://mcp.ai/mem0 ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_mem0?ms=1787293500000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/mem0/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/mem0/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/mem0/skill.md Postman collection (v2.1): https://mcp.ai/mem0/postman.json ## Tools - mem0_add_member_to_project(role: string, email: string, org_id: string, project_id: string) — Adds an existing user to a project (identified by `project_id` within organization `org_id`), assigning a valid system role. - mem0_add_new_memory_records(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) — 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`. - mem0_add_organization_member(role: string, email: string, org_id: string) — Adds a new member, who must be a registered user, to an organization, assigning them a specific role. - mem0_create_a_new_agent(name: string, agent_id: string) — Creates a new agent with a unique `agent_id` and an optional `name`; additional metadata may be assigned by the system. - mem0_create_a_new_agent_run(name: string, run_id: string) — Creates a new agent run in the mem0.ai system. - mem0_create_a_new_application(name: string, app_id: string) — 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 - mem0_create_a_new_organization_entry(name: string) — Creates a new organization entry using the provided name and returns its details. - mem0_create_a_new_user(user_id: string, metadata?: object) — Creates a new user with the specified unique `user_id` and supports associating `metadata` (not part of the request schema fields). - mem0_create_memory_entry(page?: integer, org_id?: string, filters: object, org_name?: string, page_size?: integer, project_id?: string, project_name?: string) — Lists/searches existing memory entries with filtering and pagination; critically, this action retrieves memories and does *not* create new ones, despite its name. - mem0_create_project(name: string, org_id: string) — Creates a new project with a given name within an organization that must already exist. - mem0_create_webhook(url: string, name?: string, is_active?: boolean, project_id: string, event_types?: string[]) — 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. - mem0_delete_a_specific_memory_by_id(memory_id: string) — Permanently deletes a specific memory by its unique ID; ensure the `memory_id` exists as this operation is irreversible. - mem0_delete_an_organization(org_id: string) — Permanently deletes an existing organization identified by its unique ID. - mem0_delete_entity_by_type_and_id(entity_id: string, entity_type: string) — 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. - mem0_delete_memories_endpoint(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) — 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 - mem0_delete_memory_batch_with_uuids(memories: object[]) — Deletes a batch of up to 1000 existing memories, identified by their UUIDs, in a single API call. - mem0_delete_project(org_id: string, project_id: string) — 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. - mem0_delete_project_member(email: string, org_id: string, project_id: string) — 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. - mem0_delete_webhook(webhook_id: string) — 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. - mem0_export_data_based_on_filters(app_id?: string, org_id: string, run_id?: string, schema?: object, filters?: object, user_id?: string, agent_id?: string, project_id: string) — 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 - 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. - mem0_fetch_details_of_a_specific_organization(org_id: string) — Fetches comprehensive details for an organization using its `org_id`; the `org_id` must be valid and for an existing organization. - 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. - mem0_fetch_specific_entity_details_with_optional_filters(entity_id: integer, entity_type: string) — Fetches detailed information for an existing entity (user, agent, app, or run) identified by its type and unique ID. - mem0_get_event_status_by_event_id(event_id: string) — 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 - mem0_get_memories_by_entity(page?: integer, entity_id: string, page_size?: integer, entity_type: string) — 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. - mem0_get_memory_export(org_id?: string, project_id?: string, memory_export_id: string) — 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 - mem0_get_organization_members(org_id: string) — Fetches a list of members for a specified, existing organization. - mem0_get_project_details(org_id: string, project_id: string) — Fetches comprehensive details for a specified project within an organization. - mem0_get_project_members(org_id: string, project_id: string) — Retrieves all members for a specified project within an organization. - mem0_get_project_webhooks(project_id: string) — Retrieves all webhooks configured for a specific project. Use this to list webhook configurations including their event types, URLs, and active status. - mem0_get_projects(org_id: string) — Retrieves all projects for a given organization `org_id` to which the caller has access. - 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 - mem0_list_entities_with_optional_org_and_project_filters(org_id?: string, org_name?: string, project_id?: string, project_name?: string) — 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 - mem0_perform_semantic_search_on_memories(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) — 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 - mem0_remove_a_member_from_the_organization(email: string, org_id: string) — Removes a member, specified by their username, from an existing organization of which they are currently a member. - 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 - 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. - mem0_retrieve_memory_by_unique_identifier(memory_id: string) — Retrieves a complete memory entry by its unique identifier; `memory_id` must be valid and for an existing memory. - mem0_retrieve_memory_history_by_id(memory_id: string) — Retrieves the complete version history for an existing memory, using its unique `memory_id`, to inspect its evolution or audit changes. - mem0_retrieve_memory_list(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) — 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 - mem0_search_memories_with_query_filters(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) — 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 - mem0_update_memory_batch_with_uuid(org_id?: string, memories: object[], project_id?: string) — Updates text for up to 1000 memories in a single batch, using their UUIDs. - mem0_update_memory_details_by_id(text?: string, metadata?: object, memory_id: string) — Updates the text content of an existing memory, identified by its `memory_id`. - mem0_update_organization_member_role(role: string, email: string, org_id: string) — Updates the role of an existing member to a new valid role within an existing organization. - mem0_update_project(name?: string, org_id: string, project_id: string, description?: string, custom_categories?: object[], custom_instructions?: string) — 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 - mem0_update_project_member_role(role: string, email: string, org_id: string, project_id: string) — Updates the role of a specific member within a designated project, ensuring the new role is valid and recognized by the system. ## Example prompts - "What can I do in Mem0?" - "Show me a summary of my Mem0 account" ## Links Docs: https://mcp.ai/docs/mcps/mem0 Website: https://mcp.ai/mcps/mem0