Mem0 for AI agents

Mem0 is a memory layer for LLM applications that stores and retrieves facts across conversations so agents improve over time. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.

AI and modelsAPI keyMCP + RESTmem0.ai
AUDIT LOG · MEM0POLICY: acme-support
09:41:07 · claude · u_8f2read
mem0.list_entities_with_optional_org_and_project_filters
List entities✓ allowed · 212ms
09:41:08 · claude · u_8f2read
mem0.get_projects
Get projects✓ allowed · 164ms
09:41:09 · claude · u_8f2write
mem0.create_project
Create project✓ approved · approved by user
09:41:12 · claude · u_8f2destructive
mem0.delete_project
Delete project✕ blocked · policy: deny
EVERY MEM0 CALL, ON THE RECORD
01 · USE CASES

What agents do in Mem0.

01

Add a new memory record

Store a fact learned during a conversation so an agent can recall it later.

02

Search memories by entity

Search stored memories tied to a user or agent to pull relevant context, read-only.

03

Approve before deleting memories

Require approval before deleting stored memories, since it removes an agent's learned context permanently.

02 · ACTIONS

47 Mem0 actions, graded by risk.

Every Mem0 action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.

read

21

Look things up. Allowed by default.

  • mem0.get_projects
    Get projects
  • mem0.get_memory_export
    Get memory export
  • mem0.get_project_details
    Get project details
  • mem0.get_project_members
    Get project members
  • mem0.get_project_webhooks
    Get project webhooks
  • mem0.get_user_memory_stats
    Get user memory stats
  • mem0.get_memories_by_entity
    Get memories by entity
  • mem0.get_organization_members
    Get organization members
  • mem0.get_event_status_by_event_id
    Get event status by event ID
  • mem0.search_memories_with_query_filters
    Search memories with filters
  • mem0.list_entities_with_optional_org_and_project_filters
    List entities
  • mem0.retrieve_memory_list
    Retrieve memory list
  • mem0.export_data_based_on_filters
    Export data based on filters
  • mem0.fetch_list_of_entity_filters
    Get list of entity filters
  • mem0.retrieve_memory_history_by_id
    Retrieve memory history by id
  • mem0.retrieve_list_of_memory_events
    Retrieve list of memory events
+ 5 MORE

write

17

Create and change things. Allow, or ask the user first.

  • mem0.create_project
    Create project
  • mem0.create_webhook
    Create webhook
  • mem0.update_project
    Update project
  • mem0.create_a_new_user
    Create a new user
  • mem0.create_a_new_agent
    Create a new agent
  • mem0.create_memory_entry
    Create memory entry
  • mem0.add_member_to_project
    Add member to project
  • mem0.add_new_memory_records
    Add new memory records
  • mem0.create_a_new_agent_run
    Create a new agent run
  • mem0.add_organization_member
    Add organization member
  • mem0.create_a_new_application
    Create a new application
  • mem0.update_project_member_role
    Update project member role
  • mem0.update_memory_details_by_id
    Update memory text content
  • mem0.update_memory_batch_with_uuid
    Update memory batch with uuid
  • mem0.create_a_new_organization_entry
    Create a new organization entry
  • mem0.update_organization_member_role
    Update organization member role
+ 1 MORE

destructive

9

Delete, cancel or archive. Ask first, or deny outright.

  • mem0.delete_project
    Delete project
  • mem0.delete_webhook
    Delete webhook
  • mem0.delete_project_member
    Delete project member
  • mem0.delete_an_organization
    Delete an organization
  • mem0.delete_memories_endpoint
    Delete memories
  • mem0.delete_entity_by_type_and_id
    Delete entity by type and id
  • mem0.delete_a_specific_memory_by_id
    Delete memory by id
  • mem0.delete_memory_batch_with_uuids
    Delete memory batch with uuids
  • mem0.remove_a_member_from_the_organization
    Remove a member from the organization
03 · HOW IT WORKS

Mem0 in three steps.

  1. 01Your users connect Mem0They add their Mem0 api key on Arc0 Connect, under your brand. It goes straight into the vault.
  2. 02You set the rulesReads run, writes like “create project” can wait for the user, and “delete project” can be denied outright.
  3. 03Any agent can actYour agent calls Mem0 through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
POLICY.TS
await arc0.policies.set('mem0', {
  read: 'allow',
  write: 'ask',        // create_project
  destructive: 'deny',  // delete_project
})

# Claude Code: the same connection, one URL
$ claude mcp add --transport http arc0 \
    https://mcp.arc0.ai/u/u_8f2
04 · AUTH AND DATA

How Mem0 connects.

Users add their Mem0 api key on Arc0 Connect. It is encrypted in the vault, never shown to the model, and each user can rotate or revoke it at any time.

The same Mem0 connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →

AUTH
API key
CREDENTIALS
Per-tenant encrypted vault
MODEL SEES
Results only, never credentials
AUDIT LOG
Every call, on every plan
05 · WORKS WITH

Use Mem0 from any agent.

Claude
ChatGPT
Cursor
Codex
VS Code
OpenAI Agents SDK
Claude Agent SDK
Vercel AI SDK
Mastra
LangGraph
07 · FAQ

Mem0 and Arc0, answered.

Q01

Can I use Mem0 with Claude, ChatGPT or Cursor?

Yes. Connect Mem0 to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the Mem0 actions you allow.

Q02

How do users connect Mem0?

Users add their Mem0 api key on Arc0 Connect. It is encrypted in the vault, never shown to the model, and each user can rotate or revoke it at any time.

Q03

Which Mem0 actions can my agent take?

47 in total: 21 read, 17 write and 9 destructive, such as “create project”. Your policies decide which of them each agent may call.

Q04

Can I stop my agent from deleting things in Mem0?

Yes. Actions like “delete project” are graded destructive. Set destructive actions to deny, or to ask so the user approves each one, and blocked calls still show up on the audit log.

Q05

Can my own backend call Mem0 too?

Yes. The same Mem0 connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.

Get started

Plug Mem0 into your agent.

Your users connect Mem0 once, under your brand. Your agent gets 47 actions behind your policies, with every call on the record.

Free to build · MCP + REST · Audit log on every plan