@prmichaelsen/remember-mcp 0.2.4 → 0.2.7

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
@@ -4,17 +4,49 @@ Multi-tenant memory system MCP server with vector search, relationships, and tru
4
4
 
5
5
  ## Features
6
6
 
7
- - 24 MCP tools for memory management
7
+ - 10 MCP tools for memory and relationship management
8
8
  - Multi-tenant with per-user isolation
9
- - Vector search with Weaviate
10
- - Relationship graph between memories
11
- - Template system with auto-suggestion
12
- - Trust-based cross-user access control
13
- - User preferences via conversation
9
+ - Vector search with Weaviate (semantic + keyword hybrid search)
10
+ - Knowledge graph with relationship tracking
11
+ - RAG queries with natural language
12
+ - 45 content types (notes, events, people, recipes, etc.)
13
+ - Trust-based access control (planned for M7)
14
14
 
15
15
  ## Quick Start
16
16
 
17
- ### Standalone (stdio transport)
17
+ ### Option 1: Use with Claude Desktop (Recommended)
18
+
19
+ Add to your Claude Desktop MCP configuration:
20
+
21
+ **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
22
+ **Linux**: `~/.config/Claude/claude_desktop_config.json`
23
+ **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
24
+
25
+ ```json
26
+ {
27
+ "mcpServers": {
28
+ "remember": {
29
+ "command": "npx",
30
+ "args": ["-y", "@prmichaelsen/remember-mcp"],
31
+ "env": {
32
+ "WEAVIATE_REST_URL": "https://your-instance.weaviate.cloud",
33
+ "WEAVIATE_API_KEY": "your-weaviate-api-key",
34
+ "OPENAI_EMBEDDINGS_API_KEY": "sk-...",
35
+ "FIREBASE_ADMIN_SERVICE_ACCOUNT_KEY": "{\"type\":\"service_account\",\"project_id\":\"your-project\",\"private_key\":\"-----BEGIN PRIVATE KEY-----\\nYOUR_KEY\\n-----END PRIVATE KEY-----\\n\",\"client_email\":\"firebase-adminsdk@your-project.iam.gserviceaccount.com\"}",
36
+ "FIREBASE_PROJECT_ID": "your-project-id"
37
+ }
38
+ }
39
+ }
40
+ }
41
+ ```
42
+
43
+ **Important**:
44
+ - Use `\\n` (double backslash) for newlines in private_key
45
+ - Escape all quotes with `\"`
46
+ - Get Weaviate Cloud at https://console.weaviate.cloud
47
+ - Get Firebase service account from Firebase Console → Project Settings → Service Accounts
48
+
49
+ ### Option 2: Standalone (stdio transport)
18
50
 
19
51
  ```bash
20
52
  # Install dependencies
@@ -32,10 +64,10 @@ npm run build
32
64
  npm start
33
65
  ```
34
66
 
35
- ### With mcp-auth (multi-tenant production)
67
+ ### Option 3: With mcp-auth (multi-tenant production)
36
68
 
