MCP Hub
Back to servers

Remembra — AI Memory Layer

Persistent AI memory with hybrid search, entity resolution, and temporal decay.

Registry
Updated
Mar 3, 2026

Quick Install

uvx remembra

Remembra - AI Memory Layer

Persistent memory for AI applications. Self-host in 5 minutes.

PyPI License: MIT Python 3.11+

What Is This?

Remembra is a universal memory layer for LLMs. It solves the fundamental problem that every AI forgets everything between sessions.

from remembra import Memory

memory = Memory(user_id="user_123")

# Store memories
memory.store("User prefers dark mode and works at Acme Corp")

# Recall with context
result = memory.recall("What are user's preferences?")
print(result.context)
# → "User prefers dark mode. Works at Acme Corp."

MCP Server (Claude Code / Cursor)

Remembra ships with a built-in Model Context Protocol server. Any MCP-compatible AI assistant (Claude Code, Claude Desktop, Cursor, etc.) can use it as persistent memory.

Setup

pip install remembra[mcp]

Add to your Claude Code config:

claude mcp add remembra \
  -e REMEMBRA_URL=http://localhost:8787 \
  -e REMEMBRA_API_KEY=your_key \
  -- remembra-mcp

Or add manually to .mcp.json in your project:

{
  "mcpServers": {
    "remembra": {
      "command": "remembra-mcp",
      "env": {
        "REMEMBRA_URL": "http://localhost:8787",
        "REMEMBRA_API_KEY": "your_key"
      }
    }
  }
}

MCP Tools

ToolDescription
store_memorySave facts, decisions, context to persistent memory
recall_memoriesHybrid search (semantic + keyword) across all memories
forget_memoriesGDPR-compliant deletion by ID, entity, or all
health_checkVerify server connection and health

MCP Resources

ResourceDescription
memory://recentLast 10 stored memories
memory://statusServer status and config

Environment Variables

VariableDefaultDescription
REMEMBRA_URLhttp://localhost:8787Remembra server URL
REMEMBRA_API_KEYAPI key for authentication
REMEMBRA_USER_IDdefaultUser ID for memory isolation
REMEMBRA_PROJECTdefaultProject namespace
REMEMBRA_MCP_TRANSPORTstdioTransport: stdio, sse, or streamable-http

Why We're Building This

The Problem

Every AI app needs memory. Developers hack together solutions using vector databases, embeddings, and custom retrieval logic. It's complex, fragmented, and everyone rebuilds the same thing.

Current Solutions Fall Short

  • Mem0: Pricing jumps from $19 to $249, self-hosting is complex
  • Zep: Academic, complex to deploy
  • Letta: Not production-ready
  • LangChain Memory: Too basic, no persistence

Our Approach

  • Self-host in 5 minutes: One Docker command, everything bundled
  • MCP-native: Works with Claude Code and Cursor out of the box
  • Open source core: MIT license, own your data
  • Built for production: Entity resolution, temporal decay, hybrid search

Core Features

Hybrid Search

Vector (semantic) + BM25 (keyword) search combined. Finds memories even when the query doesn't match exact words.

Entity Resolution

Knows that "Adam", "Adam Smith", "Mr. Smith", and "my husband" are the same person. Automatically extracts and links people, organizations, locations, and concepts.

Temporal Awareness

Memories have time context. TTL support. Ebbinghaus-inspired decay curves. Historical ("as of") queries.

Hybrid Storage

Vector (Qdrant) + Graph (relationships) + Relational (SQLite metadata) in one system.

Observability Dashboard

See what's stored, debug retrievals, visualize entity graphs.

Quick Start

1. Start the Server

docker run -d -p 8787:8787 remembra/remembra

2. Install the SDK

Python:

pip install remembra
from remembra import Memory

memory = Memory(
    base_url="http://localhost:8787",
    user_id="user_123",
    project="my_app"
)

# Store
result = memory.store("User's name is John. He's a software engineer at Google.")
print(result.extracted_facts)
# → ["John is a software engineer at Google."]

# Recall
result = memory.recall("Who is the user?")
print(result.context)
# → "John is a software engineer at Google."

# Forget
memory.forget(memory_id=result.memories[0].id)

JavaScript/TypeScript:

npm install @remembra/client
import { Remembra } from '@remembra/client';

const memory = new Remembra({
  url: 'http://localhost:8787',
  apiKey: 'rem_xxx',
});

// Store
const stored = await memory.store('Alice is the CTO of Acme Corp');
console.log(stored.extracted_facts);

// Recall
const result = await memory.recall('Who leads Acme?');
console.log(result.context);
// → "Alice is the CTO of Acme Corp."

// Entities
const entities = await memory.listEntities({ type: 'person' });

API Reference

REST Endpoints

MethodPathDescription
POST/api/v1/memoriesStore a memory
POST/api/v1/memories/recallSearch memories
GET/api/v1/memories/{id}Get specific memory
DELETE/api/v1/memoriesDelete memories
GET/api/v1/entitiesList entities
GET/api/v1/entities/{id}/relationshipsGet entity relationships
GET/api/v1/temporal/decay/reportMemory decay report
POST/api/v1/ingest/changelogIngest changelog
GET/healthServer health check

Full API docs available at http://localhost:8787/docs (Swagger UI).

Documentation

License

MIT License - Use it however you want.


Built by DolphyTech | remembra.dev

Reviews

No reviews yet

Sign in to write a review