simple-memory-mcp 1.1.3 → 2.0.2

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 CHANGED
@@ -8,7 +8,7 @@ A blazingly fast Model Context Protocol (MCP) server for persistent memory stora
8
8
 
9
9
  Perfect for AI assistants that need to remember context across conversations, store project notes, or build a personal knowledge base.
10
10
 
11
- > šŸ“š **New to Simple Memory?** Read the [Design Philosophy](docs/DESIGN_PHILOSOPHY.md) to understand why it's built this way, the trade-offs made, and when this approach makes sense for your needs.
11
+ > **Simple by design:** Keyword search, not semantic. Local SQLite, not cloud. Zero setup, not configuration hell. If you need vector embeddings or team collaboration, see [alternatives](docs/design-philosophy.md#when-to-use-something-else).
12
12
 
13
13
  ---
14
14
 
@@ -20,149 +20,87 @@ Perfect for AI assistants that need to remember context across conversations, st
20
20
  - šŸ·ļø **Smart Tagging** - Organize and filter memories with tags
21
21
  - šŸ”— **Auto-Relationships** - Automatically link related memories
22
22
  - šŸ’¾ **Automatic Backups** - Optional lazy backups to cloud storage
23
- - šŸ”„ **Safe Migrations** - Automatic schema upgrades without data loss
24
23
  - šŸ“¦ **Zero Config** - Works out of the box with sensible defaults
25
24
 
26
- ---
27
-
28
- ## šŸ“Š Performance Highlights
29
-
30
- | Operation | Average Time | Throughput |
31
- |-----------|--------------|------------|
32
- | Store Memory (1KB) | 0.05ms | ~20,000 ops/sec |
33
- | Full-Text Search | 0.08ms | ~13,000 ops/sec |
34
- | Tag Search | 0.22ms | ~4,500 ops/sec |
35
- | Bulk Relationships (10) | 0.29ms | ~3,500 ops/sec |
36
-
37
- **All operations complete in sub-millisecond timeframes** with optimized indexes and prepared statements.
38
-
39
- > šŸ“ **Reproduce these numbers:** Run `npm run benchmark` after setup. Results vary by hardware - tested on NVMe SSD with Node.js 20+.
40
-
41
-
42
25
  ---
43
26
 
44
27
  ## šŸš€ Quick Start
45
28
 
46
- > šŸ’” **Best Experience**: Simple Memory works best with **Claude Sonnet in Agent Mode**. The agent's autonomous decision-making and proactive behavior enables optimal memory capture and retrieval without explicit instructions.
47
-
48
- ### 1ļøāƒ£ One-Command Setup
49
-
50
- **From Source:**
51
- ```bash
52
- git clone https://github.com/chrisribe/simple-memory-mcp.git
53
- cd simple-memory-mcp
54
- npm run setup
55
- ```
56
-
57
- **Or from npm (when published):**
58
- ```bash
59
- npm install -g simple-memory-mcp
60
- ```
61
-
62
- That's it! The `setup` command automatically:
63
- - āœ… Installs dependencies
64
- - āœ… Builds TypeScript → JavaScript
65
- - āœ… Links globally (makes `simple-memory` command available)
66
- - āœ… Configures VS Code (both stable and Insiders)
67
-
68
- > šŸ’” VS Code users: The setup automatically adds the MCP server to your `mcp.json` file. Just restart VS Code after setup!
69
- >
70
- > šŸ’” Need to customize? Run `npm run setup` again to see the config file path (Ctrl+click to open)
71
-
72
- ### 2ļøāƒ£ For Other MCP Clients (Optional)
73
-
74
- If you're using Claude Desktop or other MCP clients, add this to their config:
29
+ ### Configure MCP Client
75
30
 
76
31
  **Claude Desktop** (`claude_desktop_config.json`):
77
32
  ```json
78
33
  {
79
34
  "mcpServers": {
80
- "simple-memory-mcp": {
81
- "command": "simple-memory"
35
+ "simple-memory": {
36
+ "command": "npx",
37
+ "args": ["-y", "simple-memory-mcp"]
82
38
  }
83
39
  }
84
40
  }
85
41
  ```
86
42
 
87
- > šŸ’” **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
88
- > šŸ’” **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
89
-
90
- ### 3ļøāƒ£ Start Using
91
-
92
- Restart your MCP client and the `simple-memory-mcp` server will be available. The AI assistant can now:
93
- - 🧠 Remember information across conversations
94
- - šŸ” Search your stored memories
95
- - šŸ·ļø Organize with tags
96
- - šŸ”— Link related memories automatically
97
-
98
- **All transparent - no UI, no manual steps. Just works!**
43
+ **VS Code** (`.vscode/mcp.json`):
44
+ ```json
45
+ {
46
+ "mcpServers": {
47
+ "simple-memory": {
48
+ "command": "npx",
49
+ "args": ["-y", "simple-memory-mcp"]
50
+ }
51
+ }
52
+ }
53
+ ```
99
54
 
100
- ---
55
+ Restart your MCP client - that's it! No install needed.
101
56
 
102
- ## šŸ“– Table of Contents
57
+ > šŸ’” **Best Experience**: Works best with **Claude Sonnet in Agent Mode** for optimal auto-capture.
103
58
 
104
- - [Usage](#-usage)
105
- - [MCP Server](#as-mcp-server)
106
- - [CLI Commands](#command-line-interface)
107
- - [Available Tools](#-available-tools)
108
- - [Configuration](#-configuration)
109
- - [Database](#-database)
110
- - [Development](#-development)
111
- - [Examples](#-examples)
59
+ ### Auto-Configure VS Code & Claude Desktop
112
60
 
113
- ---
61
+ ```bash
62
+ npx -y simple-memory-mcp setup
63
+ ```
114
64
 
115
- ## šŸ’» Usage
65
+ This automatically configures all detected installations.
116
66
 
117
- ### As MCP Server
67
+ ### Optional: Install CLI
118
68
 
119
- The server exposes tools that your AI assistant can use directly. Once configured, your assistant will:
69
+ For command-line usage (search, stats, export/import):
120
70
 
121
- **🧠 Auto-Capture Mode** - Proactively store important information:
122
- - Preferences you mention ("I prefer dark mode")
123
- - Decisions you make ("Let's use PostgreSQL")
124
- - Facts about people, projects, or tools
125
- - Learnings and insights you discover
71
+ ```bash
72
+ npm install -g simple-memory-mcp
73
+ simple-memory setup # auto-configure VS Code & Claude
74
+ ```
126
75
 
127
- **šŸ“ Manual Storage** - You can also explicitly ask:
128
- - "Remember that I prefer dark mode"
129
- - "Store this meeting summary with tags project and planning"
130
- - "Search my memories for Python tips"
131
- - "Show me all memories tagged with 'important'"
76
+ ### For Contributors
132
77
 
133
- The assistant stores memories silently and retrieves them when relevant, creating a seamless conversation experience.
78
+ ```bash
79
+ git clone https://github.com/chrisribe/simple-memory-mcp.git
80
+ cd simple-memory-mcp
81
+ npm run setup # installs, builds, links, and configures
82
+ ```
134
83
 
135
- ### Command Line Interface
84
+ That's it! The AI assistant can now remember information across conversations.
136
85
 
137
- #### Quick Commands
86
+ ---
138
87
 
139
- For common operations, use simple shortcuts:
88
+ ## šŸ’» CLI Commands
140
89
 
141
90
  ```bash
91
+ # Setup - auto-configure VS Code and Claude Desktop
92
+ simple-memory setup
93
+
142
94
  # Search memories
143
95
  simple-memory search --query "typescript" --limit 5
144
- simple-memory search --tags "project,work" --limit 20
145
- simple-memory search --query "bug" --daysAgo 7
146
- simple-memory search --query "api" --verbose # Shows generated GraphQL
96
+ simple-memory search --tags "project,work"
147
97
 
148
98
  # Store a memory
149
- simple-memory store --content "Remember this note"
150
- simple-memory store --content "API key: xyz" --tags "credentials,api"
99
+ simple-memory store --content "Remember this" --tags "note"
151
100
 
152
- # Update a memory
153
- simple-memory update --hash "abc123..." --content "Updated content"
154
-
155
- # Get specific memory
101
+ # Other operations
156
102
  simple-memory get --hash "abc123..."
157
-
158
- # Find related memories
159
- simple-memory related --hash "abc123..." --limit 10
160
-
161
- # Delete memories
162
103
  simple-memory delete --hash "abc123..."
163
- simple-memory delete --tag "temporary"
164
-
165
- # Get database stats
166
104
  simple-memory stats
167
105
 
168
106
  # Export/import
@@ -170,565 +108,143 @@ simple-memory export-memory --output backup.json
170
108
  simple-memory import-memory --input backup.json
171
109
  ```
172
110
 
173
- Run `simple-memory <command> --help` for command-specific options.
174
-
175
- > šŸ’” **Learning GraphQL?** Use `--verbose` with any shortcut command to see the generated GraphQL query. Great for learning the syntax!
176
-
177
- #### Advanced: Raw GraphQL
178
-
179
- Power users can execute raw GraphQL queries:
180
-
181
- ```bash
182
- # Raw GraphQL query
183
- simple-memory graphql --query '{ memories(query: "search term") { hash title tags } }'
184
-
185
- # GraphQL mutation
186
- simple-memory graphql --query 'mutation { store(content: "Your content") { hash } }'
187
-
188
- # Batch multiple operations in one call
189
- simple-memory graphql --query '{
190
- recent: memories(limit: 5) { hash title }
191
- tagged: memories(tags: ["important"]) { hash title }
192
- stats { totalMemories }
193
- }'
194
- ```
111
+ Run `simple-memory --help` for all options.
195
112
 
196
113
  ---
197
114
 
198
115
  ## šŸ› ļø Available Tools
199
116
 
200
- Simple Memory exposes **3 MCP tools** - a unified GraphQL interface plus import/export:
117
+ Simple Memory exposes **3 MCP tools**:
201
118
 
202
119
  ### `memory-graphql`
203
- **The primary tool** - handles all memory operations via GraphQL queries and mutations.
204
120
 
205
- **🧠 Auto-Capture:** This tool includes behavioral guidance that encourages your AI assistant to:
206
- - Proactively search memories at conversation start
207
- - Store important information silently (preferences, decisions, facts)
208
- - Use descriptive tags for easy retrieval
209
- - Return only needed fields for efficiency
121
+ The primary tool - handles all memory operations via GraphQL.
210
122
 
211
- **Parameters:**
212
- - `query` (string, required) - GraphQL query or mutation
213
- - `variables` (object, optional) - Variables for parameterized queries
123
+ ```graphql
124
+ # Query
125
+ { memories(query: "typescript", limit: 5) { hash title tags } }
126
+ { memory(hash: "abc...") { content tags } }
127
+ { stats { totalMemories } }
128
+
129
+ # Mutations
130
+ mutation { store(content: "Note", tags: ["tag"]) { hash } }
131
+ mutation { update(hash: "abc...", content: "Updated") { newHash } }
132
+ mutation { delete(hash: "abc...") { success } }
133
+ ```
214
134
 
215
- **Schema Overview:**
135
+ **Schema:**
216
136
  ```graphql
137
+ type Memory { hash, content, title, preview, tags, createdAt, relevance }
217
138
  type Query {
218
- memories(query: String, tags: [String], limit: Int, summaryOnly: Boolean): [Memory!]!
219
- memory(hash: String!): Memory # Get full content by hash
139
+ memories(query: String, tags: [String], limit: Int): [Memory!]!
140
+ memory(hash: String!): Memory
220
141
  related(hash: String!, limit: Int): [Memory!]!
221
142
  stats: Stats!
222
143
  }
223
-
224
144
  type Mutation {
225
145
  store(content: String!, tags: [String]): StoreResult!
226
146
  update(hash: String!, content: String!, tags: [String]): UpdateResult!
227
147
  delete(hash: String, tag: String): DeleteResult!
228
148
  }
229
-
230
- type Memory {
231
- hash: String!
232
- content: String!
233
- title: String # First 100 chars
234
- preview: String # First 200 chars
235
- tags: [String!]!
236
- createdAt: String!
237
- relevance: Float # BM25 score (search only)
238
- }
239
- ```
240
-
241
- **Example Queries:**
242
- ```graphql
243
- # Efficient search (summaries only)
244
- { memories(query: "typescript", summaryOnly: true) { hash title tags } }
245
-
246
- # Then get full content for specific memory
247
- { memory(hash: "abc123...") { content tags createdAt } }
248
-
249
- # Store with auto-generated hash
250
- mutation { store(content: "Remember this", tags: ["note"]) { success hash } }
251
-
252
- # Batch multiple operations
253
- {
254
- search: memories(query: "mcp", limit: 3) { hash title }
255
- recent: memories(limit: 5) { hash createdAt }
256
- stats { totalMemories }
257
- }
258
149
  ```
259
150
 
260
- ### `export-memory`
261
- Export memories to JSON file for backup or sharing.
151
+ ### `export-memory` / `import-memory`
262
152
 
263
- **Parameters:**
264
- - `output` (string, required) - Output file path
265
- - `tags` (array, optional) - Filter by tags
266
- - `daysAgo` (number, optional) - Export memories from last N days
267
- - `startDate` / `endDate` (string, optional) - Date range filter
268
- - `limit` (number, optional) - Maximum memories to export
269
-
270
- ### `import-memory`
271
- Import memories from JSON file.
272
-
273
- **Parameters:**
274
- - `input` (string, required) - Input file path
275
- - `skipDuplicates` (boolean, optional) - Skip existing memories
276
- - `preserveTimestamps` (boolean, optional) - Keep original dates
277
- - `dryRun` (boolean, optional) - Preview without importing
153
+ Backup and restore memories as JSON files.
278
154
 
279
155
  ---
280
156
 
281
157
  ## āš™ļø Configuration
282
158
 
283
- ### Zero Config Default
284
-
285
- Simple Memory works **out of the box** with no configuration needed:
286
-
287
- ```
288
- ~/.simple-memory/memory.db
289
- ```
290
-
291
- - **Windows**: `C:\Users\{username}\.simple-memory\memory.db`
292
- - **macOS/Linux**: `/home/{username}/.simple-memory/memory.db`
293
-
294
- Just add to your MCP config and start using it:
159
+ **Zero config default:** `~/.simple-memory/memory.db`
295
160
 
161
+ **Custom database location:**
296
162
  ```json
297
163
  {
298
164
  "mcpServers": {
299
165
  "simple-memory": {
300
- "command": "simple-memory"
301
- }
302
- }
303
- }
304
- ```
305
-
306
- ### Environment Variables
307
-
308
- | Variable | Description | Default | Example |
309
- |----------|-------------|---------|---------|
310
- | `MEMORY_DB` | Database file path | `~/.simple-memory/memory.db` | `/home/user/memories.db` |
311
- | `MEMORY_BACKUP_PATH` | Backup directory (creates JSON exports) | None (disabled) | `/home/user/backups` |
312
- | `MEMORY_BACKUP_INTERVAL` | Minutes between backups (0=every write) | `0` | `180` |
313
- | `MEMORY_BACKUP_KEEP` | Number of JSON backups to keep | `10` | `24` |
314
- | `MEMORY_BACKUP_SOURCE` | Source identifier in backups (optional) | hostname | `work` or `personal` |
315
- | `MEMORY_CLOUD_SAFE` | Cloud storage safe mode | `false` | `true` |
316
- | `MEMORY_DEBUG` | Enable debug logging in CLI mode | `false` | `true` |
317
- | `DEBUG` | Enable debug logging (MCP server) | `false` | `true` |
318
-
319
- ### Custom Database Location
320
-
321
- For power users who want to control where the database is stored:
322
-
323
- ```json
324
- {
325
- "mcpServers": {
326
- "simple-memory": {
327
- "command": "simple-memory",
166
+ "command": "npx",
167
+ "args": ["-y", "simple-memory-mcp"],
328
168
  "env": {
329
- "MEMORY_DB": "/path/to/your/memory.db"
169
+ "MEMORY_DB": "/path/to/memory.db"
330
170
  }
331
171
  }
332
172
  }
333
173
  }
334
174
  ```
335
175
 
336
- ### With Automatic Backups
337
-
338
- ```json
339
- {
340
- "mcpServers": {
341
- "simple-memory": {
342
- "command": "simple-memory",
343
- "env": {
344
- "MEMORY_DB": "/home/user/memory.db",
345
- "MEMORY_BACKUP_PATH": "/home/user/OneDrive/MCP-Backups",
346
- "MEMORY_BACKUP_INTERVAL": "180",
347
- "MEMORY_BACKUP_KEEP": "24",
348
- "MEMORY_BACKUP_SOURCE": "work"
349
- }
350
- }
351
- }
352
- }
353
- ```
354
-
355
- **šŸ’” Backup Strategy:**
356
- - **JSON export format** - Human-readable, portable backups
357
- - **Lazy backups** - Only backs up after write operations
358
- - **Throttled** - Won't backup again until interval passes
359
- - **Automatic cleanup** - Keeps last N backups, deletes old ones
360
- - **Efficient** - No wasted backups when idle
361
-
362
- **Backup Files:** `smem_auto_2026-01-31_20-13-19.json` (includes all memories + metadata)
363
-
364
- **To restore from backup:** Use `simple-memory import-memory --input backup.json`
365
-
366
- **āš ļø Cloud Storage Best Practices:**
367
- - āœ… **Recommended**: Store database locally, backup to cloud (as shown above)
368
- - āš ļø **Not Recommended**: Store database directly in OneDrive/Dropbox
369
- - WAL mode creates 3 files that sync at different times → corruption risk
370
- - File locking conflicts cause "database locked" errors
371
- - 2-10x slower performance
372
-
373
- **If you must store directly in cloud storage**, enable safe mode:
176
+ **With automatic backups:**
374
177
  ```json
375
178
  {
376
179
  "env": {
377
- "MEMORY_DB": "/path/to/OneDrive/memory.db",
378
- "MEMORY_CLOUD_SAFE": "true"
379
- }
380
- }
381
- ```
382
- This uses DELETE journal mode instead of WAL (30-50% slower but safer).
383
-
384
- ### Multiple Database Instances
385
-
386
- Run multiple instances for different contexts:
387
-
388
- ```json
389
- {
390
- "mcpServers": {
391
- "memory-work": {
392
- "command": "simple-memory",
393
- "env": {
394
- "MEMORY_DB": "/path/to/work-memory.db"
395
- }
396
- },
397
- "memory-personal": {
398
- "command": "simple-memory",
399
- "env": {
400
- "MEMORY_DB": "/path/to/personal-memory.db"
401
- }
402
- }
403
- }
404
- }
405
- ```
406
-
407
- ### HTTP Transport (Advanced)
408
-
409
- For Docker deployments, remote servers, or avoiding local Node.js path issues, you can run Simple Memory as an HTTP server:
410
-
411
- **1. Start the HTTP server:**
412
- ```bash
413
- # With default database (~/.simple-memory/memory.db)
414
- simple-memory --http
415
-
416
- # With custom database and port
417
- MEMORY_DB=/path/to/memory.db MCP_PORT=3001 simple-memory --http
418
- ```
419
-
420
- **2. Configure your MCP client to use HTTP:**
421
- ```json
422
- {
423
- "mcpServers": {
424
- "simple-memory": {
425
- "url": "http://localhost:3000/mcp"
426
- }
180
+ "MEMORY_BACKUP_PATH": "/path/to/OneDrive/backups",
181
+ "MEMORY_BACKUP_INTERVAL": "180"
427
182
  }
428
183
  }
429
184
  ```
430
185
 
431
- **When to use HTTP transport:**
432
- - 🐳 Running in Docker or remote server
433
- - šŸ–„ļø Multiple MCP clients sharing one database
434
- - šŸ”§ Avoiding Node.js path configuration issues
435
- - 🌐 Exposing memory server to network (use with caution!)
436
-
437
- **Note:** HTTP transport requires manually starting the server before using MCP clients. For most local setups, the default stdio transport is simpler.
438
-
439
- ---
440
-
441
- ## šŸ—„ļø Database
442
-
443
- ### Technology
444
-
445
- - **SQLite** with WAL mode for better concurrency
446
- - **FTS5** for lightning-fast full-text search
447
- - **Normalized tags** with proper indexing (50-200x faster than LIKE queries)
448
- - **Automatic relationships** between related memories
449
-
450
- ### Schema Features
451
-
452
- - āœ… Automatic migrations with data integrity guarantees
453
- - āœ… Optimized indexes on all hot paths
454
- - āœ… Prepared statements for all queries
455
- - āœ… 64MB cache with memory-based temp storage
456
- - āœ… Transaction-based bulk operations
457
-
458
- ### Size Limits
459
-
460
- - Maximum content size: 5MB per memory
461
- - No limit on number of memories
462
- - No limit on number of tags
186
+ šŸ“– **Full configuration guide:** [docs/configuration.md](docs/configuration.md)
187
+ - Environment variables reference
188
+ - Backup strategies
189
+ - Cloud storage best practices
190
+ - HTTP transport setup
191
+ - Multiple database instances
463
192
 
464
193
  ---
465
194
 
466
195
  ## šŸ”§ Development
467
196
 
468
- ### Setup
469
-
470
197
  ```bash
471
- # Clone the repository
472
- git clone https://github.com/chrisribe/simple-memory-mcp.git
473
- cd simple-memory-mcp
474
-
475
- # Install dependencies
476
- npm install
477
-
478
- # Build
479
- npm run build
198
+ npm install # Install dependencies
199
+ npm run build # Build TypeScript
200
+ npm test # Run tests
201
+ npm run benchmark # Performance benchmarks
480
202
  ```
481
203
 
482
- ### Commands
483
-
484
- ```bash
485
- # Development mode with hot reload
486
- npm run dev
487
-
488
- # Build TypeScript
489
- npm run build
490
-
491
- # Build with version bump (for releases)
492
- npm run build:release
493
-
494
- # Run tests
495
- npm test # GraphQL tests (11 tests)
496
- npm run test:perf # Performance tests (6 tests)
497
- npm run test:migration # Migration tests (13 tests)
498
-
499
- # Performance benchmarks
500
- npm run benchmark
501
-
502
- # Link/unlink globally for testing
503
- npm run link # Build and link globally (makes 'simple-memory' command available)
504
- npm run unlink # Remove global link
505
-
506
- # Or manually
507
- npm link # Link current directory globally
508
- npm unlink -g # Unlink from global
509
- simple-memory memory-graphql --query '{ stats { totalMemories } }' # Test the global command
510
- ```
511
-
512
- ### Versioning
513
-
514
- The project uses automated version bumping:
515
-
516
- - **Development builds**: Use `npm run build` (no version change)
517
- - **Release builds**: Use `npm run build:release` (bumps patch version)
518
- - **Manual version bumps**: Use `npm run version:patch|minor|major`
519
- - **Automatic**: All commits/merges to `main` automatically bump the patch version via GitHub Actions
520
-
521
- The workflow skips version bumps for:
522
- - Documentation-only changes (`.md` files)
523
- - Changes to `docs/` directory
524
- - Commits containing `[skip-version]` in the message
525
-
526
- ### Testing
527
-
528
- The project has comprehensive test coverage:
529
-
530
- - āœ… **GraphQL Tests** (11) - Full CRUD, batching, error handling via GraphQL API
531
- - āœ… **Performance Tests** (6) - Large content, size limits, throughput
532
- - āœ… **Migration Tests** (13) - Schema upgrades, rollback safety, data integrity
533
- - āœ… **Benchmarks** - Detailed performance metrics with reproduction steps
534
-
204
+ **Testing:**
535
205
  ```bash
536
- npm test # GraphQL comprehensive tests
537
- npm run test:perf # Performance tests
206
+ npm test # GraphQL tests
207
+ npm run test:perf # Performance tests
538
208
  npm run test:migration # Migration tests
539
- npm run benchmark # Full benchmark suite (reproduce README numbers)
540
209
  ```
541
210
 
542
- All tests pass with 100% backward compatibility.
543
-
544
211
  ---
545
212
 
546
- ## šŸ“ Examples
547
-
548
- ### Real-World Usage with AI Assistants
549
-
550
- Simple Memory shines when used with AI assistants through MCP. Here are real conversation flows:
551
-
552
- #### šŸŽÆ Example 1: Building Project Context Over Time
553
-
554
- **Day 1:**
555
- > **You:** "I'm starting a new project. It's a React app with TypeScript, using Vite for bundling. We'll deploy to Vercel."
556
- >
557
- > **Assistant:** *Stores this with tags: `project`, `react`, `typescript`, `vite`, `vercel`*
558
-
559
- **Day 3:**
560
- > **You:** "What stack am I using for my project again?"
561
- >
562
- > **Assistant:** *Searches memories and finds: "You're using React with TypeScript, Vite for bundling, and deploying to Vercel."*
563
-
564
- **Week 2:**
565
- > **You:** "We decided to add Prisma ORM with PostgreSQL for the database."
566
- >
567
- > **Assistant:** *Stores this and auto-links to previous project memories*
568
-
569
- **Week 4:**
570
- > **You:** "Give me a summary of all my tech stack decisions."
571
- >
572
- > **Assistant:** *Retrieves all related memories and provides complete context*
573
-
574
- #### šŸ’” Example 2: Personal Knowledge Base
575
-
576
- **Learning Session:**
577
- > **You:** "Remember this: TypeScript generics allow type-safe reusable components. The syntax is `function name<T>(arg: T): T`"
578
- >
579
- > **Assistant:** *Stores with tags: `typescript`, `generics`, `learning`*
580
-
581
- > **You:** "Also note: Array.reduce() is perfect for transforming arrays into single values. Use it instead of forEach when accumulating."
582
- >
583
- > **Assistant:** *Stores with tags: `javascript`, `arrays`, `patterns`*
584
-
585
- **Later that week:**
586
- > **You:** "What did I learn about TypeScript generics?"
587
- >
588
- > **Assistant:** *Retrieves your note with the exact syntax example*
213
+ ## šŸ“š Documentation
589
214
 
590
- > **You:** "Show me all my JavaScript tips"
591
- >
592
- > **Assistant:** *Searches tag `javascript` and finds all related notes*
215
+ | Guide | Description |
216
+ |-------|-------------|
217
+ | [Configuration](docs/configuration.md) | Full config reference, backups, cloud storage |
218
+ | [Examples](docs/examples.md) | Real-world usage scenarios with AI assistants |
219
+ | [Design Philosophy](docs/design-philosophy.md) | Trade-offs and architectural decisions |
220
+ | [Performance](docs/performance.md) | Benchmarks and optimization details |
221
+ | [Web Server](docs/features/web-server.md) | Optional visual web interface |
222
+ | [Changelog](CHANGELOG.md) | Version history |
593
223
 
594
- #### šŸ” Example 3: Secure Information Storage
595
-
596
- **Storing Credentials:**
597
- > **You:** "Store this API key for the payment gateway: sk_live_abc123xyz"
598
- >
599
- > **Assistant:** *Stores securely with tags: `api-key`, `payment`, `credentials`*
600
-
601
- > **You:** "The database connection string is postgresql://user:pass@host:5432/db"
602
- >
603
- > **Assistant:** *Stores with tags: `credentials`, `database`, `connection-string`*
604
-
605
- **Retrieval:**
606
- > **You:** "What's my payment gateway API key?"
607
- >
608
- > **Assistant:** *Searches memories: "Your payment gateway API key is sk_live_abc123xyz"*
609
-
610
- > **You:** "Show me all my stored credentials"
611
- >
612
- > **Assistant:** *Lists all memories tagged with `credentials`*
613
-
614
- #### šŸ“‹ Example 4: Meeting Notes & Decisions
615
-
616
- **After Team Meeting:**
617
- > **You:** "Meeting notes: Team agreed on 2-week sprints starting Monday. Sprint planning on Mondays at 10am. Retrospectives on Fridays."
618
- >
619
- > **Assistant:** *Stores with tags: `meeting`, `agile`, `team`, `schedule`*
620
-
621
- > **You:** "Important decision: We're going with PostgreSQL instead of MongoDB for better transaction support."
622
- >
623
- > **Assistant:** *Stores with tags: `decision`, `database`, `architecture`*
624
-
625
- **Later:**
626
- > **You:** "When are our sprint meetings?"
627
- >
628
- > **Assistant:** *Retrieves schedule from meeting notes*
629
-
630
- > **You:** "Why did we choose PostgreSQL?"
631
- >
632
- > **Assistant:** *Finds decision and reasoning: "For better transaction support"*
633
-
634
- #### šŸš€ Example 5: Continuous Context Building
635
-
636
- The real power comes from **persistent memory across all conversations**:
637
-
638
- ```
639
- Session 1: Store project setup info
640
- ↓
641
- Session 2: Assistant remembers and builds on it
642
- ↓
643
- Session 5: Store API decisions
644
- ↓
645
- Session 10: Assistant recalls everything - full context maintained
646
- ↓
647
- Session 20: Complete project knowledge base available instantly
648
- ```
649
-
650
- **This is impossible with standard chat sessions that lose context!**
651
-
652
- ---
653
-
654
- ### šŸ”§ CLI Usage (For Testing & Direct Access)
655
-
656
- You can also use the CLI directly for testing or scripting:
657
-
658
- ```bash
659
- # Store a memory
660
- simple-memory memory-graphql --query 'mutation {
661
- store(content: "PostgreSQL connection: postgresql://localhost:5432/mydb", tags: ["database", "credentials"])
662
- { hash }
663
- }'
664
-
665
- # Search by content
666
- simple-memory memory-graphql --query '{ memories(query: "PostgreSQL") { hash title tags } }'
667
-
668
- # Search by tags
669
- simple-memory memory-graphql --query '{ memories(tags: ["credentials"]) { hash content } }'
670
-
671
- # View statistics
672
- simple-memory memory-graphql --query '{ stats { totalMemories totalRelationships dbSize } }'
673
-
674
- # Delete memories by tag
675
- simple-memory memory-graphql --query 'mutation { delete(tag: "temporary") { deletedCount } }'
676
- ```
677
-
678
- **When to use CLI:**
679
- - āœ… Testing the MCP server works
680
- - āœ… Bulk operations or scripting
681
- - āœ… Debugging or inspecting the database
682
- - āœ… Manual backup before major changes
683
-
684
- **Primary use case:** Let your AI assistant handle everything through natural conversation!
224
+ **Developer Docs:** [docs/dev/](docs/dev/) - Manual testing, publishing guide, optimization history
685
225
 
686
226
  ---
687
227
 
688
228
  ## šŸ¤ Contributing
689
229
 
690
- Contributions are welcome! Please feel free to submit a Pull Request.
691
-
692
230
  1. Fork the repository
693
- 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
694
- 3. Commit your changes (`git commit -m 'Add amazing feature'`)
695
- 4. Push to the branch (`git push origin feature/amazing-feature`)
231
+ 2. Create feature branch (`git checkout -b feature/amazing-feature`)
232
+ 3. Commit changes (`git commit -m 'Add amazing feature'`)
233
+ 4. Push to branch (`git push origin feature/amazing-feature`)
696
234
  5. Open a Pull Request
697
235
 
698
236
  ---
699
237
 
700
238
  ## šŸ“„ License
701
239
 
702
- This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
240
+ MIT License - see [LICENSE](LICENSE) for details.
703
241
 
704
242
  ---
705
243
 
706
244
  ## šŸ™ Acknowledgments
707
245
 
708
- - Built with the [Model Context Protocol SDK](https://github.com/modelcontextprotocol/typescript-sdk)
709
- - Powered by [SQLite](https://www.sqlite.org/) and [better-sqlite3](https://github.com/WiseLibs/better-sqlite3)
710
-
711
- ---
712
-
713
- ## šŸ“š Additional Resources
714
-
715
- ### For Users
716
- - šŸ—ļø [Design Philosophy](docs/DESIGN_PHILOSOPHY.md) - Why Simple Memory is built this way, trade-offs, and honest limitations
717
- - šŸš€ [Performance Benchmarks](docs/PERFORMANCE.md) - Detailed performance analysis and optimization insights
718
- - šŸ“ [Changelog](CHANGELOG.md) - Version history and changes
719
-
720
- ### For Package Maintainers
721
- - šŸ“¦ [NPM Publishing Guide](docs/NPM_PUBLISHING.md) - Publishing steps, automation options, and maintenance tips
722
-
723
- ---
724
-
725
- ## šŸ› Issues & Support
726
-
727
- Found a bug or have a feature request?
728
-
729
- - šŸ› [Report Issues](https://github.com/chrisribe/simple-memory-mcp/issues)
730
- - šŸ’¬ [Start a Discussion](https://github.com/chrisribe/simple-memory-mcp/discussions)
731
- - šŸ“§ Check the [documentation](https://github.com/chrisribe/simple-memory-mcp)
246
+ - [Model Context Protocol SDK](https://github.com/modelcontextprotocol/typescript-sdk)
247
+ - [SQLite](https://www.sqlite.org/) & [better-sqlite3](https://github.com/WiseLibs/better-sqlite3)
732
248
 
733
249
  ---
734
250
 
@@ -739,4 +255,3 @@ Found a bug or have a feature request?
739
255
  Made with ā¤ļø by [chrisribe](https://github.com/chrisribe)
740
256
 
741
257
  </div>
742
-
@@ -9,5 +9,5 @@ export declare const typeDefs: string;
9
9
  * Schema description for the MCP tool definition.
10
10
  * This is embedded in the tool description so LLMs know the full API.
11
11
  */
12
- export declare const schemaDescription = "\nExecute GraphQL queries against the memory database. This single tool replaces multiple memory tools with a unified, flexible interface.\n\n\uD83E\uDDE0 PROACTIVE USAGE: Search memories at the START of conversations or when relevant topics arise to provide personalized, context-aware responses.\n\n\uD83D\uDCBE AUTO-CAPTURE: Use store mutation proactively to capture important information WITHOUT waiting for explicit requests.\n\u2713 Preferences, decisions, facts about people/projects, learnings, action items\n\u2717 Skip: greetings, temporary info, transactional exchanges\nStore SILENTLY - don't announce saves.\n\nSCHEMA:\n Query {\n memories(query: String, tags: [String], limit: Int, summaryOnly: Boolean, previewLength: Int): [Memory!]!\n memory(hash: String!): Memory\n related(hash: String!, limit: Int): [Memory!]!\n stats: Stats!\n }\n \n Mutation {\n store(content: String!, tags: [String]): StoreResult!\n update(hash: String!, content: String!, tags: [String]): UpdateResult!\n delete(hash: String, tag: String): DeleteResult!\n }\n \n Memory { hash, content, title, preview, tags, createdAt, relevance }\n Stats { version, totalMemories, totalRelationships, dbSize, schemaVersion }\n\nEXAMPLES:\n # Search with summaries (efficient)\n { memories(query: \"typescript\", summaryOnly: true) { hash title tags } }\n \n # Get full content by hash\n { memory(hash: \"abc123...\") { content tags } }\n \n # Store new memory\n mutation { store(content: \"Remember this\", tags: [\"note\"]) { success hash } }\n \n # Batch operations in ONE call\n {\n search: memories(query: \"mcp\", limit: 3) { hash title }\n recent: memories(limit: 5) { hash createdAt }\n stats { totalMemories }\n }\n\nTIPS:\n \u26A0\uFE0F TOKEN COST: Full content = 500-2000 tokens/memory, summaries = ~20 tokens\n \u2022 Use summaryOnly: true for search, then memory(hash) for full content\n \u2022 Request only fields you need (e.g., { hash title } not { hash content title tags createdAt })\n \u2022 Batch related queries to reduce round-trips\n";
12
+ export declare const schemaDescription = "\nExecute GraphQL queries against the memory database. This single tool replaces multiple memory tools with a unified, flexible interface.\n\n\uD83E\uDDE0 PROACTIVE USAGE: Search memories at the START of conversations or when relevant topics arise to provide personalized, context-aware responses.\n\n\uD83D\uDCBE AUTO-CAPTURE: Use store mutation proactively to capture important information WITHOUT waiting for explicit requests.\n\u2713 Preferences, decisions, facts about people/projects, learnings, action items\n\u2717 Skip: greetings, temporary info, transactional exchanges\nStore SILENTLY - don't announce saves.\n\nSCHEMA:\n Query {\n memories(query: String, tags: [String], limit: Int, daysAgo: Int, startDate: String, endDate: String, minRelevance: Float, summaryOnly: Boolean, previewLength: Int): [Memory!]!\n memory(hash: String!): Memory\n related(hash: String!, limit: Int): [Memory!]!\n stats: Stats!\n }\n \n Mutation {\n store(content: String!, tags: [String]): StoreResult!\n update(hash: String!, content: String!, tags: [String]): UpdateResult!\n delete(hash: String, tag: String): DeleteResult!\n }\n \n Memory { hash, content, title, preview, tags, createdAt, relevance }\n Stats { version, totalMemories, totalRelationships, dbSize, schemaVersion }\n\nEXAMPLES:\n # Search with summaries (efficient)\n { memories(query: \"typescript\", summaryOnly: true) { hash title tags } }\n \n # Time-filtered searches\n { memories(daysAgo: 7) { hash title createdAt } }\n { memories(startDate: \"2025-01-01\", endDate: \"2025-01-31\") { hash title } }\n { memories(query: \"bug\", tags: [\"urgent\"], daysAgo: 3) { hash title } }\n \n # Get full content by hash\n { memory(hash: \"abc123...\") { content tags } }\n \n # Store new memory\n mutation { store(content: \"Remember this\", tags: [\"note\"]) { success hash } }\n \n # Batch operations in ONE call\n {\n search: memories(query: \"mcp\", limit: 3) { hash title }\n recent: memories(limit: 5) { hash createdAt }\n stats { totalMemories }\n }\n\nTIPS:\n \u26A0\uFE0F TOKEN COST: Full content = 500-2000 tokens/memory, summaries = ~20 tokens\n \u2022 Use summaryOnly: true for search, then memory(hash) for full content\n \u2022 Request only fields you need (e.g., { hash title } not { hash content title tags createdAt })\n \u2022 Batch related queries to reduce round-trips\n";
13
13
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/graphql/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkQH,eAAO,MAAM,QAAQ,QAUT,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,iBAAiB,4iEAiD7B,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/graphql/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkQH,eAAO,MAAM,QAAQ,QAUT,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,iBAAiB,02EAsD7B,CAAC"}
@@ -273,7 +273,7 @@ Store SILENTLY - don't announce saves.
273
273
 
274
274
  SCHEMA:
275
275
  Query {
276
- memories(query: String, tags: [String], limit: Int, summaryOnly: Boolean, previewLength: Int): [Memory!]!
276
+ memories(query: String, tags: [String], limit: Int, daysAgo: Int, startDate: String, endDate: String, minRelevance: Float, summaryOnly: Boolean, previewLength: Int): [Memory!]!
277
277
  memory(hash: String!): Memory
278
278
  related(hash: String!, limit: Int): [Memory!]!
279
279
  stats: Stats!
@@ -292,6 +292,11 @@ EXAMPLES:
292
292
  # Search with summaries (efficient)
293
293
  { memories(query: "typescript", summaryOnly: true) { hash title tags } }
294
294
 
295
+ # Time-filtered searches
296
+ { memories(daysAgo: 7) { hash title createdAt } }
297
+ { memories(startDate: "2025-01-01", endDate: "2025-01-31") { hash title } }
298
+ { memories(query: "bug", tags: ["urgent"], daysAgo: 3) { hash title } }
299
+
295
300
  # Get full content by hash
296
301
  { memory(hash: "abc123...") { content tags } }
297
302
 
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/graphql/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBlB,CAAC;AAEF,MAAM,iBAAiB,GAAG;;;;;;;;;;CAUzB,CAAC;AAEF,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;CAezB,CAAC;AAEF,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CjB,CAAC;AAEF,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;CAYxB,CAAC;AAEF,MAAM,eAAe,GAAG;;;;;;;;;;;;CAYvB,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;CAYxB,CAAC;AAEF,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDjB,CAAC;AAEF,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCpB,CAAC;AAEF,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,UAAU;IACV,iBAAiB;IACjB,iBAAiB;IACjB,SAAS;IACT,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,SAAS;IACT,YAAY;CACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDhC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/graphql/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBlB,CAAC;AAEF,MAAM,iBAAiB,GAAG;;;;;;;;;;CAUzB,CAAC;AAEF,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;CAezB,CAAC;AAEF,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CjB,CAAC;AAEF,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;CAYxB,CAAC;AAEF,MAAM,eAAe,GAAG;;;;;;;;;;;;CAYvB,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;CAYxB,CAAC;AAEF,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDjB,CAAC;AAEF,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCpB,CAAC;AAEF,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,UAAU;IACV,iBAAiB;IACjB,iBAAiB;IACjB,SAAS;IACT,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,SAAS;IACT,YAAY;CACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDhC,CAAC"}
package/dist/index.js CHANGED
@@ -498,6 +498,12 @@ async function main() {
498
498
  rebuildHashIndex(dbPath);
499
499
  process.exit(0);
500
500
  }
501
+ // Handle setup command - configures VS Code and Claude Desktop
502
+ if (command === 'setup') {
503
+ const { runSetup } = await import('./setup/configure-mcp-clients.js');
504
+ runSetup();
505
+ process.exit(0);
506
+ }
501
507
  // Handle export/import (keep these as-is from tool registry)
502
508
  if (command === 'export-memory' || command === 'import-memory') {
503
509
  try {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Configure MCP clients (VS Code, Claude Desktop) for simple-memory
3
+ *
4
+ * Detects installed clients and adds simple-memory-mcp configuration
5
+ */
6
+ export declare function runSetup(): void;
7
+ //# sourceMappingURL=configure-mcp-clients.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-mcp-clients.d.ts","sourceRoot":"","sources":["../../src/setup/configure-mcp-clients.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmJH,wBAAgB,QAAQ,IAAI,IAAI,CAuC/B"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Configure MCP clients (VS Code, Claude Desktop) for simple-memory
3
+ *
4
+ * Detects installed clients and adds simple-memory-mcp configuration
5
+ */
6
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
7
+ import { join, dirname } from 'path';
8
+ import { homedir } from 'os';
9
+ import { fileURLToPath } from 'url';
10
+ import { initConfigFile } from '../utils/config.js';
11
+ // Detect if running from git source (developers) or npm install (users)
12
+ const __filename = fileURLToPath(import.meta.url);
13
+ const __dirname = dirname(__filename);
14
+ const isFromSource = existsSync(join(__dirname, '..', '..', '.git')) || existsSync(join(__dirname, '..', '..', 'src'));
15
+ // For source/dev: use linked local command
16
+ // For npm users: use npx (always gets latest from registry)
17
+ const MCP_CONFIG = isFromSource
18
+ ? { "simple-memory-mcp": { "command": "simple-memory" } }
19
+ : { "simple-memory-mcp": { "command": "npx", "args": ["-y", "simple-memory-mcp"] } };
20
+ const MCP_CONFIG_WITH_COMMENTS = isFromSource
21
+ ? `{
22
+ "servers": {
23
+ "simple-memory-mcp": {
24
+ "command": "simple-memory"
25
+ // šŸ’” Using locally-linked build (from npm run setup)
26
+ // šŸ’” For production, use npx:
27
+ // "command": "npx",
28
+ // "args": ["-y", "simple-memory-mcp"]
29
+ //
30
+ // šŸ’” Environment variables:
31
+ // "env": {
32
+ // "MEMORY_DB": "./memory.db",
33
+ // "MEMORY_BACKUP_PATH": "./backups",
34
+ // "DEBUG": "false"
35
+ // }
36
+ }
37
+ }
38
+ }`
39
+ : `{
40
+ "servers": {
41
+ "simple-memory-mcp": {
42
+ "command": "npx",
43
+ "args": ["-y", "simple-memory-mcp"]
44
+ // šŸ’” Environment variables:
45
+ // "env": {
46
+ // "MEMORY_DB": "./memory.db",
47
+ // "MEMORY_BACKUP_PATH": "./backups",
48
+ // "DEBUG": "false"
49
+ // }
50
+ }
51
+ }
52
+ }`;
53
+ function getVSCodeConfigPaths() {
54
+ const platform = process.platform;
55
+ const home = homedir();
56
+ const paths = [];
57
+ if (platform === 'win32') {
58
+ const appData = process.env.APPDATA || join(home, 'AppData', 'Roaming');
59
+ paths.push({ name: 'VS Code', path: join(appData, 'Code', 'User').replace(/\\/g, '/') }, { name: 'VS Code Insiders', path: join(appData, 'Code - Insiders', 'User').replace(/\\/g, '/') });
60
+ }
61
+ else if (platform === 'darwin') {
62
+ const appSupport = join(home, 'Library', 'Application Support');
63
+ paths.push({ name: 'VS Code', path: join(appSupport, 'Code', 'User') }, { name: 'VS Code Insiders', path: join(appSupport, 'Code - Insiders', 'User') });
64
+ }
65
+ else {
66
+ const config = join(home, '.config');
67
+ paths.push({ name: 'VS Code', path: join(config, 'Code', 'User') }, { name: 'VS Code Insiders', path: join(config, 'Code - Insiders', 'User') });
68
+ }
69
+ return paths;
70
+ }
71
+ function configureVSCode(name, vscodeUserPath) {
72
+ const mcpJsonPath = join(vscodeUserPath, 'mcp.json');
73
+ if (!existsSync(vscodeUserPath)) {
74
+ return { success: false, reason: 'not-found' };
75
+ }
76
+ console.log(`\nāœ… ${name} detected!`);
77
+ let mcpConfig = {};
78
+ let serversProp = 'servers';
79
+ // Read existing mcp.json if it exists
80
+ if (existsSync(mcpJsonPath)) {
81
+ try {
82
+ mcpConfig = JSON.parse(readFileSync(mcpJsonPath, 'utf8'));
83
+ // Detect which property is used
84
+ if (mcpConfig.servers) {
85
+ serversProp = 'servers';
86
+ }
87
+ else if (mcpConfig.mcpServers) {
88
+ serversProp = 'mcpServers';
89
+ }
90
+ if (!mcpConfig[serversProp]) {
91
+ mcpConfig[serversProp] = {};
92
+ }
93
+ }
94
+ catch {
95
+ console.log(`āš ļø Could not parse mcp.json for ${name}`);
96
+ return { success: false, reason: 'parse-error' };
97
+ }
98
+ }
99
+ else {
100
+ mcpConfig[serversProp] = {};
101
+ }
102
+ // Check if already configured
103
+ if (mcpConfig[serversProp]['simple-memory-mcp']) {
104
+ console.log(`āœ… Already configured in ${name}`);
105
+ return { success: true, reason: 'already-configured', path: mcpJsonPath.replace(/\\/g, '/') };
106
+ }
107
+ // Add simple-memory-mcp config
108
+ mcpConfig[serversProp]['simple-memory-mcp'] = MCP_CONFIG['simple-memory-mcp'];
109
+ try {
110
+ mkdirSync(vscodeUserPath, { recursive: true });
111
+ writeFileSync(mcpJsonPath, JSON.stringify(mcpConfig, null, 2), 'utf8');
112
+ console.log(`āœ… Added to ${name} mcp.json`);
113
+ return { success: true, reason: 'configured', path: mcpJsonPath.replace(/\\/g, '/') };
114
+ }
115
+ catch (error) {
116
+ console.error(`āŒ Failed to update ${name} mcp.json:`, error.message);
117
+ return { success: false, reason: 'write-error' };
118
+ }
119
+ }
120
+ export function runSetup() {
121
+ const vscodeInstalls = getVSCodeConfigPaths();
122
+ let configuredCount = 0;
123
+ let foundCount = 0;
124
+ console.log('\nšŸ”§ Checking for VS Code installations...');
125
+ for (const install of vscodeInstalls) {
126
+ const result = configureVSCode(install.name, install.path);
127
+ if (result.success) {
128
+ foundCount++;
129
+ if (result.reason === 'configured') {
130
+ configuredCount++;
131
+ }
132
+ }
133
+ }
134
+ if (foundCount === 0) {
135
+ console.log('\nā„¹ļø No VS Code installations detected');
136
+ console.log(' Add this to your VS Code User/mcp.json manually:');
137
+ }
138
+ else if (configuredCount > 0) {
139
+ console.log('\nšŸŽ‰ Configuration complete!');
140
+ console.log(' Restart VS Code and simple-memory-mcp will be available');
141
+ }
142
+ else {
143
+ console.log('\nāœ… All installations already configured');
144
+ }
145
+ // Initialize config file (creates ~/.simple-memory/config.json if not exists)
146
+ console.log('\nšŸ”§ Checking config file...');
147
+ const { path: configPath, created } = initConfigFile();
148
+ if (created) {
149
+ console.log(`āœ… Created config file: ${configPath}`);
150
+ }
151
+ else {
152
+ console.log(`āœ… Config file exists: ${configPath}`);
153
+ }
154
+ console.log('\nšŸ’” Example MCP configuration with all options:');
155
+ console.log(MCP_CONFIG_WITH_COMMENTS);
156
+ console.log('\nšŸ“– Configuration docs: https://github.com/chrisribe/simple-memory-mcp#configuration');
157
+ }
158
+ //# sourceMappingURL=configure-mcp-clients.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-mcp-clients.js","sourceRoot":"","sources":["../../src/setup/configure-mcp-clients.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "simple-memory-mcp",
3
- "version": "1.1.3",
3
+ "version": "2.0.2",
4
4
  "description": "Simple memory MCP server for storing and retrieving memories with tags",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "scripts": {
19
19
  "setup": "npm install && npm run build && npm link && npm run configure",
20
- "configure": "node scripts/setup-vscode.js",
20
+ "configure": "node dist/index.js setup",
21
21
  "build": "tsc",
22
22
  "build:release": "node scripts/bump-version.js patch && tsc",
23
23
  "postbuild": "node -e \"if (process.platform !== 'win32') { require('child_process').execSync('chmod +x dist/index.js'); }\"",