37
69
  ```typescript
38
- import { wrapServer, JWTAuthProvider, APITokenResolver } from '@prmichaelsen/mcp-auth';
70
+ import { wrapServer, JWTAuthProvider } from '@prmichaelsen/mcp-auth';
39
71
  import { createServer } from '@prmichaelsen/remember-mcp/factory';
40
72
 
41
73
  const wrapped = wrapServer({
@@ -43,10 +75,7 @@ const wrapped = wrapServer({
43
75
  authProvider: new JWTAuthProvider({
44
76
  jwtSecret: process.env.JWT_SECRET
45
77
  }),
46
- tokenResolver: new APITokenResolver({
47
- tenantManagerUrl: process.env.TENANT_MANAGER_URL,
48
- serviceToken: process.env.SERVICE_TOKEN
49
- }),
78
+ // tokenResolver not needed - remember-mcp is self-managed
50
79
  resourceType: 'remember',
51
80
  transport: { type: 'sse', port: 3000 }
52
81
  });
@@ -2,10 +2,11 @@
2
2
 
3
3
  project:
4
4
  name: remember-mcp
5
- version: 0.1.0
5
+ version: 0.2.5
6
6
  started: 2026-02-11
7
7
  status: in_progress
8
- current_milestone: M2
8
+ current_milestone: M5
9
+ last_updated: 2026-02-12
9
10
 
10
11
  milestones:
11
12
  - id: M1
@@ -87,9 +88,28 @@ milestones:
87
88
 
88
89
  - id: M4
89
90
  name: User Preferences
90
- status: not_started
91
- progress: 0%
91
+ status: completed
92
+ progress: 100%
93
+ started: 2026-02-11
94
+ completed: 2026-02-11
92
95
  estimated_weeks: 1
96
+ tasks_completed: 2
97
+ tasks_total: 2
98
+ notes: |
99
+ ✅ UserPreferences type definitions created
100
+ ✅ Default preferences defined with all categories
101
+ ✅ remember_set_preference tool implemented
102
+ ✅ remember_get_preferences tool implemented
103
+ ✅ Preference validation (path and value type checking)
104
+ ✅ User-friendly change messages
105
+ ✅ Firestore integration using firebase-admin-sdk-v8
106
+ ✅ All 2 tools integrated into server.ts and server-factory.ts
107
+ ✅ TypeScript compiles without errors
108
+ ✅ Build successful
109
+ ✅ Complete preference management system
110
+ ✅ Supports 6 preference categories: templates, search, location, privacy, notifications, display
111
+ ✅ Dot-notation path updates (e.g., "templates.auto_suggest")
112
+ ✅ Automatic defaults when preferences don't exist
93
113
 
94
114
  - id: M5
95
115
  name: Template System
@@ -350,46 +370,80 @@ documentation:
350
370
  design_documents: 23
351
371
  milestone_documents: 9
352
372
  pattern_documents: 5
353
- task_documents: 17
373
+ task_documents: 20
354
374
 
355
375
  progress:
356
376
  planning: 100%
357
- implementation: 45%
358
- overall: 45%
377
+ implementation: 50%
378
+ overall: 50%
359
379
 
360
380
  recent_work:
381
+ - date: 2026-02-12
382
+ description: Task 20 COMPLETED - Weaviate v3 Filters & Relationship Search
383
+ items:
384
+ - 🎉 Task 20 (Fix Weaviate v3 Filters) COMPLETED!
385
+ - ✅ Created src/utils/weaviate-filters.ts with v3 filter builders
386
+ - ✅ Implemented buildCombinedSearchFilters() with OR logic
387
+ - ✅ Implemented buildMemoryOnlyFilters() for backward compatibility
388
+ - ✅ Implemented buildRelationshipOnlyFilters() for relationship-only search
389
+ - ✅ Updated search-memory.ts to use v3 filters
390
+ - ✅ Updated search-memory.ts to search BOTH memories AND relationships by default
391
+ - ✅ Updated query-memory.ts to use v3 filters
392
+ - ✅ Results now separated into memories and relationships arrays
393
+ - ✅ All 25 unit tests passing
394
+ - ✅ Build successful
395
+ - ✅ TypeScript compiles without errors
396
+ - 🔧 Fixed gRPC "paths needs to have an uneven number of components" error
397
+ - 🔧 Replaced old v2 filter format (path/operator/valueText) with v3 fluent API
398
+ - 📋 Ready for M5: Template System
399
+
400
+ - date: 2026-02-12
401
+ description: Project Status Review & Documentation Update
402
+ items:
403
+ - 📊 Comprehensive project review completed
404
+ - ✅ All 12 MCP tools implemented and working
405
+ - ✅ 28 TypeScript source files in project (added weaviate-filters.ts)
406
+ - ✅ 25 unit tests passing (1 skipped)
407
+ - ✅ Build successful (v0.2.5)
408
+ - ✅ TypeScript compiles without errors
409
+ - ⚠️ CRITICAL: Weaviate v3 filter API issue identified (Task 20)
410
+ - ⚠️ Old v2 filter format used in search-memory.ts and query-memory.ts
411
+ - ⚠️ Will cause gRPC errors when filters are used
412
+ - 📋 Task 20 created: Fix Weaviate v3 Filters
413
+
361
414
  - date: 2026-02-11
362
- description: M2 Complete - Core Memory System
415
+ description: M4 Complete - User Preferences
363
416
  items:
417
+ - 🎉 Milestone 4 (User Preferences) COMPLETED!
418
+ - 🎉 Milestone 3 (Relationships & Graph) COMPLETED!
364
419
  - 🎉 Milestone 2 (Core Memory System) COMPLETED!
365
420
  - 🎉 Milestone 1 (Project Foundation) COMPLETED!
366
- - ✅ All 6 M2 memory tools implemented
367
- - ✅ remember_create_memory with 45 content types
368
- - ✅ remember_search_memory with hybrid search + filters
369
- - ✅ remember_delete_memory with cascade option
370
- - ✅ remember_update_memory with partial updates + versioning
371
- - ✅ remember_find_similar with vector similarity search
372
- - ✅ remember_query_memory with RAG-optimized queries
373
- - ✅ All tools integrated into both server.ts and server-factory.ts
421
+ - ✅ UserPreferences type with 6 categories
422
+ - ✅ remember_set_preference tool implemented
423
+ - ✅ remember_get_preferences tool implemented
424
+ - ✅ Preference validation (path and value types)
425
+ - ✅ Default preferences for all categories
426
+ - ✅ User-friendly change messages
427
+ - ✅ Firestore integration using firebase-admin-sdk-v8
428
+ - ✅ Dot-notation path updates (e.g., "templates.auto_suggest")
429
+ - ✅ Automatic defaults when preferences don't exist
430
+ - ✅ All tools integrated into server.ts and server-factory.ts
374
431
  - ✅ TypeScript compiles without errors
375
432
  - ✅ Build successful
376
- - ✅ Complete memory CRUD + search + RAG functionality
377
- - ✅ Comprehensive Memory and Relationship type definitions
378
- - ✅ Weaviate schema with unified memory+relationship storage
379
- - ✅ Content type system with dynamic descriptions
380
- - ✅ 25 unit tests passing (1 skipped integration test)
381
- - ✅ Test coverage: 30.37% overall
382
- - 📋 Ready for M3: Relationship tools
383
433
 
384
434
  next_steps:
385
- - Start M4: User Preferences system
386
- - Test complete memory + relationship system with actual Weaviate instance (create .env file)
387
- - Consider implementing relationship graph traversal queries
435
+ - Task 20 completed - Weaviate v3 filters fixed!
436
+ - Test search operations with actual Weaviate instance to verify filter fix works in production
437
+ - Start M5: Template System (15 default templates + auto-suggestion)
438
+ - Test complete memory + relationship + preferences system with actual Weaviate instance
439
+ - Consider implementing template auto-suggestion
440
+ - Optional: Update find-similar.ts and search-relationship.ts with v3 filters (currently working)
388
441
  - Optional: Create integration tests (Task 6)
389
442
  - Optional: Add development documentation (Task 7)
390
- - Consider M5: Template System
443
+ - Consider M6: Auth & Multi-Tenancy
391
444
 
392
445
  notes:
446
+ - 🎉 Milestone 4 (User Preferences) COMPLETED!
393
447
  - 🎉 Milestone 3 (Relationships & Graph) COMPLETED!
394
448
  - 🎉 Milestone 2 (Core Memory System) COMPLETED!
395
449
  - 🎉 Milestone 1 (Project Foundation) COMPLETED!
@@ -398,6 +452,7 @@ notes:
398
452
  - ✅ M1: 7 tasks complete (Tasks 1-5, 9 complete; Tasks 6-7 deferred)
399
453
  - ✅ M2: 6/6 memory tools complete (100% progress)
400
454
  - ✅ M3: 4/4 relationship tools complete (100% progress)
455
+ - ✅ M4: 2/2 preference tools complete (100% progress)
401
456
  - ✅ Complete memory CRUD operations (create, read, update, delete)
402
457
  - ✅ Complete relationship CRUD operations (create, read, update, delete)
403
458
  - ✅ Advanced search capabilities (hybrid, similarity, RAG queries)
@@ -422,12 +477,17 @@ notes:
422
477
  - ✅ Bidirectional relationship tracking (memories know their relationships)
423
478
  - ✅ Free-form relationship types (inspired_by, contradicts, caused_by, etc.)
424
479
  - ✅ Relationship observations vectorized for semantic search
425
- - 📋 Ready for M4: User Preferences system
480
+ - User preferences system with 6 categories
481
+ - ✅ Conversational preference management (set/get via natural language)
482
+ - ✅ Preference validation and defaults
483
+ - ✅ Firestore storage for user preferences
484
+ - 📋 Ready for M5: Template System
426
485
 
427
486
  current_blockers:
428
- - No Weaviate instance running (all code ready, needs Weaviate to test end-to-end)
487
+ - RESOLVED: Weaviate v3 filter API fixed (Task 20 completed)
488
+ - No Weaviate instance running for end-to-end testing
429
489
  - Environment variables need to be configured (.env file with WEAVIATE_URL, OPENAI_APIKEY, etc.)
430
- - M4 not started: User Preferences system
490
+ - M5 not started: Template System
431
491
 
432
492
  environment_configured:
433
493
  - ⚠️ .env file needs to be created from .env.example
@@ -453,3 +513,54 @@ build_status:
453
513
  - ✅ Source maps generated
454
514
  - ✅ Type definitions generated (.d.ts files)
455
515
  - ✅ Package exports configured for both entry points
516
+ - ✅ Version 0.2.5 published
517
+ - ✅ 28 TypeScript source files (added weaviate-filters.ts)
518
+ - ✅ All 12 tools implemented
519
+ - ✅ Weaviate v3 filter API implemented
520
+
521
+ tools_status:
522
+ memory_tools:
523
+ - ✅ remember_create_memory (src/tools/create-memory.ts)
524
+ - ✅ remember_search_memory (src/tools/search-memory.ts) - v3 filters + searches relationships!
525
+ - ✅ remember_delete_memory (src/tools/delete-memory.ts)
526
+ - ✅ remember_update_memory (src/tools/update-memory.ts)
527
+ - ✅ remember_find_similar (src/tools/find-similar.ts)
528
+ - ✅ remember_query_memory (src/tools/query-memory.ts) - v3 filters
529
+ relationship_tools:
530
+ - ✅ remember_create_relationship (src/tools/create-relationship.ts)
531
+ - ✅ remember_update_relationship (src/tools/update-relationship.ts)
532
+ - ✅ remember_search_relationship (src/tools/search-relationship.ts)
533
+ - ✅ remember_delete_relationship (src/tools/delete-relationship.ts)
534
+ preference_tools:
535
+ - ✅ remember_set_preference (src/tools/set-preference.ts)
536
+ - ✅ remember_get_preferences (src/tools/get-preferences.ts)
537
+
538
+ implementation_notes:
539
+ - All 12 core tools implemented and integrated
540
+ - Server supports both stdio (standalone) and factory (mcp-auth) modes
541
+ - Dual export: main server + factory for multi-tenant
542
+ - README.md has comprehensive setup instructions
543
+ - Works with Claude Desktop, standalone, or mcp-auth wrapper
544
+ - ✅ Weaviate v3 filter API implemented with OR logic for combined search
545
+ - ✅ remember_search_memory now searches BOTH memories AND relationships
546
+ - ✅ Results separated into memories and relationships arrays
547
+ - ✅ Backward compatible: can search only memories with include_relationships: false
548
+ - Filter builder utility (src/utils/weaviate-filters.ts) provides reusable filter construction
549
+
550
+ task_20_completion:
551
+ status: completed
552
+ date: 2026-02-12
553
+ files_created:
554
+ - src/utils/weaviate-filters.ts
555
+ files_modified:
556
+ - src/tools/search-memory.ts
557
+ - src/tools/query-memory.ts
558
+ key_changes:
559
+ - Replaced v2 filter format with v3 fluent API
560
+ - Implemented OR logic to search both memories and relationships
561
+ - Added buildCombinedSearchFilters() function
562
+ - Added buildMemoryOnlyFilters() for backward compatibility
563
+ - Updated search-memory to return both memories and relationships
564
+ - Fixed gRPC "paths needs to have an uneven number of components" error
565
+ tests_passing: 25/26 (1 skipped integration test)
566
+ build_status: successful