@whenmoon-afk/memory-mcp 2.2.2 → 2.4.0
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.
- package/README.md +94 -415
- package/dist/database/driver-factory.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +24 -17
- package/dist/index.js.map +1 -1
- package/dist/tools/memory-forget.d.ts +1 -1
- package/dist/tools/memory-forget.d.ts.map +1 -1
- package/dist/tools/memory-forget.js +1 -1
- package/dist/tools/memory-forget.js.map +1 -1
- package/dist/tools/memory-recall.d.ts +1 -1
- package/dist/tools/memory-recall.d.ts.map +1 -1
- package/dist/tools/memory-recall.js +1 -1
- package/dist/tools/memory-recall.js.map +1 -1
- package/dist/tools/memory-store.d.ts +1 -1
- package/dist/tools/memory-store.d.ts.map +1 -1
- package/dist/tools/memory-store.js +3 -3
- package/dist/tools/memory-store.js.map +1 -1
- package/install.js +14 -18
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,512 +1,191 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Memory MCP
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@whenmoon-afk/memory-mcp)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](https://nodejs.org/)
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
A lightweight, **zero-cloud**, **token-efficient** Model Context Protocol (MCP) server that gives your AI **durable, searchable, and context-aware memory** - entirely under your control.
|
|
6
|
+
Local, persistent memory for Claude Desktop and MCP-compatible AI assistants.
|
|
9
7
|
|
|
10
|
-
|
|
8
|
+
A lightweight MCP server that gives your AI durable, searchable memory — entirely on your machine. Built with TypeScript, SQLite + FTS5, and minimal dependencies.
|
|
11
9
|
|
|
12
|
-
|
|
10
|
+
## Quick Start
|
|
13
11
|
|
|
14
|
-
|
|
12
|
+
Choose your installation method below based on your platform and preference.
|
|
15
13
|
|
|
16
|
-
|
|
14
|
+
### Option 1: Direct from GitHub (Always Latest)
|
|
17
15
|
|
|
18
|
-
|
|
16
|
+
This method fetches directly from GitHub, bypassing npm cache issues.
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
|-----------|----------------|
|
|
22
|
-
| Data never leaves your machine | Sent to remote servers |
|
|
23
|
-
| Portable `.db` file | Locked in proprietary storage |
|
|
24
|
-
| Full audit & backup | Opaque retention policies |
|
|
25
|
-
| Zero recurring cost | Subscription required |
|
|
18
|
+
**macOS / Linux:**
|
|
26
19
|
|
|
27
|
-
|
|
20
|
+
Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS, `~/.config/Claude/claude_desktop_config.json` on Linux):
|
|
28
21
|
|
|
29
|
-
## Features
|
|
30
|
-
|
|
31
|
-
| Feature | Benefit |
|
|
32
|
-
|-------|--------|
|
|
33
|
-
| **Dual-Response Pattern** | Returns *all* matches (compact index) + full *details* within token budget |
|
|
34
|
-
| **Token Budgeting** | Auto-respects `max_tokens` (~30% index, ~70% details) |
|
|
35
|
-
| **Hybrid Relevance Scoring** | 40% relevance, 30% importance, 20% recency, 10% frequency |
|
|
36
|
-
| **Auto-Summarization** | Generates ≤20-word natural-language summaries |
|
|
37
|
-
| **Entity Extraction** | Detects people, tools, concepts, preferences |
|
|
38
|
-
| **FTS5 Full-Text Search** | Sub-10ms queries, Unicode, stemming — no embeddings |
|
|
39
|
-
| **Provenance Tracking** | Full audit trail: source, timestamp, updates |
|
|
40
|
-
| **Soft Deletes** | Memories preserved for debugging/rollback |
|
|
41
|
-
| **Single-File DB** | `memory.db` — copy, backup, move freely |
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
## Installation
|
|
46
|
-
|
|
47
|
-
### Prerequisites
|
|
48
|
-
- Node.js ≥ 18
|
|
49
|
-
- An **MCP-compatible client** (Claude Desktop, Cursor, Windsurf, etc.)
|
|
50
|
-
|
|
51
|
-
### Option 1: NPM Package with Auto-Setup (Recommended)
|
|
52
|
-
|
|
53
|
-
**Automatic installation** (configures Claude Desktop for you):
|
|
54
|
-
```bash
|
|
55
|
-
npx @whenmoon-afk/memory-mcp
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
This will automatically:
|
|
59
|
-
- Detect your operating system (macOS/Windows/Linux)
|
|
60
|
-
- Add the memory server to your Claude Desktop configuration
|
|
61
|
-
- Create a backup of your existing config
|
|
62
|
-
- Configure the correct command format for your platform
|
|
63
|
-
|
|
64
|
-
After installation, **restart Claude Desktop completely** (quit and reopen).
|
|
65
|
-
|
|
66
|
-
**Or install globally**:
|
|
67
|
-
```bash
|
|
68
|
-
npm install -g @whenmoon-afk/memory-mcp
|
|
69
|
-
memory-mcp
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### Option 2: From Source
|
|
73
|
-
|
|
74
|
-
For development or customization:
|
|
75
|
-
```bash
|
|
76
|
-
git clone https://github.com/WhenMoon-afk/claude-memory-mcp.git
|
|
77
|
-
cd claude-memory-mcp
|
|
78
|
-
npm install
|
|
79
|
-
npm run build
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
> Output: `dist/index.js` — your memory server.
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
### Claude Code Installation
|
|
87
|
-
|
|
88
|
-
For users of Claude Code (terminal-based Claude), use the `claude mcp add` command:
|
|
89
|
-
|
|
90
|
-
**Recommended (user-wide installation):**
|
|
91
|
-
```bash
|
|
92
|
-
claude mcp add memory --scope user -- npx -y @whenmoon-afk/memory-mcp
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
**Alternative (direct node invocation, more reliable, no npx):**
|
|
96
|
-
```bash
|
|
97
|
-
npm install -g @whenmoon-afk/memory-mcp
|
|
98
|
-
claude mcp add memory --scope user -- node $(npm root -g)/@whenmoon-afk/memory-mcp/dist/index.js
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
**Per-Project Memory (project-specific, stored in project directory):**
|
|
102
|
-
```bash
|
|
103
|
-
claude mcp add memory -s local -e MEMORY_DB_PATH=./memory.db -- npx -y @whenmoon-afk/memory-mcp
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
**Verify installation:**
|
|
107
|
-
```bash
|
|
108
|
-
claude mcp list
|
|
109
|
-
# Or within a Claude Code session:
|
|
110
|
-
/mcp
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
> **Note:** The server automatically uses platform-appropriate database location. Both Claude Desktop and Claude Code will share the same memory database by default.
|
|
114
|
-
|
|
115
|
-
> **Tip:** Use `--scope user` for personal knowledge that spans projects. Use `--scope local` with `MEMORY_DB_PATH=./memory.db` for codebase-specific context that stays with the repository.
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## Docker Deployment
|
|
120
|
-
|
|
121
|
-
Run the Memory MCP server in a containerized environment with persistent storage.
|
|
122
|
-
|
|
123
|
-
### Prerequisites
|
|
124
|
-
- Docker installed ([Get Docker](https://docs.docker.com/get-docker/))
|
|
125
|
-
- Docker Compose (included with Docker Desktop)
|
|
126
|
-
|
|
127
|
-
### Quick Start with Docker Compose
|
|
128
|
-
|
|
129
|
-
**1. Clone the repository:**
|
|
130
|
-
```bash
|
|
131
|
-
git clone https://github.com/WhenMoon-afk/claude-memory-mcp.git
|
|
132
|
-
cd claude-memory-mcp
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
**2. Start the container:**
|
|
136
|
-
```bash
|
|
137
|
-
docker-compose up -d
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
This will:
|
|
141
|
-
- Build the Docker image with Node.js 20
|
|
142
|
-
- Create a persistent volume at `./data/` for the database
|
|
143
|
-
- Start the MCP server in detached mode
|
|
144
|
-
|
|
145
|
-
**3. View logs:**
|
|
146
|
-
```bash
|
|
147
|
-
docker-compose logs -f memory-mcp
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
**4. Stop the container:**
|
|
151
|
-
```bash
|
|
152
|
-
docker-compose down
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
### Manual Docker Build
|
|
156
|
-
|
|
157
|
-
**Build the image:**
|
|
158
|
-
```bash
|
|
159
|
-
docker build -t memory-mcp:latest .
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
**Run the container:**
|
|
163
|
-
```bash
|
|
164
|
-
# Create data directory
|
|
165
|
-
mkdir -p ./data
|
|
166
|
-
|
|
167
|
-
# Run container with volume mount
|
|
168
|
-
docker run -d \
|
|
169
|
-
--name memory-mcp \
|
|
170
|
-
-v "$(pwd)/data:/data" \
|
|
171
|
-
-e MEMORY_DB_PATH=/data/memory.db \
|
|
172
|
-
-e DEFAULT_TTL_DAYS=90 \
|
|
173
|
-
memory-mcp:latest
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
**Interact with the running container:**
|
|
177
|
-
```bash
|
|
178
|
-
# View logs
|
|
179
|
-
docker logs -f memory-mcp
|
|
180
|
-
|
|
181
|
-
# Execute commands inside container
|
|
182
|
-
docker exec -it memory-mcp /bin/bash
|
|
183
|
-
|
|
184
|
-
# Stop container
|
|
185
|
-
docker stop memory-mcp
|
|
186
|
-
|
|
187
|
-
# Remove container
|
|
188
|
-
docker rm memory-mcp
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
### Volume Persistence
|
|
192
|
-
|
|
193
|
-
The database is stored in a Docker volume mapped to `./data/` on your host:
|
|
194
|
-
|
|
195
|
-
| Location | Path |
|
|
196
|
-
|----------|------|
|
|
197
|
-
| **Host** | `./data/memory.db` |
|
|
198
|
-
| **Container** | `/data/memory.db` |
|
|
199
|
-
|
|
200
|
-
**To backup your database:**
|
|
201
|
-
```bash
|
|
202
|
-
cp ./data/memory.db ./memory-backup-$(date +%Y%m%d).db
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
**To restore from backup:**
|
|
206
|
-
```bash
|
|
207
|
-
cp ./memory-backup-20250105.db ./data/memory.db
|
|
208
|
-
docker-compose restart
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
### Environment Variables (Docker)
|
|
212
|
-
|
|
213
|
-
Configure via `docker-compose.yml` or `-e` flags:
|
|
214
|
-
|
|
215
|
-
| Variable | Default | Description |
|
|
216
|
-
|----------|---------|-------------|
|
|
217
|
-
| `MEMORY_DB_PATH` | `/data/memory.db` | Database file location inside container |
|
|
218
|
-
| `DEFAULT_TTL_DAYS` | `90` | Default memory expiration (days) |
|
|
219
|
-
| `MEMORY_DB_DRIVER` | `better-sqlite3` | Database driver (better-sqlite3 or sqljs) |
|
|
220
|
-
| `NODE_ENV` | `production` | Node environment |
|
|
221
|
-
|
|
222
|
-
### Docker Notes
|
|
223
|
-
|
|
224
|
-
- **No HTTP Port**: This is a stdio-based MCP server. Communication happens via stdin/stdout, not HTTP requests.
|
|
225
|
-
- **Native Dependencies**: Uses multi-stage build to compile better-sqlite3 native bindings
|
|
226
|
-
- **Resource Limits**: Default docker-compose.yml sets 512MB memory limit (adjustable)
|
|
227
|
-
- **Auto-restart**: Container restarts automatically unless explicitly stopped
|
|
228
|
-
|
|
229
|
-
### Using with MCP Clients
|
|
230
|
-
|
|
231
|
-
When running in Docker, you'll need to configure your MCP client to communicate with the containerized server. The exact method depends on your client:
|
|
232
|
-
|
|
233
|
-
- **For local development**: Use `docker exec` to run commands
|
|
234
|
-
- **For production**: Consider using a container orchestration platform (Kubernetes, ECS, etc.)
|
|
235
|
-
|
|
236
|
-
> **Tip**: For most use cases, the **NPM package installation** (Option 1) is simpler and more suitable than Docker, since MCP servers typically run locally and communicate directly with the AI client via stdio.
|
|
237
|
-
|
|
238
|
-
---
|
|
239
|
-
|
|
240
|
-
## Integrate with Your MCP Client
|
|
241
|
-
|
|
242
|
-
Add to your client's MCP config file:
|
|
243
|
-
|
|
244
|
-
**Claude Desktop**:
|
|
245
|
-
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
246
|
-
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
247
|
-
- Linux: `~/.config/Claude/claude_desktop_config.json`
|
|
248
|
-
|
|
249
|
-
**Cursor/Windsurf**: Check your editor's MCP settings
|
|
250
|
-
|
|
251
|
-
> **💡 Recommended**: Use the automatic installer (`npx @whenmoon-afk/memory-mcp`) which handles platform differences automatically.
|
|
252
|
-
|
|
253
|
-
### Manual Configuration (macOS/Linux)
|
|
254
22
|
```json
|
|
255
23
|
{
|
|
256
24
|
"mcpServers": {
|
|
257
25
|
"memory": {
|
|
258
26
|
"command": "npx",
|
|
259
|
-
"args": ["-y", "
|
|
260
|
-
"env": {
|
|
261
|
-
"MEMORY_DB_PATH": "./memory.db"
|
|
262
|
-
}
|
|
27
|
+
"args": ["-y", "github:whenmoon-afk/claude-memory-mcp"]
|
|
263
28
|
}
|
|
264
29
|
}
|
|
265
30
|
}
|
|
266
31
|
```
|
|
267
32
|
|
|
268
|
-
|
|
33
|
+
**Windows (Command Prompt wrapper):**
|
|
269
34
|
|
|
270
|
-
|
|
35
|
+
Add to your Claude Desktop config (`%APPDATA%/Claude/claude_desktop_config.json`):
|
|
271
36
|
|
|
272
37
|
```json
|
|
273
38
|
{
|
|
274
39
|
"mcpServers": {
|
|
275
40
|
"memory": {
|
|
276
41
|
"command": "cmd",
|
|
277
|
-
"args": ["/c", "npx", "-y", "
|
|
278
|
-
"env": {
|
|
279
|
-
"MEMORY_DB_PATH": "./memory.db"
|
|
280
|
-
}
|
|
42
|
+
"args": ["/c", "npx", "-y", "github:whenmoon-afk/claude-memory-mcp"]
|
|
281
43
|
}
|
|
282
44
|
}
|
|
283
45
|
}
|
|
284
46
|
```
|
|
285
47
|
|
|
286
|
-
|
|
287
|
-
```json
|
|
288
|
-
{
|
|
289
|
-
"mcpServers": {
|
|
290
|
-
"memory": {
|
|
291
|
-
"command": "memory-mcp",
|
|
292
|
-
"env": {
|
|
293
|
-
"MEMORY_DB_PATH": "./memory.db"
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
```
|
|
48
|
+
**Windows (Full npx.cmd path - alternative):**
|
|
299
49
|
|
|
300
|
-
### From Source
|
|
301
50
|
```json
|
|
302
51
|
{
|
|
303
52
|
"mcpServers": {
|
|
304
53
|
"memory": {
|
|
305
|
-
"command": "
|
|
306
|
-
"args": ["/
|
|
307
|
-
"env": {
|
|
308
|
-
"MEMORY_DB_PATH": "./memory.db"
|
|
309
|
-
}
|
|
54
|
+
"command": "C:\\Program Files\\nodejs\\npx.cmd",
|
|
55
|
+
"args": ["-y", "github:whenmoon-afk/claude-memory-mcp"]
|
|
310
56
|
}
|
|
311
57
|
}
|
|
312
58
|
}
|
|
313
59
|
```
|
|
314
60
|
|
|
315
|
-
|
|
61
|
+
**WSL Users:** Use the macOS/Linux config above.
|
|
316
62
|
|
|
317
|
-
|
|
63
|
+
### Option 2: Global Install (Most Reliable)
|
|
318
64
|
|
|
319
|
-
|
|
65
|
+
Install globally for offline support and faster startup:
|
|
320
66
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
| `memory_recall` | `{ query, type?, entities?, limit?, max_tokens? }` | Search memories with token-aware loading |
|
|
325
|
-
| `memory_forget` | `{ id, reason? }` | Soft-delete memory (preserves provenance) |
|
|
67
|
+
```bash
|
|
68
|
+
npm install -g @whenmoon-afk/memory-mcp
|
|
69
|
+
```
|
|
326
70
|
|
|
327
|
-
|
|
71
|
+
Find your global npm path:
|
|
72
|
+
```bash
|
|
73
|
+
npm root -g
|
|
74
|
+
```
|
|
328
75
|
|
|
329
|
-
|
|
76
|
+
Then add to Claude Desktop config:
|
|
330
77
|
|
|
331
78
|
```json
|
|
332
79
|
{
|
|
333
|
-
"
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
80
|
+
"mcpServers": {
|
|
81
|
+
"memory": {
|
|
82
|
+
"command": "node",
|
|
83
|
+
"args": ["YOUR_GLOBAL_PATH/node_modules/@whenmoon-afk/memory-mcp/dist/index.js"]
|
|
84
|
+
}
|
|
338
85
|
}
|
|
339
86
|
}
|
|
340
87
|
```
|
|
341
88
|
|
|
342
|
-
|
|
343
|
-
- Summary: `"User follows 90/15 focused work cycles."`
|
|
344
|
-
- Entities: `focused work`, `90-minute blocks`
|
|
345
|
-
- Provenance: current session
|
|
89
|
+
Replace `YOUR_GLOBAL_PATH` with the output from `npm root -g`.
|
|
346
90
|
|
|
347
|
-
|
|
91
|
+
### Option 3: Automatic Installer
|
|
348
92
|
|
|
349
|
-
|
|
93
|
+
For first-time setup, the installer configures Claude Desktop automatically:
|
|
350
94
|
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
"tool": "memory_recall",
|
|
354
|
-
"input": {
|
|
355
|
-
"query": "work habits",
|
|
356
|
-
"max_tokens": 1200
|
|
357
|
-
}
|
|
358
|
-
}
|
|
95
|
+
```bash
|
|
96
|
+
npx @whenmoon-afk/memory-mcp-install
|
|
359
97
|
```
|
|
360
98
|
|
|
361
|
-
**
|
|
362
|
-
```json
|
|
363
|
-
{
|
|
364
|
-
"index": [
|
|
365
|
-
{ "id": "mem_8b1", "summary": "User follows 90/15 focused work cycles.", "score": 96 },
|
|
366
|
-
{ "id": "mem_2c9", "summary": "User avoids meetings before 10 AM.", "score": 88 }
|
|
367
|
-
],
|
|
368
|
-
"details": [
|
|
369
|
-
{
|
|
370
|
-
"id": "mem_8b1",
|
|
371
|
-
"content": "User works best in focused 90-minute blocks with 15-minute breaks.",
|
|
372
|
-
"entities": ["focused work", "90-minute blocks"],
|
|
373
|
-
"provenance": { "source": "chat_2025-11-03", "created_at": "2025-11-03T14:10Z" }
|
|
374
|
-
}
|
|
375
|
-
],
|
|
376
|
-
"meta": {
|
|
377
|
-
"tokens_used": 698,
|
|
378
|
-
"total_matches": 2,
|
|
379
|
-
"truncated": false
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
```
|
|
99
|
+
After any installation method, **restart Claude Desktop completely** (quit and reopen).
|
|
383
100
|
|
|
384
|
-
|
|
101
|
+
## Custom Database Location
|
|
385
102
|
|
|
386
|
-
|
|
103
|
+
By default, memories are stored at:
|
|
387
104
|
|
|
388
|
-
|
|
105
|
+
- **macOS**: `~/.claude-memories/memory.db`
|
|
106
|
+
- **Windows**: `%APPDATA%/claude-memories/memory.db`
|
|
107
|
+
- **Linux**: `~/.local/share/claude-memories/memory.db`
|
|
389
108
|
|
|
390
|
-
|
|
391
|
-
{
|
|
392
|
-
"tool": "memory_forget",
|
|
393
|
-
"input": {
|
|
394
|
-
"id": "mem_8b1",
|
|
395
|
-
"reason": "Information no longer relevant"
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
```
|
|
109
|
+
To use a custom location, add the `env` field to your config:
|
|
399
110
|
|
|
400
|
-
**Response**:
|
|
401
111
|
```json
|
|
402
112
|
{
|
|
403
|
-
"
|
|
404
|
-
|
|
405
|
-
|
|
113
|
+
"mcpServers": {
|
|
114
|
+
"memory": {
|
|
115
|
+
"command": "npx",
|
|
116
|
+
"args": ["-y", "github:whenmoon-afk/claude-memory-mcp"],
|
|
117
|
+
"env": {
|
|
118
|
+
"MEMORY_DB_PATH": "/path/to/your/memory.db"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
406
122
|
}
|
|
407
123
|
```
|
|
408
124
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
---
|
|
412
|
-
|
|
413
|
-
## Dual-Response Pattern
|
|
414
|
-
|
|
415
|
-
```
|
|
416
|
-
[index] → All matching summaries (~20 tokens each)
|
|
417
|
-
[details] → Full content of top memories (budget-capped)
|
|
418
|
-
[meta] → tokens_used, total_matches, truncated
|
|
419
|
-
```
|
|
420
|
-
|
|
421
|
-
- **Index**: Always included → *discovery*
|
|
422
|
-
- **Details**: Budget-safe → *precision*
|
|
423
|
-
- **Follow-up**: Use `ids: [...]` to expand
|
|
424
|
-
|
|
425
|
-
---
|
|
426
|
-
|
|
427
|
-
## Database & Portability
|
|
428
|
-
|
|
429
|
-
- **File**: `memory.db` (SQLite) — path via `MEMORY_DB_PATH`
|
|
430
|
-
- **Portable**: Copy to USB, cloud sync, or new machine
|
|
431
|
-
- **Backup**: Just copy the file
|
|
432
|
-
- **Tip**: For extra security, store `memory.db` on a **VeraCrypt Encrypted USB drive** (adds friction, but maximum control).
|
|
125
|
+
The database is a single portable SQLite file. Back it up by copying the file.
|
|
433
126
|
|
|
434
|
-
|
|
127
|
+
## Tools
|
|
435
128
|
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
|
441
|
-
|-----------|---------|---------|
|
|
442
|
-
| `@modelcontextprotocol/sdk` | ^1.0.4 | Official MCP protocol implementation |
|
|
443
|
-
| `better-sqlite3` | ^11.0.0 | Fast, native SQLite3 bindings with FTS5 support |
|
|
129
|
+
| Tool | Description |
|
|
130
|
+
|------|-------------|
|
|
131
|
+
| `memory_store` | Store a memory with auto-summarization and entity extraction |
|
|
132
|
+
| `memory_recall` | Search memories with token-aware loading |
|
|
133
|
+
| `memory_forget` | Soft-delete a memory (preserves audit trail) |
|
|
444
134
|
|
|
445
|
-
|
|
446
|
-
- **MCP SDK**: Required for implementing the Model Context Protocol standard
|
|
447
|
-
- **better-sqlite3**: Native performance for full-text search and database operations, essential for memory recall speed
|
|
448
|
-
|
|
449
|
-
All other dependencies are dev-only (TypeScript, testing, linting).
|
|
135
|
+
## Features
|
|
450
136
|
|
|
451
|
-
|
|
137
|
+
- FTS5 full-text search (fast, no embeddings needed)
|
|
138
|
+
- Token budgeting for context-aware responses
|
|
139
|
+
- Automatic entity extraction and summarization
|
|
140
|
+
- Soft deletes with provenance tracking
|
|
141
|
+
- Hybrid relevance scoring (recency + importance + frequency)
|
|
452
142
|
|
|
453
143
|
## Environment Variables
|
|
454
144
|
|
|
455
145
|
| Variable | Default | Description |
|
|
456
146
|
|----------|---------|-------------|
|
|
457
|
-
| `MEMORY_DB_PATH` | Platform-specific
|
|
458
|
-
| `
|
|
459
|
-
| `DEFAULT_TTL_DAYS` | `90` | Default time-to-live for memories (days) |
|
|
147
|
+
| `MEMORY_DB_PATH` | Platform-specific | Database file location |
|
|
148
|
+
| `DEFAULT_TTL_DAYS` | `90` | Default memory expiration |
|
|
460
149
|
|
|
461
|
-
|
|
462
|
-
- **macOS:** `~/.claude-memories/memory.db`
|
|
463
|
-
- **Windows:** `%APPDATA%\claude-memories\memory.db`
|
|
464
|
-
- **Linux:** `~/.local/share/claude-memories/memory.db`
|
|
150
|
+
## Troubleshooting
|
|
465
151
|
|
|
466
|
-
|
|
152
|
+
### Tools not appearing in Claude Desktop?
|
|
467
153
|
|
|
468
|
-
|
|
154
|
+
1. Restart Claude Desktop completely (quit and reopen)
|
|
155
|
+
2. Verify config file syntax is valid JSON
|
|
156
|
+
3. Check that Node.js 18+ is installed: `node --version`
|
|
469
157
|
|
|
470
|
-
|
|
471
|
-
Data is stored in a plain SQLite file (`memory.db`).
|
|
472
|
-
For sensitive data, use OS-level encryption (FileVault, BitLocker).
|
|
158
|
+
### "Connection closed" on Windows?
|
|
473
159
|
|
|
474
|
-
|
|
160
|
+
Windows requires either:
|
|
161
|
+
- The `cmd /c` wrapper method (see Windows config above), OR
|
|
162
|
+
- The full path to `npx.cmd` (e.g., `C:\Program Files\nodejs\npx.cmd`)
|
|
475
163
|
|
|
476
|
-
|
|
164
|
+
### Getting stale cached versions?
|
|
477
165
|
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
4. **Reference provenance**: Track source and context for audit trails.
|
|
482
|
-
5. **Backup `memory.db`** regularly — it's just a file!
|
|
166
|
+
The `npx github:` method bypasses npm cache. Alternatively:
|
|
167
|
+
- Clear npm cache: `npm cache clean --force`
|
|
168
|
+
- Use global install for version control
|
|
483
169
|
|
|
484
|
-
|
|
170
|
+
### Slow startup with github: method?
|
|
485
171
|
|
|
486
|
-
|
|
172
|
+
First run requires downloading and installing dependencies (can take 30+ seconds). Subsequent runs are faster but still fetch from GitHub. For faster startup, use the global install method.
|
|
487
173
|
|
|
488
|
-
|
|
489
|
-
- 🐙 **GitHub Repository**: https://github.com/WhenMoon-afk/claude-memory-mcp
|
|
490
|
-
- 🐛 **Report Issues**: https://github.com/WhenMoon-afk/claude-memory-mcp/issues
|
|
491
|
-
- 📖 **MCP Documentation**: https://modelcontextprotocol.io
|
|
492
|
-
|
|
493
|
-
---
|
|
174
|
+
## Dependencies
|
|
494
175
|
|
|
495
|
-
|
|
176
|
+
- `@modelcontextprotocol/sdk` - MCP protocol implementation
|
|
177
|
+
- `better-sqlite3` - Fast native SQLite with FTS5
|
|
496
178
|
|
|
497
|
-
|
|
498
|
-
- Report bugs or request features via [GitHub Issues](https://github.com/WhenMoon-afk/claude-memory-mcp/issues)
|
|
499
|
-
- Submit pull requests for improvements
|
|
500
|
-
- Share your use cases and feedback
|
|
179
|
+
## Links
|
|
501
180
|
|
|
502
|
-
|
|
181
|
+
- **npm**: https://www.npmjs.com/package/@whenmoon-afk/memory-mcp
|
|
182
|
+
- **GitHub**: https://github.com/WhenMoon-afk/claude-memory-mcp
|
|
183
|
+
- **Issues**: https://github.com/WhenMoon-afk/claude-memory-mcp/issues
|
|
503
184
|
|
|
504
|
-
##
|
|
185
|
+
## Disclaimer
|
|
505
186
|
|
|
506
|
-
|
|
187
|
+
This project is provided as-is. It is actively maintained but may have breaking changes between minor versions.
|
|
507
188
|
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
---
|
|
189
|
+
## License
|
|
511
190
|
|
|
512
|
-
|
|
191
|
+
MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver-factory.js","sourceRoot":"","sources":["../../src/database/driver-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAuBtD;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,IAAgB,EAAE,MAAoB;IACjE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,gBAAgB;YACnB,OAAO,yBAAyB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAEhE,KAAK,OAAO;YACV,mDAAmD;YACnD,OAAO,iBAAiB,EAAE,CAAC;QAE7B;YACE,MAAM,IAAI,KAAK,CACb,4BAA4B,
|
|
1
|
+
{"version":3,"file":"driver-factory.js","sourceRoot":"","sources":["../../src/database/driver-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAuBtD;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,IAAgB,EAAE,MAAoB;IACjE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,gBAAgB;YACnB,OAAO,yBAAyB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAEhE,KAAK,OAAO;YACV,mDAAmD;YACnD,OAAO,iBAAiB,EAAE,CAAC;QAE7B;YACE,MAAM,IAAI,KAAK,CACb,4BAA4B,IAAc,IAAI;gBAC5C,4CAA4C;gBAC5C,6DAA6D,CAChE,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAElD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,gBAAgB,CAAC,CAAC,UAAU;IACrC,CAAC;IAED,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAElD,IAAI,UAAU,KAAK,gBAAgB,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC9D,OAAO,UAAwB,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,KAAK,CACX,2CAA2C,SAAS,KAAK;QACvD,iCAAiC;QACjC,sCAAsC,CACzC,CAAC;IAEF,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAoB;IACtD,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;IAE1C,OAAO,CAAC,KAAK,CAAC,iCAAiC,UAAU,EAAE,CAAC,CAAC;IAE7D,OAAO,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* Memory MCP
|
|
4
|
-
*
|
|
3
|
+
* Memory MCP Server - Brain-inspired memory system with smart context loading
|
|
4
|
+
* Version is read dynamically from package.json
|
|
5
5
|
*/
|
|
6
6
|
export {};
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* Memory MCP
|
|
4
|
-
*
|
|
3
|
+
* Memory MCP Server - Brain-inspired memory system with smart context loading
|
|
4
|
+
* Version is read dynamically from package.json
|
|
5
5
|
*/
|
|
6
6
|
import { homedir, platform } from 'os';
|
|
7
7
|
import { join, dirname } from 'path';
|
|
8
|
-
import { existsSync, mkdirSync } from 'fs';
|
|
8
|
+
import { existsSync, mkdirSync, readFileSync } from 'fs';
|
|
9
|
+
import { fileURLToPath } from 'url';
|
|
10
|
+
// Read version from package.json dynamically
|
|
11
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
12
|
+
const __dirname = dirname(__filename);
|
|
13
|
+
// In dist/, package.json is one level up
|
|
14
|
+
const packageJsonPath = join(__dirname, '..', 'package.json');
|
|
15
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
|
|
16
|
+
const VERSION = packageJson.version;
|
|
9
17
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
10
18
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
11
19
|
import { CallToolRequestSchema, ListToolsRequestSchema, ErrorCode, McpError, } from '@modelcontextprotocol/sdk/types.js';
|
|
@@ -53,7 +61,7 @@ const config = {
|
|
|
53
61
|
*/
|
|
54
62
|
const server = new Server({
|
|
55
63
|
name: '@whenmoon-afk/memory-mcp',
|
|
56
|
-
version:
|
|
64
|
+
version: VERSION,
|
|
57
65
|
}, {
|
|
58
66
|
capabilities: {
|
|
59
67
|
tools: {},
|
|
@@ -183,25 +191,25 @@ server.setRequestHandler(ListToolsRequestSchema, () => {
|
|
|
183
191
|
/**
|
|
184
192
|
* Tool execution handler
|
|
185
193
|
*/
|
|
186
|
-
server.setRequestHandler(CallToolRequestSchema,
|
|
194
|
+
server.setRequestHandler(CallToolRequestSchema, (request) => {
|
|
187
195
|
try {
|
|
188
196
|
const { name, arguments: args } = request.params;
|
|
189
197
|
switch (name) {
|
|
190
198
|
case 'memory_store': {
|
|
191
|
-
const result =
|
|
199
|
+
const result = memoryStore(db, args);
|
|
192
200
|
return {
|
|
193
201
|
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
194
202
|
};
|
|
195
203
|
}
|
|
196
204
|
case 'memory_recall': {
|
|
197
|
-
const result =
|
|
205
|
+
const result = memoryRecall(db, args);
|
|
198
206
|
return {
|
|
199
207
|
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
200
208
|
};
|
|
201
209
|
}
|
|
202
210
|
case 'memory_forget': {
|
|
203
211
|
const { id, reason } = args;
|
|
204
|
-
const result =
|
|
212
|
+
const result = memoryForget(db, id, reason);
|
|
205
213
|
return {
|
|
206
214
|
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
207
215
|
};
|
|
@@ -224,19 +232,18 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
224
232
|
async function main() {
|
|
225
233
|
try {
|
|
226
234
|
// Initialize database
|
|
227
|
-
console.error(
|
|
235
|
+
console.error(`[memory-mcp v${VERSION}] Initializing database...`);
|
|
228
236
|
db = getDatabase(config.databasePath);
|
|
229
|
-
console.error(
|
|
237
|
+
console.error(`[memory-mcp v${VERSION}] Database initialized`);
|
|
230
238
|
// Connect to transport
|
|
231
239
|
const transport = new StdioServerTransport();
|
|
232
240
|
await server.connect(transport);
|
|
233
241
|
// Log startup info to stderr (not stdout, which is used for MCP protocol)
|
|
234
|
-
console.error(
|
|
235
|
-
console.error(`Database: ${config.databasePath}`);
|
|
236
|
-
console.error(`Driver: ${config.databaseDriver}`);
|
|
242
|
+
console.error(`[memory-mcp v${VERSION}] Server started`);
|
|
243
|
+
console.error(`[memory-mcp v${VERSION}] Database: ${config.databasePath}`);
|
|
237
244
|
}
|
|
238
245
|
catch (error) {
|
|
239
|
-
console.error(
|
|
246
|
+
console.error(`[memory-mcp v${VERSION}] Failed to start:`, error);
|
|
240
247
|
throw error;
|
|
241
248
|
}
|
|
242
249
|
}
|
|
@@ -244,18 +251,18 @@ async function main() {
|
|
|
244
251
|
* Cleanup on exit
|
|
245
252
|
*/
|
|
246
253
|
process.on('SIGINT', () => {
|
|
247
|
-
console.error(
|
|
254
|
+
console.error(`[memory-mcp v${VERSION}] Shutting down...`);
|
|
248
255
|
closeDatabase();
|
|
249
256
|
process.exit(0);
|
|
250
257
|
});
|
|
251
258
|
process.on('SIGTERM', () => {
|
|
252
|
-
console.error(
|
|
259
|
+
console.error(`[memory-mcp v${VERSION}] Shutting down...`);
|
|
253
260
|
closeDatabase();
|
|
254
261
|
process.exit(0);
|
|
255
262
|
});
|
|
256
263
|
// Start the server
|
|
257
264
|
main().catch((error) => {
|
|
258
|
-
console.error(
|
|
265
|
+
console.error(`[memory-mcp v${VERSION}] Fatal error:`, error);
|
|
259
266
|
process.exit(1);
|
|
260
267
|
});
|
|
261
268
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,5 @@ import type { ForgetResponse } from '../types/index.js';
|
|
|
6
6
|
/**
|
|
7
7
|
* Forget (soft delete) a memory
|
|
8
8
|
*/
|
|
9
|
-
export declare function memoryForget(db: DbDriver, id: string, reason?: string):
|
|
9
|
+
export declare function memoryForget(db: DbDriver, id: string, reason?: string): ForgetResponse;
|
|
10
10
|
//# sourceMappingURL=memory-forget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-forget.d.ts","sourceRoot":"","sources":["../../src/tools/memory-forget.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"memory-forget.d.ts","sourceRoot":"","sources":["../../src/tools/memory-forget.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,GACd,cAAc,CAwChB"}
|
|
@@ -6,7 +6,7 @@ import { ValidationError } from '../types/index.js';
|
|
|
6
6
|
/**
|
|
7
7
|
* Forget (soft delete) a memory
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export function memoryForget(db, id, reason) {
|
|
10
10
|
// Check if memory exists
|
|
11
11
|
const existing = db
|
|
12
12
|
.prepare('SELECT id FROM memories WHERE id = ? AND is_deleted = 0')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-forget.js","sourceRoot":"","sources":["../../src/tools/memory-forget.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"memory-forget.js","sourceRoot":"","sources":["../../src/tools/memory-forget.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,EAAY,EACZ,EAAU,EACV,MAAe;IAEf,yBAAyB;IACzB,MAAM,QAAQ,GAAG,EAAE;SAChB,OAAO,CAAC,yDAAyD,CAAC;SAClE,GAAG,CAAC,EAAE,CAA+B,CAAC;IAEzC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAC;IACzE,CAAC;IAED,gCAAgC;IAChC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC;IAC1B,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEtE,2BAA2B;IAC3B,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACxC,EAAE,CAAC,OAAO,CACR;;;;GAID,CACA,CAAC,GAAG,CACH,YAAY,EACZ,EAAE,EACF,QAAQ,EACR,WAAW,EACX,MAAM,EACN,MAAM,IAAI,yBAAyB,EACnC,IAAI,EACJ,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CACzC,CAAC;IAEF,MAAM,QAAQ,GAAmB;QAC/B,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,6CAA6C,MAAM,IAAI,eAAe,EAAE;KAClF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -8,5 +8,5 @@ import type { SearchOptions, RecallResponse } from '../types/index.js';
|
|
|
8
8
|
* Recall memories using semantic search with intelligent token budgeting
|
|
9
9
|
* Returns: index (all matches as summaries) + details (top matches with full content)
|
|
10
10
|
*/
|
|
11
|
-
export declare function memoryRecall(db: DbDriver, options: SearchOptions):
|
|
11
|
+
export declare function memoryRecall(db: DbDriver, options: SearchOptions): RecallResponse;
|
|
12
12
|
//# sourceMappingURL=memory-recall.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-recall.d.ts","sourceRoot":"","sources":["../../src/tools/memory-recall.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EACV,aAAa,EAEb,cAAc,EAMf,MAAM,mBAAmB,CAAC;AAM3B;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"memory-recall.d.ts","sourceRoot":"","sources":["../../src/tools/memory-recall.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EACV,aAAa,EAEb,cAAc,EAMf,MAAM,mBAAmB,CAAC;AAM3B;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,aAAa,GACrB,cAAc,CAwGhB"}
|
|
@@ -10,7 +10,7 @@ import { estimateTokens } from '../utils/token-estimator.js';
|
|
|
10
10
|
* Recall memories using semantic search with intelligent token budgeting
|
|
11
11
|
* Returns: index (all matches as summaries) + details (top matches with full content)
|
|
12
12
|
*/
|
|
13
|
-
export
|
|
13
|
+
export function memoryRecall(db, options) {
|
|
14
14
|
try {
|
|
15
15
|
console.error('[memoryRecall] Starting recall with options:', JSON.stringify(options));
|
|
16
16
|
// Set defaults
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-recall.js","sourceRoot":"","sources":["../../src/tools/memory-recall.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;;GAGG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"memory-recall.js","sourceRoot":"","sources":["../../src/tools/memory-recall.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,5 @@ import type { MemoryInput, StandardMemory } from '../types/index.js';
|
|
|
9
9
|
* If input.id is provided, updates existing memory
|
|
10
10
|
* If input.id is not provided, creates new memory
|
|
11
11
|
*/
|
|
12
|
-
export declare function memoryStore(db: DbDriver, input: MemoryInput):
|
|
12
|
+
export declare function memoryStore(db: DbDriver, input: MemoryInput): StandardMemory;
|
|
13
13
|
//# sourceMappingURL=memory-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../src/tools/memory-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAkB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA8CrF;;;;GAIG;AACH,
|
|
1
|
+
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../src/tools/memory-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAkB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA8CrF;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,WAAW,GACjB,cAAc,CAShB"}
|
|
@@ -15,7 +15,7 @@ import { formatMemory } from './response-formatter.js';
|
|
|
15
15
|
* If input.id is provided, updates existing memory
|
|
16
16
|
* If input.id is not provided, creates new memory
|
|
17
17
|
*/
|
|
18
|
-
export
|
|
18
|
+
export function memoryStore(db, input) {
|
|
19
19
|
// Determine if this is an update or create
|
|
20
20
|
const isUpdate = !!input.id;
|
|
21
21
|
if (isUpdate) {
|
|
@@ -28,7 +28,7 @@ export async function memoryStore(db, input) {
|
|
|
28
28
|
/**
|
|
29
29
|
* Create a new memory
|
|
30
30
|
*/
|
|
31
|
-
|
|
31
|
+
function createMemory(db, input) {
|
|
32
32
|
// Validate content
|
|
33
33
|
const validation = validateContent(input.content, input.type);
|
|
34
34
|
if (!validation.valid) {
|
|
@@ -128,7 +128,7 @@ async function createMemory(db, input) {
|
|
|
128
128
|
/**
|
|
129
129
|
* Update an existing memory
|
|
130
130
|
*/
|
|
131
|
-
|
|
131
|
+
function updateMemory(db, input) {
|
|
132
132
|
// Check if memory exists
|
|
133
133
|
const existing = db
|
|
134
134
|
.prepare('SELECT * FROM memories WHERE id = ? AND is_deleted = 0')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../src/tools/memory-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAChB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EACL,UAAU,EACV,GAAG,EACH,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAyBvD;;;;GAIG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../src/tools/memory-store.ts"],"names":[],"mappings":"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"}
|
package/install.js
CHANGED
|
@@ -14,22 +14,20 @@ const __filename = fileURLToPath(import.meta.url);
|
|
|
14
14
|
const __dirname = dirname(__filename);
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
-
* Get
|
|
17
|
+
* Get database path - unified across all platforms
|
|
18
|
+
* Uses ~/.memory-mcp/memory.db for simplicity
|
|
18
19
|
*/
|
|
19
20
|
function getDbPath() {
|
|
20
21
|
const plat = platform();
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
case 'win32': // Windows
|
|
27
|
-
return join(process.env.APPDATA || join(homedir(), 'AppData', 'Roaming'), 'claude-memories', 'memory.db');
|
|
28
|
-
|
|
29
|
-
default: // Linux and others
|
|
30
|
-
const dataHome = process.env.XDG_DATA_HOME || join(homedir(), '.local', 'share');
|
|
31
|
-
return join(dataHome, 'claude-memories', 'memory.db');
|
|
23
|
+
if (plat === 'win32') {
|
|
24
|
+
// Windows: Use forward slashes for consistency in config
|
|
25
|
+
// C:/Users/Username/.memory-mcp/memory.db
|
|
26
|
+
return join(homedir(), '.memory-mcp', 'memory.db').replace(/\\/g, '/');
|
|
32
27
|
}
|
|
28
|
+
|
|
29
|
+
// macOS/Linux: ~/.memory-mcp/memory.db
|
|
30
|
+
return join(homedir(), '.memory-mcp', 'memory.db');
|
|
33
31
|
}
|
|
34
32
|
|
|
35
33
|
/**
|
|
@@ -53,16 +51,14 @@ function getClaudeConfigPath() {
|
|
|
53
51
|
|
|
54
52
|
/**
|
|
55
53
|
* Get platform-specific MCP server configuration
|
|
54
|
+
* Uses npx github: approach for reliable updates and cache bypass
|
|
56
55
|
*/
|
|
57
56
|
function getMcpServerConfig(dbPath) {
|
|
58
|
-
//
|
|
59
|
-
//
|
|
60
|
-
const serverPath = join(__dirname, 'dist', 'index.js');
|
|
61
|
-
|
|
62
|
-
// All platforms use node directly with the server path
|
|
57
|
+
// Use npx with github: protocol - works on all platforms
|
|
58
|
+
// This bypasses npm cache issues and always fetches latest from main branch
|
|
63
59
|
return {
|
|
64
|
-
command: '
|
|
65
|
-
args: [
|
|
60
|
+
command: 'npx',
|
|
61
|
+
args: ['github:whenmoon-afk/claude-memory-mcp'],
|
|
66
62
|
env: {
|
|
67
63
|
MEMORY_DB_PATH: dbPath
|
|
68
64
|
}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@whenmoon-afk/memory-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"description": "Brain-inspired memory for AI agents - MCP server",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"bin": {
|
|
8
|
-
"memory-mcp": "dist/index.js"
|
|
8
|
+
"memory-mcp": "./dist/index.js",
|
|
9
|
+
"memory-mcp-install": "./install.js"
|
|
9
10
|
},
|
|
10
11
|
"files": [
|
|
11
12
|
"dist/",
|