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.
- personal_memory_mcp-0.1.0/PKG-INFO +114 -0
- personal_memory_mcp-0.1.0/README.md +90 -0
- personal_memory_mcp-0.1.0/pyproject.toml +47 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/__init__.py +2 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/__main__.py +4 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/cli/__init__.py +0 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/cli/main.py +461 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/extraction/__init__.py +0 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/extraction/base.py +88 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/extraction/ollama.py +226 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/importeurs/__init__.py +0 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/importeurs/base.py +65 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/importeurs/claude.py +190 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/importeurs/claude_code.py +140 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/importeurs/lecteur.py +273 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/importeurs/openai.py +141 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/mcp/__init__.py +0 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/mcp/server.py +156 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/memory/__init__.py +0 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/memory/deduplication.py +21 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/memory/service.py +285 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/memory/storage.py +662 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/py.typed +0 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/setup/__init__.py +0 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/setup/clients.py +75 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/ui/__init__.py +0 -0
- personal_memory_mcp-0.1.0/src/personal_memory_mcp/ui/index.html +247 -0
- 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"]
|
|
File without changes
|