Why Use Remember?
Session Memory
Store user preferences, conversation context, and state across tool invocations
Encrypted Storage
AES-256-GCM encryption protects sensitive data at rest
Multiple Backends
Redis, Vercel KV, or in-memory storage for different deployment needs
Scoped Storage
Organize data by session, user, tool, or global scope
For tool approval workflows (Claude Code-style permissions), see the Approval Plugin.
Installation
How It Works
Context Extension
The plugin adds
this.remember to all execution contexts (ToolContext, AgentContext, etc.)Scoped Storage
Data is organized by scope (session, user, tool, global) with automatic key prefixing
All stored values are encrypted by default using AES-256-GCM. Keys are derived using HKDF-SHA256 from session and user identifiers.
Quick Start
Basic Setup
Using Memory in Tools
The plugin extends all execution contexts withthis.remember:
Memory Scopes
Memory is organized into four scopes with different visibility and lifetime:| Scope | Description | Use Case |
|---|---|---|
session | Current session only (default) | Temporary state, conversation context |
user | Persists across user sessions | User preferences, settings |
tool | Tied to specific tool + session | Tool-specific cache |
global | Shared across all sessions/users | Application-wide configuration |
Using Scopes
Data Structure
Entry Format
Each stored value is wrapped in an entry with metadata:Branded Payloads
Use brands to categorize stored data semantically:Storage Options
In-Memory (Default)
Best for: Single-instance deployments, development, non-persistent dataRedis (Recommended for Production)
Best for: Multi-instance deployments, persistent memory, productionVercel KV
Best for: Vercel deployments, serverless environmentsGlobal Store
Use the store configuration from@FrontMcp decorator:
Encryption
All stored values are encrypted by default using AES-256-GCM.How Keys Are Derived
- A master secret is derived from
REMEMBER_SECRETenvironment variable (or auto-generated and persisted) - Per-entry keys are derived using HKDF-SHA256 with session/user context as salt
- Each entry gets a unique key based on its scope and identity
Secret Persistence
In development, the plugin automatically generates and persists an encryption secret to.frontmcp/remember-secret.json:
Configuration
API Reference
RememberAccessor Methods
Store a value with optional scope, TTL, and metadata
Retrieve a value with optional default
Retrieve the full entry including metadata, timestamps, and brand
Update an existing value while preserving metadata. Returns
false if key doesn’t exist.Check if a key exists
Delete a key
List keys with optional pattern matching
LLM-Accessible Tools
Enable built-in tools that let the LLM manage memory directly:memory_remember_this, memory_recall, memory_forget, and memory_list_memories.
Best Practices
1. Use Appropriate Scopes
1. Use Appropriate Scopes
- Session: Temporary data, current conversation context
- User: Preferences, settings that should persist
- Tool: Tool-specific cache to avoid scope pollution
- Global: Only for true application-wide settings
2. Set TTLs for Sensitive Data
2. Set TTLs for Sensitive Data
Don’t store sensitive data forever:
3. Use Redis for Production
3. Use Redis for Production
Redis provides:
- Persistence across restarts
- Sharing across multiple server instances
- Better memory management with eviction policies
4. Set REMEMBER_SECRET in Production
4. Set REMEMBER_SECRET in Production
In development, the secret is auto-generated and stored in
.frontmcp/remember-secret.json. Add this file to .gitignore.Complete Example
Links & Resources
Source Code
View the remember plugin source code
Approval Plugin
For tool authorization workflows
Plugin Guide
Learn more about FrontMCP plugins
Cache Plugin
For tool response caching