MemoraEu
About
Personal memory layer for AI assistants. Store, search and recall preferences, decisions and facts — available from any MCP-compatible client.
Details
- Author
- pquattro
- Categories
- AI, Knowledge Base
Jump to
Setup
Install MemoraEu in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/pquattro/memoraeu-server
Follow the installation instructions in the repository README, then restart your MCP client.
MemoraEUdonne à votre IA une mémoire persistante et chiffrée — souveraine, zero-knowledge, hébergée en Europe. Compatible Claude, Cursor, Windsurf, ChatGPT, GitHub Copilot, n8n via MCP. Auto-hébergement gratuit (AGPL v3) oucloud géré EU
MemoraEU est un serveur de mémoire auto-hébergeable pour les assistants IA. Il implémente leModel Context Protocol (MCP)pour que n'importe quel client MCP (Claude, Cursor, Windsurf, ChatGPT, GitHub Copilot, n8n…)
- Recherche sémantiquepropulsée par Qdrant + embeddings (Ollama ou Mistral)
- Multi-utilisateur / multi-orgavec auth JWT
- Transports MCP: Legacy SSE (Cursor, curl) + HTTP Streamable (claude.ai, Copilot, n8n)
- Faits temporelsavec périodes de validité
- Chiffrement zero-knowledgeAES-256-GCM côté client (memoraeu-mcp)
- RGPD natif: endpoints export / suppression / historique intégrés
- Fusion intelligente: détection et merge de mémoires similaires via LLM (Mistral/Ollama)
# Installer le client MCP uvx memoraeu-mcp # Ajouter dans votre config Claude Desktop : # Server URL : https://api.memoraeu.com/mcp/sse # Clé API sur : https://app.memoraeu.com
🏠 Option B — Auto-hébergement (gratuit, AGPL v3)
git clone https://github.com/pquattro/memoraeu-server cd memoraeu-server cp .env.example .env # remplir MEMORAEU_SECRET, MEMORAEU_SALT, MISTRAL_API_KEY docker compose up -d # API disponible sur http://localhost:8000 # Docs : http://localhost:8000/docs # Serveur MCP : http://localhost:8000/mcp/sse
Toute la configuration se fait via variables d'environnement (voir.env.example)
Claude Desktop / Cursor / Windsurf(Legacy SSE)
{ "mcpServers": { "memoraeu": { "url": "http://localhost:8000/mcp/sse", "headers": { "Authorization": "Bearer VOTRE_CLE_API" } } } }
claude.ai(HTTP Streamable, nécessite une URL publique + OAuth) Voir ladocumentation
Mistral AI(connecteurs beta — La Plateforme)
connector = client.beta.connectors.create( name="memoraeu", server="https://api.memoraeu.com/mcp/sse?token=meu-sk-••••", )
⚠️ Beta — discovery et SSE testés, exécution des tools en cours de déploiement par Mistral. ⚠️ Depuis la 1.4.0,POST /mcp/ssen'accepte plus le token en query string. Si votre connecteur utilise le transport HTTP Streamable, passez la clé via l'en-têteAuthorization: Bearer. Le?token=ci-dessus ne reste valable que pour le transport SSE legacy (GET /mcp/sse).
Claude Desktop / Claude Code claude.ai · Cursor · Windsurf · ChatGPT │ │ │ stdio (MCP) memoraeu-mcp (uvx) ▼ │ OAuth 2.0 PKCE memoraeu_mcp/main.py │ │ ▼ ├── Mistral API ←── embeddings locaux api/main.py (FastAPI) │ (avant chiffrement) │ HTTP + Bearer token ├── POST /mcp/sse ← HTTP Streamable │ [contenu chiffré AES-256-GCM + vecteur] ├── GET /mcp/sse ← SSE legacy ▼ ├── /oauth/ ← PKCE api/main.py (FastAPI) ├── Qdrant ← recherche vectorielle ├── SQLite (memories) └── SQLite (facts)
- FastAPI
- Qdrant— base vectorielle (Docker)
- Mistral AI
- MCP
- SQLite — persistance des métadonnées
- AES-256-GCM + PBKDF2-SHA256 (210k itérations)
remember() texte clair → PBKDF2(SECRET, SALT, 210k) → Mistral embed(texte clair) → AES-256-GCM(texte, clé) → POST /memories { blob chiffré, vecteur } ← le serveur ne voit que l'opaque
pip install "memoraeu[mistral]"
Journal admin filtrable par organisation et date :
GET /gdpr/admin/log?org_id=...&date_from=YYYY-MM-DD X-Admin-Key: <MEMORAEU_ADMIN_KEY>
Texte en clair → [LOCAL] Mistral compresse si > 300 caractères → [LOCAL] Mistral génère un vecteur d'embedding → [LOCAL] PBKDF2(SECRET, SALT, 210k itérations) → [LOCAL] AES-256-GCM(texte) → POST /memories { blob chiffré, vecteur } → [SERVEUR] similarité vectorielle → skip si > 94% doublon → [SERVEUR] SQLite ← métadonnées | Qdrant ← vecteur → Le serveur ne voit jamais le texte en clair.
Requête texte (ex. "projet principal") → [LOCAL] Mistral génère le vecteur de la requête → POST /memories/search { vecteur, limit: 3 } → [SERVEUR] Qdrant cosine similarity → top-N blobs chiffrés → [LOCAL] AES-256-GCM déchiffre → texte en clair → Claude reçoit le contexte. Le serveur n'a vu qu'un vecteur.
Le serveur MCP est conçu pour fonctionner sans intervention manuelle. Les descriptions des outilsrecalletrememberinstruisent Claude de les appeler automatiquement —recallau premier message de chaque session,rememberdès qu'une information mérite d'être retenue. Au premierrecall, le system prompt complet est injecté dans le contexte.
git clone https://github.com/pquattro/memoraeu-server cd memoraeu-server python -m venv .venv && source .venv/bin/activate pip install -e . cp .env.example .env # configurer votre .env local uvicorn api.main:app --reload
Gardez les PRs ciblées — une fonctionnalité ou un correctif par PR.
- 🐛Ouvrir une issue
- 💬Démarrer une discussion
- 📖Docs API
- ☁️Essayer le cloud
Domaines où l'aide est la plus utile : SDK JavaScript/TypeScript, app mobile, intégrations MCP supplémentaires, traductions.
Si vous faites tourner une version modifiée en tant que service réseau, vous devez rendre le code source disponible à vos utilisateurs.
MemoraEUgives your AI a persistent, encrypted memory — sovereign, zero-knowledge, hosted in Europe. Works with Claude, Cursor, Windsurf, ChatGPT, GitHub Copilot, n8n via MCP. Self-host for free (AGPL v3) or use themanaged EU cloud
MemoraEU is a self-hostable memory server for AI assistants. It implements theModel Context Protocol (MCP)so any MCP-compatible client (Claude, Cursor, Windsurf, ChatGPT, GitHub Copilot, n8n…)
- Semantic searchpowered by Qdrant + embeddings (Ollama or Mistral)
- Multi-user / multi-orgwith JWT auth
- MCP transports: Legacy SSE (Cursor, curl) + HTTP Streamable (claude.ai, Copilot, n8n)
- Temporal factswith validity periods
- Zero-knowledge encryptionAES-256-GCM client-side (memoraeu-mcp)
- Native GDPR: built-in export / deletion / history endpoints
- Intelligent merge: similar memory detection and LLM-powered merge (Mistral/Ollama)
☁️ Option A — Managed cloud (zero config)
# Install the MCP client uvx memoraeu-mcp # Add to your Claude Desktop config: # Server URL: https://api.memoraeu.com/mcp/sse # Get your API key at: https://app.memoraeu.com
git clone https://github.com/pquattro/memoraeu-server cd memoraeu-server cp .env.example .env # fill MEMORAEU_SECRET, MEMORAEU_SALT, MISTRAL_API_KEY docker compose up -d # API running at http://localhost:8000 # Docs: http://localhost:8000/docs # MCP server: http://localhost:8000/mcp/sse
All configuration is via environment variables (see.env.example)
Claude Desktop / Cursor / Windsurf(Legacy SSE)
{ "mcpServers": { "memoraeu": { "url": "http://localhost:8000/mcp/sse", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } } }
claude.ai(HTTP Streamable, requires public URL + OAuth) Seedocumentation
Mistral AI(beta connectors — La Plateforme)
connector = client.beta.connectors.create( name="memoraeu", server="https://api.memoraeu.com/mcp/sse?token=meu-sk-••••", )
⚠️ Beta — discovery and SSE tested, tool execution being rolled out by Mistral. ⚠️ Since 1.4.0,POST /mcp/sseno longer accepts the token as a query parameter. If your connector uses the HTTP Streamable transport, pass the key via theAuthorization: Bearerheader. The?token=above remains valid only for the legacy SSE transport (GET /mcp/sse).
Claude Desktop / Claude Code claude.ai · Cursor · Windsurf · ChatGPT │ │ │ stdio (MCP) memoraeu-mcp (uvx) ▼ │ OAuth 2.0 PKCE memoraeu_mcp/main.py │ │ ▼ ├── Mistral API ←── local embeddings api/main.py (FastAPI) │ (before encryption) │ HTTP + Bearer token ├── POST /mcp/sse ← HTTP Streamable │ [AES-256-GCM ciphertext + vector] ├── GET /mcp/sse ← SSE legacy ▼ ├── /oauth/ ← PKCE api/main.py (FastAPI) ├── Qdrant ← vector search ├── SQLite (memories) └── SQLite (facts)
- FastAPI
- Qdrant— vector database (Docker)
- Mistral AI
- MCP
- SQLite — metadata persistence
- AES-256-GCM + PBKDF2-SHA256 (210k iterations)
remember() plaintext → PBKDF2(SECRET, SALT, 210k) → Mistral embed(plaintext) → AES-256-GCM(plaintext, key) → POST /memories { ciphertext, vector } ← server only sees opaque blobs
pip install "memoraeu[mistral]"
Filterable admin log by organization and date:
GET /gdpr/admin/log?org_id=...&date_from=YYYY-MM-DD X-Admin-Key: <MEMORAEU_ADMIN_KEY>
Plaintext → [LOCAL] Mistral compresses if > 300 chars → [LOCAL] Mistral generates an embedding vector → [LOCAL] PBKDF2(SECRET, SALT, 210k iterations) → [LOCAL] AES-256-GCM(plaintext) → POST /memories { encrypted blob, vector } → [SERVER] vector similarity check → skip if > 94% duplicate → [SERVER] SQLite ← metadata | Qdrant ← vector → Server never sees plaintext. Ever.
Text query (e.g. "main project") → [LOCAL] Mistral generates query embedding → POST /memories/search { vector, limit: 3 } → [SERVER] Qdrant cosine similarity → top-N encrypted blobs → [LOCAL] AES-256-GCM decrypt → plaintext → Claude receives context. Server only ever saw a vector.
The MCP server is designed to work without manual intervention. Therecallandremembertool descriptions instruct Claude to call them automatically —recallon the first message of each session,rememberwhenever information is worth retaining. On the firstrecallcall, the full behavior system prompt is injected into Claude's context.
git clone https://github.com/pquattro/memoraeu-server cd memoraeu-server python -m venv .venv && source .venv/bin/activate pip install -e . cp .env.example .env # configure your local .env uvicorn api.main:app --reload
Please keep PRs focused — one feature or fix per PR.
- 🐛Open an issue
- 💬Start a discussion
- 📖Read the API docs
- ☁️Try the managed cloud
Areas where help is most welcome: JavaScript/TypeScript SDK, mobile app, additional MCP client integrations, translations.
If you run a modified version as a network service, you must make the source available to your users.
Local Work Model for AI agents that learns from real outcomes.
Auditable, self-improving knowledge & memory for AI agents over MCP — citation-enforced answers and a replayable why-trace, self-hosted on Postgres.
Self-hosted MCP server giving AI agents persistent memory — Markdown source of truth, hybrid BM25+embedding search, typed graph relations.
MCP (Model Context Protocol) server that exposes 70 tools spanning cognitive memory, working memory, sessions, agents, the L0–L3 knowledge hierarchy, orchestration tasks, and training pipelines. The server speaks stdio and is consumed by Claude Desktop, Claude Code, OpenCodex, and any MCP-aware client.
Set up a private AI memory vault in about a minute. No migration, no setup call, no card required.
mem0-mcp-server — exposes Mem0 persistent semantic memory as an MCP HTTP server; supports add/search/read/update/delete operations and semantic search for agent memory.
A living memory that decays, learns, and evolves with your AI.
Hosted MCP memory across Claude Code, Cursor, ChatGPT and any MCP client. Community-hosted instance of the MIT-licensed MemPalace engine. EU-hosted, GDPR-compliant. Free tier with 200 memories.
Long-term memory system for AI agents with semantic search, context management, and multi-format storage.
Persistent AI memory: store, search, and recall knowledge across sessions
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.


