Skip to main content
Glama

memory-mcp

πŸ‡·πŸ‡Ί Русская вСрсия

MCP server that gives LLM clients (Open WebUI, Claude Desktop, Cursor, custom bots) access to per-user long-term memory backed by SQLite.

Features

  • 7 tools β€” save, search, list, get, delete memories

  • Per-user isolation β€” each user_id is a separate namespace

  • SQLite β€” single file, no server, no setup

  • HTTP (streamable) and SSE transports β€” works with any MCP client

  • CORS enabled β€” ready for browser-based clients

Related MCP server: agent-memory

Installation

docker pull ghcr.io/dolphin2702/memory-mcp:latest

Run with a local data directory:

docker run -d \
  --name memory-mcp \
  -p 8765:8765 \
  -v $(pwd)/data:/data \
  -e DB_PATH=/data/memory.db \
  ghcr.io/dolphin2702/memory-mcp:latest

From source

git clone git@github.com:dolphin2702/memory-mcp.git
cd memory-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
DB_PATH=./data/memory.db memory-mcp

Configuration

Variable

Default

Description

DB_PATH

/data/memory.db

Path to the SQLite database file

HOST

0.0.0.0

Bind address

PORT

8765

HTTP port

Tools

Tool

Description

add_memories

Save a piece of information for a user

search_memory

Find memories by substring

search_memories

Alias for search_memory

list_memories

List all memories for a user

get_memory

Get a single memory by ID

delete_memories

Delete memories by a list of IDs

delete_all_memories

Delete all memories for a user

Each tool accepts an optional user_id argument (defaults to "default"). The server also reads the X-User-Id HTTP header if user_id is missing.

User IDs

user_id is a free-form string. The convention is up to the client. Common patterns:

  • alice β€” one shared space per person

  • alice and alice_private β€” two independent spaces (e.g. reference facts vs. personal notes)

  • telegram:471375444 β€” namespace per Telegram account

There is no built-in list of users; any string works.

HTTP API

Method

Path

Description

POST

/mcp

Streamable HTTP JSON-RPC

GET

/sse

SSE stream endpoint

POST

/messages?sessionId=...

SSE message channel

GET

/health

Liveness probe

GET

/

Status

POST

/

JSON-RPC (legacy)

Connecting from MCP clients

Open WebUI

  1. Admin Settings β†’ Integrations β†’ Tool Servers

  2. + Add Connection

  3. Type: MCP (Streamable HTTP)

  4. URL: https://mem0.example.com/mcp

  5. Auth: none (or Bearer, if you've configured a reverse proxy)

Claude Desktop / Cursor

{
  "mcpServers": {
    "memory": {
      "type": "streamable",
      "url": "https://mem0.example.com/mcp"
    }
  }
}

curl

curl -s -X POST https://mem0.example.com/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"add_memories","arguments":{"text":"Alice prefers dark mode","user_id":"alice"}}}'

Behind a reverse proxy (nginx)

SSE requires special settings. See the example configuration in the project documentation. Minimum for /sse:

proxy_buffering off;
proxy_read_timeout 24h;
proxy_set_header Connection '';

License

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for zero-config, traceable long-term memory using SQLite, enabling agents to store, search, trace, and monitor memory with tools like memory_store, memory_search, and memory_health.
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides persistent, cooperative memory for LLMs via MCP, with SQLite storage and tools for capturing, recalling, consolidating, crystallizing, and forgetting memories across sessions.
    3
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides persistent, searchable memory for AI agents across any MCP-compatible client, storing project context, user preferences, and session learnings locally in SQLite with tools to save, retrieve, search, and manage them.
    12
    12 npm
    MIT