personal-memory-mcp 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. personal_memory_mcp-0.1.0/PKG-INFO +114 -0
  2. personal_memory_mcp-0.1.0/README.md +90 -0
  3. personal_memory_mcp-0.1.0/pyproject.toml +47 -0
  4. personal_memory_mcp-0.1.0/src/personal_memory_mcp/__init__.py +2 -0
  5. personal_memory_mcp-0.1.0/src/personal_memory_mcp/__main__.py +4 -0
  6. personal_memory_mcp-0.1.0/src/personal_memory_mcp/cli/__init__.py +0 -0
  7. personal_memory_mcp-0.1.0/src/personal_memory_mcp/cli/main.py +461 -0
  8. personal_memory_mcp-0.1.0/src/personal_memory_mcp/extraction/__init__.py +0 -0
  9. personal_memory_mcp-0.1.0/src/personal_memory_mcp/extraction/base.py +88 -0
  10. personal_memory_mcp-0.1.0/src/personal_memory_mcp/extraction/ollama.py +226 -0
  11. personal_memory_mcp-0.1.0/src/personal_memory_mcp/importeurs/__init__.py +0 -0
  12. personal_memory_mcp-0.1.0/src/personal_memory_mcp/importeurs/base.py +65 -0
  13. personal_memory_mcp-0.1.0/src/personal_memory_mcp/importeurs/claude.py +190 -0
  14. personal_memory_mcp-0.1.0/src/personal_memory_mcp/importeurs/claude_code.py +140 -0
  15. personal_memory_mcp-0.1.0/src/personal_memory_mcp/importeurs/lecteur.py +273 -0
  16. personal_memory_mcp-0.1.0/src/personal_memory_mcp/importeurs/openai.py +141 -0
  17. personal_memory_mcp-0.1.0/src/personal_memory_mcp/mcp/__init__.py +0 -0
  18. personal_memory_mcp-0.1.0/src/personal_memory_mcp/mcp/server.py +156 -0
  19. personal_memory_mcp-0.1.0/src/personal_memory_mcp/memory/__init__.py +0 -0
  20. personal_memory_mcp-0.1.0/src/personal_memory_mcp/memory/deduplication.py +21 -0
  21. personal_memory_mcp-0.1.0/src/personal_memory_mcp/memory/service.py +285 -0
  22. personal_memory_mcp-0.1.0/src/personal_memory_mcp/memory/storage.py +662 -0
  23. personal_memory_mcp-0.1.0/src/personal_memory_mcp/py.typed +0 -0
  24. personal_memory_mcp-0.1.0/src/personal_memory_mcp/setup/__init__.py +0 -0
  25. personal_memory_mcp-0.1.0/src/personal_memory_mcp/setup/clients.py +75 -0
  26. personal_memory_mcp-0.1.0/src/personal_memory_mcp/ui/__init__.py +0 -0
  27. personal_memory_mcp-0.1.0/src/personal_memory_mcp/ui/index.html +247 -0
  28. personal_memory_mcp-0.1.0/src/personal_memory_mcp/ui/serveur.py +80 -0
