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.
What agents do in Mem0.
Add a new memory record
Store a fact learned during a conversation so an agent can recall it later.
Search memories by entity
Search stored memories tied to a user or agent to pull relevant context, read-only.
Approve before deleting memories
Require approval before deleting stored memories, since it removes an agent's learned context permanently.
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
21Look things up. Allowed by default.
- mem0.get_projectsGet projects
- mem0.get_memory_exportGet memory export
- mem0.get_project_detailsGet project details
- mem0.get_project_membersGet project members
- mem0.get_project_webhooksGet project webhooks
- mem0.get_user_memory_statsGet user memory stats
- mem0.get_memories_by_entityGet memories by entity
- mem0.get_organization_membersGet organization members
- mem0.get_event_status_by_event_idGet event status by event ID
- mem0.search_memories_with_query_filtersSearch memories with filters
- mem0.list_entities_with_optional_org_and_project_filtersList entities
- mem0.retrieve_memory_listRetrieve memory list
- mem0.export_data_based_on_filtersExport data based on filters
- mem0.fetch_list_of_entity_filtersGet list of entity filters
- mem0.retrieve_memory_history_by_idRetrieve memory history by id
- mem0.retrieve_list_of_memory_eventsRetrieve list of memory events
write
17Create and change things. Allow, or ask the user first.
- mem0.create_projectCreate project
- mem0.create_webhookCreate webhook
- mem0.update_projectUpdate project
- mem0.create_a_new_userCreate a new user
- mem0.create_a_new_agentCreate a new agent
- mem0.create_memory_entryCreate memory entry
- mem0.add_member_to_projectAdd member to project
- mem0.add_new_memory_recordsAdd new memory records
- mem0.create_a_new_agent_runCreate a new agent run
- mem0.add_organization_memberAdd organization member
- mem0.create_a_new_applicationCreate a new application
- mem0.update_project_member_roleUpdate project member role
- mem0.update_memory_details_by_idUpdate memory text content
- mem0.update_memory_batch_with_uuidUpdate memory batch with uuid
- mem0.create_a_new_organization_entryCreate a new organization entry
- mem0.update_organization_member_roleUpdate organization member role
destructive
9Delete, cancel or archive. Ask first, or deny outright.
- mem0.delete_projectDelete project
- mem0.delete_webhookDelete webhook
- mem0.delete_project_memberDelete project member
- mem0.delete_an_organizationDelete an organization
- mem0.delete_memories_endpointDelete memories
- mem0.delete_entity_by_type_and_idDelete entity by type and id
- mem0.delete_a_specific_memory_by_idDelete memory by id
- mem0.delete_memory_batch_with_uuidsDelete memory batch with uuids
- mem0.remove_a_member_from_the_organizationRemove a member from the organization
Mem0 in three steps.
- 01Your users connect Mem0They add their Mem0 api key on Arc0 Connect, under your brand. It goes straight into the vault.
- 02You set the rulesReads run, writes like “create project” can wait for the user, and “delete project” can be denied outright.
- 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.
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
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
Use Mem0 from any agent.
Mem0 and Arc0, answered.
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.
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.
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.
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.
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.
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