mcpField
M
mem0

mem0

github.com/mem0aiDevelopment68.0k2.3k installsUpdated 2d ago
Repository

About mem0

mem0 is a skill for integrating Mem0’s managed memory layer into AI applications, with guidance for its Python and TypeScript client SDKs. It covers memory operations and notes differences between the hosted platform and self-hosted OSS.

Key features

  1. 01Manage user memories through an API
  2. 02Python and TypeScript client SDK guidance
  3. 03Add, search, retrieve, update, and delete memories
  4. 04Async Python client support
  5. 05Hosted platform and OSS guidance

Use cases

  1. 01Retrieve user memories before generating a response
  2. 02Store conversation details as user memories
  3. 03Filter, update, or delete memories by user
  4. 04Integrate the hosted platform or self-hosted version

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/mem0ai/mem0 --skill mem0

After installing, type/mem0in Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

LICENSE
README.md
client/
differences.md
node.md
python.md
references/
api-reference.md
architecture.md
features.md
integration-patterns.md
quickstart.md
sdk-guide.md
use-cases.md
scripts/
mem0_doc_search.py

Details

From the project README

Mem0 Platform Integration

Skill Graph: This skill is part of the Mem0 skill graph:

Mem0 is a managed memory layer for AI applications. It stores, retrieves, and manages user memories via API — no infrastructure to deploy. For self-hosted usage, see the OSS section in the client references below.

Step 1: Install and authenticate

Python:

pip install mem0ai
export MEM0_API_KEY="m0-your-api-key"

TypeScript/JavaScript:

npm install mem0ai
export MEM0_API_KEY="m0-your-api-key"

Get an API key at: https://app.mem0.ai/dashboard/api-keys?utm_source=oss&utm_medium=skill-mem0

Don't have a MEM0_API_KEY? Run mem0 init --agent --agent-caller <your-name> --json (after pip install mem0-cli or npm install -g @mem0/cli), substituting your agent identity (e.g. claude-code, cursor). If you forgot to pass --agent-caller, run mem0 identify <your-name> after init. The human can claim later with mem0 init --email <your-email>.

Step 2: Initialize the client

Python:

from mem0 import MemoryClient
client = MemoryClient(api_key="m0-xxx")

TypeScript:

import MemoryClient from 'mem0ai';
const client = new MemoryClient({ apiKey: 'm0-xxx' });

For async Python, use AsyncMemoryClient.

Step 3: Core operations

Every Mem0 integration follows the same pattern: retrieve → generate → store.

Add memories
messages = [
    {"role": "user", "content": "I'm a vegetarian and allergic to nuts."},
    {"role": "assistant", "content": "Got it! I'll remember that."}
]
client.add(messages, user_id="alice")
Search memories
results = client.search("dietary preferences", filters={"user_id": "alice"})
for mem in results.get("results", []):
    print(mem["memory"])
Get all memories
all_memories = client.get_all(filters={"user_id": "alice"})
Update a memory
client.update("memory-uuid", text="Updated: vegetarian, nut allergy, prefers organic")
Delete a memory
client.delete("memory-uuid")
client.delete_all(user_id="alice")  # delete all for a user

Common integration pattern

from mem0 import MemoryClient
from openai import OpenAI

mem0 = MemoryClient()
openai = OpenAI()

def chat(user_input: str, user_id: str) -> str:
    # 1. Retrieve relevant memories
    memories = mem0.search(user_input, filters={"user_id": user_id})
    context = "\n".join([m["memory"] for m in memories.get("results", [])])

    # 2. Generate response with memory context
    response = openai.chat.completions.create(
        model="gpt-5-mini",
        messages=[
            {"role": "system", "content": f"User context:\n{context}"},
            {"role": "user", "content": user_input},
        ]
    )
    reply = response.choices[0].message.content

    # 3. Store interaction for future context
    mem0.add(
        [{"role": "user", "content": user_input}, {"role": "assistant", "content": reply}],
        user_id=user_id
    )
    return reply

Common edge cases

  • Search returns empty: add() is asynchronous and returns {"event_id": "...", "status": "PENDING"} (eventId on the TS client). Memories are searchable once the event is SUCCEEDED (poll GET /v1/event/{event_id}/, or wait a few seconds). infer=False is synchronous. Also verify user_id matches exactly (case-sensitive) and use filters={"user_id": "..."} syntax.
  • AND filter with user_id + agent_id returns empty: Entities are stored separately. Use OR instead, or query separately.
  • Duplicate memories: Don't mix infer=True (default) and infer=False for the same data. Stick to one mode.
  • Wrong import: For the hosted Platform use from mem0 import MemoryClient (or AsyncMemoryClient for async). from mem0 import Memory is the self-hosted OSS class and does not use MEM0_API_KEY.
  • v3 defaults (Platform): top_k=10, rerank=False. threshold is a server-side cutoff applied before score blending, not a floor on the returned score (the default and 0.0 return the same or nearly the same results). The client sends none of these unless you pass them. The OSS Memory.search() default is top_k=20. Adjust as needed for your use case.

v2 Compatibility

The "v2" line is Python SDK 1.x and TypeScript SDK 2.x. If you are still on it, note these differences from the current SDKs (Python 2.x, TypeScript 3.x):

  • Entity IDs: user_id / agent_id / run_id could be top-level kwargs on search() and get_all(). They now go inside filters (top-level raises an error)
  • Defaults (Platform): threshold=0.3, rerank=False. OSS: top_k=100, no threshold, rerank=True
  • Graph memory: enable_graph=True and relations are gone. Entity linking is built in (see client/python.md for OSS)

See the Platform migration guide and the OSS migration guide for details.

Live documentation search

For the latest docs beyond what's in the references, use the doc search tool:

python ${CLAUDE_SKILL_DIR}/scripts/mem0_doc_search.py --query "topic"
python ${CLAUDE_SKILL_DIR}/scripts/mem0_doc_search.py --page "/platform/features/graph-memory"
python ${CLAUDE_SKILL_DIR}/scripts/mem0_doc_search.py --index

No API key needed — searches docs.mem0.ai directly.

Client SDK References

Language-specific deep references (Platform + OSS):

LanguageFile
Python (MemoryClient + AsyncMemoryClient + Memory OSS)client/python.md
TypeScript/Node.js (MemoryClient + Memory OSS)client/node.md
Python vs TypeScript differencesclient/differences.md

Platform References

Load these on demand for deeper detail:

TopicFile
Quickstart (Python, TS, cURL)references/quickstart.md
SDK guide (all methods, both languages)references/sdk-guide.md
API reference (endpoints, filters, object schema)references/api-reference.md
Architecture (pipeline, lifecycle, scoping, performance)references/architecture.md
Platform features (retrieval, graph, categories, MCP, etc.)references/features.md
Framework integrations (LangChain, CrewAI, OpenAI Agents, etc.)references/integration-patterns.md
Use cases & examples (real-world patterns with code)references/use-cases.md

Related Mem0 Skills

SkillWhen to useLink
mem0-cliTerminal commands, scripting, CI/CD, agent tool loopslocal / GitHub
mem0-vercel-ai-sdkVercel AI SDK provider with automatic memorylocal / GitHub

Comments

Markdown supported