@@ -0,0 +1,114 @@
1
+ Metadata-Version: 2.3
2
+ Name: personal-memory-mcp
3
+ Version: 0.1.0
4
+ Summary: Serveur MCP local — mémoire personnelle extraite depuis les historiques IA
5
+ Keywords: mcp,memory,llm,ollama,sqlite,claude,ai
6
+ Author: Sébastien Etievant
7
+ Author-email: Sébastien Etievant <etievant.sebastien@protonmail.com>
8
+ License: MIT
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.13
13
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
14
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
15
+ Requires-Dist: mcp[cli]>=1.27.1
16
+ Requires-Dist: sqlite-vec>=0.1.7
17
+ Requires-Dist: typer>=0.25.1
18
+ Requires-Dist: rich>=14.0.0
19
+ Requires-Dist: httpx>=0.28.0
20
+ Requires-Dist: tomli-w>=1.2.0
21
+ Requires-Dist: anthropic>=0.102.0
22
+ Requires-Python: >=3.13
23
+ Description-Content-Type: text/markdown
24
+
25
+ # personal-memory-mcp
26
+
27
+ Serveur MCP local qui extrait des faits mémorisables depuis vos historiques de conversations IA et les expose à tous les clients MCP compatibles (Claude Code, Claude Desktop, Cursor…).
28
+
29
+ ## Fonctionnement
30
+
31
+ ```
32
+ Historiques IA → extraction LLM → SQLite + sqlite-vec → outils MCP
33
+ ```
34
+
35
+ Les faits sont stockés localement dans `~/.personal-memory/memory.db`. Aucun cloud, aucune API externe — tout tourne sur votre machine via Ollama.
36
+
37
+ ## Installation
38
+
39
+ ```bash
40
+ pip install personal-memory-mcp
41
+ ```
42
+
43
+ Prérequis : Python 3.13+, [Ollama](https://ollama.com) avec les modèles :
44
+
45
+ ```bash
46
+ ollama pull qwen3:1.7b
47
+ ollama pull qwen3-embedding:0.6b
48
+ ```
49
+
50
+ ## Démarrage rapide
51
+
52
+ ```bash
53
+ # Lancer le serveur MCP
54
+ mmcp serve
55
+
56
+ # Configurer automatiquement les clients MCP détectés
57
+ mmcp setup
58
+
59
+ # Importer vos sessions Claude Code
60
+ mmcp import claude-code
61
+
62
+ # Importer un export Claude (ZIP)
63
+ mmcp import claude ~/Downloads/export.zip
64
+
65
+ # Importer un export ChatGPT (ZIP)
66
+ mmcp import chatgpt ~/Downloads/export.zip
67
+
68
+ # Interface web locale
69
+ mmcp ui
70
+ ```
71
+
72
+ ## Outils MCP
73
+
74
+ | Outil | Description |
75
+ |---|---|
76
+ | `search(query)` | Recherche hybride (vectorielle + BM25) |
77
+ | `add(contenu, categorie)` | Ajoute un fait avec déduplication automatique |
78
+ | `list_facts(page, categorie)` | Liste paginée des faits |
79
+ | `delete(id)` | Supprime un fait |
80
+ | `import_source(type, chemin)` | Déclenche un import |
81
+ | `import_conversations(source, page)` | Expose les conversations brutes pour analyse par l'IA |
82
+
83
+ ## Configuration Claude Code
84
+
85
+ ```bash
86
+ claude mcp add -s user personal-memory -- mmcp serve
87
+ ```
88
+
89
+ ## Commandes CLI
90
+
91
+ ```bash
92
+ mmcp serve # Lance le serveur MCP
93
+ mmcp ui # Interface web http://localhost:8766
94
+ mmcp import claude-code # Import sessions Claude Code
95
+ mmcp import claude <zip> # Import export Claude
96
+ mmcp import chatgpt <zip> # Import export ChatGPT
97
+ mmcp export # Export JSON/CSV
98
+ mmcp backup # Sauvegarde SQLite
99
+ mmcp restore # Restauration
100
+ mmcp migrate-embeddings # Migration de modèle d'embedding
101
+ mmcp status # État du serveur et de la base
102
+ ```
103
+
104
+ ## Stack technique
105
+
106
+ - Python 3.13 + [uv](https://github.com/astral-sh/uv)
107
+ - [MCP SDK Anthropic](https://github.com/anthropics/python-sdk)
108
+ - SQLite + [sqlite-vec](https://github.com/asg017/sqlite-vec) (stockage vectoriel + FTS5)
109
+ - Ollama : `qwen3-embedding:0.6b` (embeddings) + `qwen3:1.7b` (extraction)
110
+ - Recherche hybride : cosinus vectoriel + BM25 fallback
111
+
112
+ ## Licence
113
+
114
+ MIT
@@ -0,0 +1,90 @@
1
+ # personal-memory-mcp
2
+
3
+ Serveur MCP local qui extrait des faits mémorisables depuis vos historiques de conversations IA et les expose à tous les clients MCP compatibles (Claude Code, Claude Desktop, Cursor…).
4
+
5
+ ## Fonctionnement
6
+
7
+ ```
8
+ Historiques IA → extraction LLM → SQLite + sqlite-vec → outils MCP
9
+ ```
10
+
11
+ Les faits sont stockés localement dans `~/.personal-memory/memory.db`. Aucun cloud, aucune API externe — tout tourne sur votre machine via Ollama.
12
+
13
+ ## Installation
14
+
15
+ ```bash
16
+ pip install personal-memory-mcp
17
+ ```
18
+
19
+ Prérequis : Python 3.13+, [Ollama](https://ollama.com) avec les modèles :
20
+
21
+ ```bash
22
+ ollama pull qwen3:1.7b
23
+ ollama pull qwen3-embedding:0.6b
24
+ ```
25
+
26
+ ## Démarrage rapide
27
+
28
+ ```bash
29
+ # Lancer le serveur MCP
30
+ mmcp serve
31
+
32
+ # Configurer automatiquement les clients MCP détectés
33
+ mmcp setup
34
+
35
+ # Importer vos sessions Claude Code
36
+ mmcp import claude-code
37
+
38
+ # Importer un export Claude (ZIP)
39
+ mmcp import claude ~/Downloads/export.zip
40
+
41
+ # Importer un export ChatGPT (ZIP)
42
+ mmcp import chatgpt ~/Downloads/export.zip
43
+
44
+ # Interface web locale
45
+ mmcp ui
46
+ ```
47
+
48
+ ## Outils MCP
49
+
50
+ | Outil | Description |
51
+ |---|---|
52
+ | `search(query)` | Recherche hybride (vectorielle + BM25) |
53
+ | `add(contenu, categorie)` | Ajoute un fait avec déduplication automatique |
54
+ | `list_facts(page, categorie)` | Liste paginée des faits |
55
+ | `delete(id)` | Supprime un fait |
56
+ | `import_source(type, chemin)` | Déclenche un import |
57
+ | `import_conversations(source, page)` | Expose les conversations brutes pour analyse par l'IA |
58
+
59
+ ## Configuration Claude Code
60
+
61
+ ```bash
62
+ claude mcp add -s user personal-memory -- mmcp serve
63
+ ```
64
+
65
+ ## Commandes CLI
66
+
67
+ ```bash
68
+ mmcp serve # Lance le serveur MCP
69
+ mmcp ui # Interface web http://localhost:8766
70
+ mmcp import claude-code # Import sessions Claude Code
71
+ mmcp import claude <zip> # Import export Claude
72
+ mmcp import chatgpt <zip> # Import export ChatGPT
73
+ mmcp export # Export JSON/CSV
74
+ mmcp backup # Sauvegarde SQLite
75
+ mmcp restore # Restauration
76
+ mmcp migrate-embeddings # Migration de modèle d'embedding
77
+ mmcp status # État du serveur et de la base
78
+ ```
79
+
80
+ ## Stack technique
81
+
82
+ - Python 3.13 + [uv](https://github.com/astral-sh/uv)
83
+ - [MCP SDK Anthropic](https://github.com/anthropics/python-sdk)
84
+ - SQLite + [sqlite-vec](https://github.com/asg017/sqlite-vec) (stockage vectoriel + FTS5)
85
+ - Ollama : `qwen3-embedding:0.6b` (embeddings) + `qwen3:1.7b` (extraction)
86
+ - Recherche hybride : cosinus vectoriel + BM25 fallback
87
+
88
+ ## Licence
89
+
90
+ MIT
@@ -0,0 +1,47 @@
1
+ [project]
2
+ name = "personal-memory-mcp"
3
+ version = "0.1.0"
4
+ description = "Serveur MCP local — mémoire personnelle extraite depuis les historiques IA"
5
+ readme = "README.md"
6
+ license = { text = "MIT" }
7
+ authors = [
8
+ { name = "Sébastien Etievant", email = "etievant.sebastien@protonmail.com" }
9
+ ]
10
+ keywords = ["mcp", "memory", "llm", "ollama", "sqlite", "claude", "ai"]
11
+ classifiers = [
12
+ "Development Status :: 4 - Beta",
13
+ "Intended Audience :: Developers",
14
+ "Programming Language :: Python :: 3",
15
+ "Programming Language :: Python :: 3.13",
16
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
17
+ "Topic :: Software Development :: Libraries :: Python Modules",
18
+ ]
19
+ requires-python = ">=3.13"
20
+ dependencies = [
21
+ "mcp[cli]>=1.27.1",
22
+ "sqlite-vec>=0.1.7",
23
+ "typer>=0.25.1",
24
+ "rich>=14.0.0",
25
+ "httpx>=0.28.0",
26
+ "tomli-w>=1.2.0",
27
+ "anthropic>=0.102.0",
28
+ ]
29
+
30
+ [project.scripts]
31
+ mmcp = "personal_memory_mcp.cli.main:app"
32
+
33
+ [build-system]
34
+ requires = ["uv_build>=0.11.2,<0.12.0"]
35
+ build-backend = "uv_build"
36
+
37
+ [dependency-groups]
38
+ dev = [
39
+ "pytest>=8.0.0",
40
+ "pytest-asyncio>=0.25.0",
41
+ "anthropic>=0.97.0",
42
+ "playwright>=1.59.0",
43
+ ]
44
+
45
+ [tool.pytest.ini_options]
46
+ testpaths = ["tests"]
47
+ pythonpath = ["src"]
@@ -0,0 +1,2 @@
1
+ def hello() -> str:
2
+ return "Hello from personal-memory-mcp!"
@@ -0,0 +1,4 @@
1
+ from personal_memory_mcp.cli.main import app
2
+
3
+ if __name__ == "__main__":
4
+ app()