DeepMemory
DeepMemory MCP is a small Model Context Protocol (MCP) server that provides long-term memory storage for conversational agents.
DeepMemory MCP
Changelog
v1.1.2 — ajout du stockage et des outils "docs" de développement
- Ajout d'un stockage dédié pour les documents de développement (séparé des "memories"). Les docs sont persistés dans une table
docs
distincte afin de garder les mémoires utilisateur inchangées. - Nouvelles types et API provider :
DocEntry
,DocSearchOptions
,DocSearchResult
et extension de l'interfaceBaseProvider
pour supporter les opérations sur les docs (addDoc, searchDocs, getRecentDocs, getAllDocs, deleteDocs, updateDocs). - Implémentation SQLite complète pour les docs dans
SQLiteProvider
: création de la tabledocs
, indexes, CRUD, recherche basique et mise à jour des compteurs d'accès. - Stubs MySQL : méthodes docs présentes dans
MySQLProvider
(throw 'Not implemented') — à implémenter si vous souhaitez activer MySQL pour les docs. - Nouveaux outils MCP exposés :
add_doc
,search_docs
,get_docs
,load_all_docs
,delete_docs
,update_docs
.add_doc
accepte soit uneurl
(le serveur récupère la page et en extrait texte/titre), soit ducontent
brut.
- Utilitaire léger
src/docs_search.ts
: récupération HTTP et extraction simple de texte/titre (implémentation minimale pour éviter d'ajouter des dépendances lourdes). Note : l'implémentation actuelle utilise l'API globalefetch
(Node >=18). Pour une extraction plus robuste, on peut intégrerjsdom
oucheerio
ultérieurement. - Mise à jour de la surface d'API MCP et documentation : nouveaux schémas d'entrée pour les outils docs exposés via ListTools.
Remarques :
- L'implémentation actuelle privilégie une approche simple et sans dépendances externes pour l'extraction HTML. Si vous souhaitez une extraction plus structurée (conserver headings, code blocks, etc.), je peux ajouter
jsdom
/cheerio
et ajusterpackage.json
. - Le stockage des docs est volontairement séparé des memories pour éviter tout mélange des usages et permettre des optimisations spécifiques (indexation, FTS, politique de rétention différente).
v1.1.1 — corrections et améliorations
- Remplacement du package natif
sqlite3
parbetter-sqlite3
pour une maintenance améliorée, de meilleures performances et une meilleure expérience TypeScript. Lepackage.json
a été mis à jour pour utiliserbetter-sqlite3
. - Ajout de l'interface
BaseProvider
(types partagés) : standardise le contrat que doivent implémenter les providers (SQLite, MySQL, etc.) et facilite l'ajout de nouveaux backends. - Ajustements mineurs : mise à jour des providers existants pour implémenter
BaseProvider
et corrections mineures liées à l'initialisation/gestion des providers.
v1.1.0 — nouveautés principales
- Clusters (Details Cluster)
- Nouveaux outils MCP :
create_cluster
,search_clusters
,get_cluster
,add_cluster_detail
,update_cluster
,delete_cluster
,link_memory_to_cluster
,unlink_memory_from_cluster
,get_memories_by_cluster
. - Permet de regrouper des détails structurés (clé/valeur) liés à un sujet et de lier/délier des mémoires aux clusters.
- Nouveaux outils MCP :
- Provider MySQL (optionnel)
- Nouveau provider
MySQLProvider
(basé surmysql2
). - Démarrage en MySQL via le flag CLI
--mysql
et options :--mysql_host
,--mysql_id
,--mysql_pwd
(optionnel pour les bases sans mot de passe),--mysql_db
,--mysql_port
. SQLiteProvider
reste le backend par défaut.
- Nouveau provider
- Abstraction des providers
- Le code accepte désormais un provider injectable au démarrage, facilitant l'ajout de backend supplémentaires.
- Opérations & robustesse
- Queue persistante (
~/.deepmemory/queue.jsonl
) pour accepter les requêtesadd_memory
pendant l'initialisation du stockage. - HTTP fallback local (par défaut
127.0.0.1:6789
) pour health-checks et interactions simples. - Meilleure gestion du démarrage/arrêt et tolérance aux bases anciennes via initialisation robuste.
- Queue persistante (
- Divers
- Améliorations des schémas d'entrée des outils MCP et des options de tri/filtrage.
- Prise en charge explicite des variables d'environnement (MYSQL_*, DEEP_MEMORY_HTTP_PORT).
DeepMemory MCP is a small Model Context Protocol (MCP) server that provides long-term memory storage for conversational agents.
It stores memories locally in an SQLite database by default and exposes a set of MCP tools to add/search/list memories. Optionally, you can start the server using a MySQL backend via CLI flags (see examples below). The server also provides a lightweight HTTP fallback and a persistent queue to accept memory writes while the DB initializes.
Quick overview
- Default storage: SQLite database at
~/.deepmemory/deepmemory.db
- Optional MySQL provider: start with
--mysql
and provide--mysql_host --mysql_id
(password optional) - Queue:
~/.deepmemory/queue.jsonl
(append-only JSONL for queued add_memory requests) - HTTP fallback:
http://127.0.0.1:6789
(configurable viaDEEP_MEMORY_HTTP_PORT
)
Features
- MCP tools to add/search/list/update/delete memories
- Clusters to group structured details and link memories to a subject
- Optional MySQL backend via
MySQLProvider
- Persistent write queue while the DB initializes
- Lightweight HTTP fallback for health-checks and simple interactions
- Cross-platform (Windows / macOS / Linux)
Installation
Requirements
- Node.js >= 18
- npm (or yarn)
Install
git clone cd DeepMemory-MCP npm install
Build
npm run build
Run (dev)
npm run dev
Run (production)
npm start
Usage — choose provider
By default the server uses the built-in SQLite provider. To run against MySQL, pass --mysql
and at minimum --mysql_host
and --mysql_id
(password is optional for servers without a password).
Examples (PowerShell):
Start with default SQLite:
node "./dist/index.js"
Start with MySQL (no password):
node "./dist/index.js" --mysql --mysql_host localhost --mysql_id root --mysql_db deepmemory
Start with MySQL (with password):
node "./dist/index.js" --mysql --mysql_host db.example.com --mysql_id myuser --mysql_pwd mysecret --mysql_db deepmemory --mysql_port 3306
Environment variables supported as alternatives to flags:
- MYSQL_HOST, MYSQL_USER or MYSQL_ID, MYSQL_PASSWORD or MYSQL_PWD, MYSQL_DATABASE, MYSQL_PORT
- DEEP_MEMORY_HTTP_PORT
Usage as an MCP Server
Configure your MCP host (e.g. Jan) to start the server via stdio. Example config snippet:
{ "mcpServers": { "deepmemory-mcp": { "command": "node", "args": ["/path/to/deepmemory-mcp/dist/index.js"], "type": "stdio", "active": true } } }
Tools (MCP) — aperçu
Les outils principaux exposés par le serveur incluent :
- add_memory — ajoute une mémoire (content requis)
- search_memory — recherche avancée avec filtres (tags, context, importance, tri)
- get_memories — récupère les dernières mémoires
- load_all_memory — charge toutes les mémoires
- get_memory_stats — statistique de base
- update_memory / delete_memory — opérations CRUD
- create_cluster / search_clusters / get_cluster / add_cluster_detail / update_cluster / delete_cluster
- link_memory_to_cluster / unlink_memory_from_cluster / get_memories_by_cluster
Consultez les schémas d'entrée des outils (ListTools) pour les détails JSON attendus.
HTTP fallback (quick reference)
Le serveur expose une endpoint HTTP locale pour les vérifications de santé et interactions minimales. Par défaut : 127.0.0.1:6789
. Accepte POST JSON.
Configurez le port via :
- DEEP_MEMORY_HTTP_PORT=12345
Storage details
- Database file (SQLite):
~/.deepmemory/deepmemory.db
- Queue file:
~/.deepmemory/queue.jsonl
Les fichiers sont créés automatiquement dans le répertoire home de l'utilisateur.
Environment variables
- DEEP_MEMORY_HTTP_PORT — port pour le HTTP fallback (par défaut 6789)
- MYSQL_HOST, MYSQL_USER / MYSQL_ID, MYSQL_PASSWORD / MYSQL_PWD, MYSQL_DATABASE, MYSQL_PORT
Development & scripts
- npm run build — compile TypeScript vers
dist/
- npm start — exécute le serveur compilé (node dist/index.js)
- npm run dev — exécute directement depuis la source (tsx)
- npm run clean — supprime
dist/
Troubleshooting
- Permissions d'écriture : vérifier
~/.deepmemory/
et droits sur le home. - Si l'initialisation SQLite échoue : vérifier que la DB n'est pas verrouillée.
- Queue non traitée : le fichier
queue.jsonl
est vidé après traitement ; vérifiez les logs pour erreurs de parsing.
Contributing
Contributions bienvenues. Workflow habituel : fork → branche → PR. Merci d'ajouter des tests pour les nouvelles fonctionnalités.
Licence
MIT — voir LICENSE
.
Authors / Maintainers
- Theorhd (author)
Related Servers
Amela MCP Memory Tool
A local, high-performance memory server for AI agents, built with SQLite, vector embeddings, and a knowledge graph. Packaged for npm and Docker.
Knowledge Graph Memory Server
Enables persistent memory for Claude using a knowledge graph stored in local JSON files.
Supavec MCP Server
Fetch relevant content from Supavec, a vector database service.
MySQL Server
A server for accessing and managing MySQL databases.
Elastic MCP
Interact with an Elasticsearch cluster via the Model Context Protocol (MCP), enabling clients to query, manage, and analyze data.
MCP Alchemy
Explore, query, and analyze SQLAlchemy-compatible databases directly from your desktop.
MCP Simple PubMed
Access PubMed articles through the Entrez API.
Formula 1 MCP Server
Access extensive Formula 1 statistics and information using the FastF1 library and OpenF1 API.
Qdrant
Implement semantic memory layer on top of the Qdrant vector search engine
StarRocks
Interact with StarRocks