About r3
r3 is a local persistent-memory MCP server for MCP clients, using embedded Redis and a local vector index without requiring an account or API key. Optional Mem0 sync and entity-graph tools extend its capabilities.
Key features
- 01Local persistent memory
- 02Semantic and keyword search
- 03Import, update, and deduplicate memories
- 04Cache statistics and maintenance
- 05Entity extraction and graph queries
Use cases
- 01Save and retrieve preferences across conversations
- 02Bulk-import and organize existing memories
- 03Explore entity relationships in stored memories
MCP support
It exposes memory management, search, cache, and entity-relation tools to MCP clients over stdio. Optional synchronization uses Mem0 cloud.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @n3wth/r3MEM0_API_KEYSecretOptional Mem0 API key for cloud backup (get free at mem0.ai).REDIS_URLRedis connection URL. Uses embedded Redis if unset.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
14Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| async | boolean | No | Enable background processing. true: returns immediately, indexes async. false: blocks until complete. Default: true. |
| content | string | No | Plain text content to store. Use instead of messages for simple facts. Either content or messages required, not both. |
| user_id | string | No | User namespace for memory isolation. Default: "oliver". Use consistent IDs to retrieve related memories. |
| messages | array | No | Conversation messages to store. Use instead of content for multi-turn context. Each message needs role and content fields. |
| metadata | object | No | Key-value pairs for categorization (e.g., {category: 'preferences', source: 'onboarding'}). Searchable via search_memory. |
| priority | enum | No | Cache priority. high: immediate L1 cache (24h TTL). medium: standard processing. low: L2 cache (7d TTL). Default: medium.high | medium | low |
| skip_duplicate_check | boolean | No | Bypass duplicate detection. Use only when intentionally storing similar content. Default: false. |
Details
From the project READMEr3
Persistent memory for MCP clients (Claude Desktop, Claude Code, Cursor) that runs entirely on your machine, with no accounts, no API keys, and no cloud service required to start.

Quick start
npx @n3wth/r3
That single command starts an MCP server backed by an embedded Redis instance and a local vector index. There is no separate database to install and no signup step.
How it works
MCP client (Claude Desktop / Claude Code / Cursor)
|
v
r3 MCP server (stdio)
|
+----+-----------------------+
| |
embedded Redis vectra local index
(redis-memory-server, (on-disk vector store
auto-downloaded binary, for semantic search,
no external service) no external service)
|
+--- optional ---> Mem0 cloud API (MEM0_API_KEY)
cross-device sync, off by default
- Embedded Redis —
redis-memory-serverdownloads and manages a local Redis binary for you. It stores memory content and metadata. If it cannot start, r3 falls back to an in-process store. - vectra — a local, file-backed vector index used for semantic search. No network calls, no external vector database.
- Mem0 (optional) — if
MEM0_API_KEYis set, r3 also syncs to Mem0's cloud API so memories can follow you across machines. Without a key, nothing leaves your machine.
MCP client configuration
Claude Desktop
Edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"r3": {
"command": "npx",
"args": ["@n3wth/r3"]
}
}
}
Claude Code
claude mcp add r3 "npx @n3wth/r3"
Cursor
Add to .cursor/mcp.json in your project (or the global Cursor MCP config):
{
"mcpServers": {
"r3": {
"command": "npx",
"args": ["@n3wth/r3"]
}
}
}
Restart the client after editing config. In a new conversation:
You: Remember that I prefer TypeScript and dark mode.
AI: I'll remember that.
[new conversation]
You: What are my preferences?
AI: You prefer TypeScript and dark mode.
Tools
| Tool | Description |
|---|---|
add_memory | Store content with optional metadata and priority |
search_memory | Query memories using semantic or keyword search |
get_all_memories | List stored memories with pagination |
get_memory | Retrieve a specific memory by ID |
update_memory | Modify existing memory content or metadata |
delete_memory | Remove a memory |
deduplicate_memories | Find and merge duplicate memories |
cache_stats | Report cache hit rate and storage stats |
sync_status | Report Mem0 cloud sync status |
optimize_cache | Run cache maintenance |
import_memories | Bulk import memories |
Enhanced mode (default, INTELLIGENCE_MODE=enhanced) adds:
| Tool | Description |
|---|---|
extract_entities | Extract named entities from text |
get_knowledge_graph | Return the entity/relationship graph |
find_connections | Find entities connected to a given entity |
Configuration
Environment variables, all optional:
| Variable | Description | Default |
|---|---|---|
REDIS_URL | Use an external Redis instead of the embedded one | embedded server |
MEM0_API_KEY | Enables Mem0 cloud sync | unset (local only) |
MEM0_USER_ID | Namespace for memories | default |
INTELLIGENCE_MODE | enhanced or basic | enhanced |
Example with cloud sync enabled:
{
"mcpServers": {
"r3": {
"command": "npx",
"args": ["@n3wth/r3"],
"env": {
"MEM0_API_KEY": "mem0_..."
}
}
}
}
Comparison
| r3 | mem0 (OSS) | zep | |
|---|---|---|---|
| Runs fully local with zero config | yes (embedded Redis + vectra) | requires a Postgres/vector DB you configure | requires a Postgres instance you configure |
| Needs an API key to try it | no | no (self-hosted) / yes (cloud) | yes (cloud), or self-hosted setup |
| Optional cloud sync | yes, via Mem0 | n/a (is the cloud option) | yes |
This table only reflects setup requirements observed in each project's own documentation, not benchmark performance or feature completeness. Verify against current upstream docs before relying on it.
Known issues
See LAUNCH_AUDIT.md for current limitations, including a native module build failure on some macOS setups.
Documentation
Full documentation at r3.n3wth.com.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.