remember
Store a memory with optional category and tags. Use automatically when the user shares preferences, decisions, biographical facts, or durable constraints.
Encrypted persistent memory for assistants, hosted in the EU or self-hosted with Docker — the client encrypts before anything is stored, and two tools do the remembering.
LABSCO SUMMARY
Encrypting on the client before storage is the strong claim here, and it constrains the design honestly: embeddings are computed locally before encryption, so semantic search still works while the server holds only ciphertext. The other well-judged piece is that the tool descriptions themselves instruct the assistant when to call them — memory that depends on a user remembering to say 'remember this' does not get used. Self-hosting is a real deployment with a vector database attached, not a single binary.
A self-hostable memory server for AI assistants, with a managed EU-hosted option. Memories are searched semantically through a vector database, scoped per user and organisation behind JWT auth, and encrypted client-side so the server holds ciphertext. It speaks both legacy SSE and HTTP Streamable, so it reaches desktop clients and browser-based ones alike.
recall on the first message of each session, and remember whenever something is worth retaining — on the first recall, the behaviour prompt is injected into the assistant's contextFor the managed option: the uvx memoraeu-mcp client, configured with your MemoraEU API key, login password and encryption salt from app.memoraeu.com (a Mistral key is optional, for local embeddings). Pointing a client straight at the hosted SSE URL needs only the API key, but the server then sees plaintext. To self-host: Docker Compose, with .env carrying at minimum a JWT secret of 32 characters or more, plus the encryption secret and salt and — if you embed through Mistral rather than local Ollama — a Mistral API key. The API comes up on port 8000 with docs at /docs and MCP at /mcp/sse. One setting will otherwise bite you: if you expose the server on a domain, add it to the allowed-hosts list or requests are rejected with a 421. Since version 1.4.0, HTTP Streamable no longer accepts the token in the query string — use the Authorization: Bearer header. Python 3.11+, AGPL v3.
One command plus a key — uvx memoraeu-mcp, then supply credentials
USE CASES
The recall tool fires at the start of a session and the remember tool when something is worth keeping, so continuity does not depend on you prompting for it.
Bring it up with Docker Compose, point Qdrant and the embeddings at your own machines, and hold the encryption secret yourself.
Connect desktop clients over legacy SSE and browser-based ones over HTTP Streamable against the same store.
Use the built-in export, deletion and history endpoints instead of writing that plumbing yourself.
Listed in project code.
rememberStore a memory with optional category and tags. Use automatically when the user shares preferences, decisions, biographical facts, or durable constraints.
recallSemantic search through memories in natural language. Call automatically on the first message of each conversation.
forgetDelete a memory by its ID.
list_memoriesList recent memories with optional category filter.
list_categoriesReturn existing categories sorted by usage.
remember_factStore a structured fact (subject/predicate/object) with temporal validity. Auto-invalidates the previous value on the same (subject, predicate).
recall_factsRetrieve active facts for a subject. Supports full history with history=true.
invalidate_factMark a fact as expired by its ID.
searchSearch memories by natural language query. Returns a list of relevant memories with scores. Used by ChatGPT Deep Research mode.
fetchFetch a specific memory by its ID. Used by ChatGPT Deep Research mode to retrieve full memory content.
BEFORE YOU INSTALL
10 tools registered in the project's code.
MISTRAL_API_KEY in your environment
Of the 3 documented clients, 1 runs the server on your machine and 2 connect to a hosted endpoint.
CONTEXT COST
Rated by the size of the 10 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
uvx memoraeu-mcphttps://api.memoraeu.com/mcp/sseAdd this hosted endpoint to your MCP client using the credentials listed under Requirements.
{
"mcpServers": {
"memoraeu": {
"command": "uvx",
"args": [
"memoraeu-mcp"
],
"env": {
"MEMORAEU_API_URL": "https://api.memoraeu.com",
"MEMORAEU_API_KEY": "<YOUR_MEMORAEU_API_KEY>",
"MEMORAEU_SECRET": "<YOUR_MEMORAEU_SECRET>",
"MEMORAEU_SALT": "<YOUR_MEMORAEU_SALT>",
"MISTRAL_API_KEY": "<YOUR_MISTRAL_API_KEY>"
}
}
}
}Sign up at app.memoraeu.com. MEMORAEU_API_KEY comes from Settings → API Keys, MEMORAEU_SALT from Settings → Encryption Keys, and MEMORAEU_SECRET is your MemoraEU login password. MISTRAL_API_KEY (console.mistral.ai) computes embeddings locally; without it recall falls back to keyword search.
{
"mcpServers": {
"memoraeu": {
"type": "sse",
"url": "https://api.memoraeu.com/mcp/sse",
"headers": {
"Authorization": "Bearer <YOUR_MEMORAEU_API_KEY>"
}
}
}
}<YOUR_MEMORAEU_API_KEY> is your API key from app.memoraeu.com (Settings → API Keys). In this remote mode the server handles plaintext — content is not zero-knowledge encrypted; use the uvx setup for that.
{
"mcpServers": {
"memoraeu": {
"type": "sse",
"serverUrl": "https://api.memoraeu.com/mcp/sse",
"headers": {
"Authorization": "Bearer <YOUR_MEMORAEU_API_KEY>"
}
}
}
}<YOUR_MEMORAEU_API_KEY> is your API key from app.memoraeu.com (Settings → API Keys). In this remote mode the server handles plaintext — content is not zero-knowledge encrypted; use the uvx setup for that.