@prmichaelsen/remember-mcp 3.15.6 → 3.15.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/CHANGELOG.md CHANGED
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.15.7] - 2026-03-07
9
+
10
+ ### Changed
11
+
12
+ - Expand tool descriptions for `remember_search_by`, `remember_search_ghost_memory_by`, and `remember_search_space_by` with full mode explanations and complete property reference for byProperty mode
13
+ - Add inline mode descriptions to `mode` enum field so agents see them in schema-only views
14
+ - Document all sortable properties: 21 emotions, 10 functional signals, 3 composite scores, core fields, ratings, and REM metadata
15
+
8
16
  ## [3.15.5] - 2026-03-07
9
17
 
10
18
  ### Changed
@@ -8177,14 +8177,25 @@ var searchByTool = {
8177
8177
  Use remember_find_similar for vector similarity.
8178
8178
  Use this tool for structured browsing, sorting, and discovery.
8179
8179
 
8180
+ byBroad returns truncated content (content_head/mid/tail ~100 chars each) instead of full content.
8181
+ Use it to scan large collections, then drill into specific memories with other search tools.
8182
+
8183
+ Available sort_field values for byProperty:
8184
+ Emotions (0-1): feel_emotional_significance, feel_vulnerability, feel_trauma, feel_humor, feel_happiness, feel_sadness, feel_fear, feel_anger, feel_surprise, feel_disgust, feel_contempt, feel_embarrassment, feel_shame, feel_guilt, feel_excitement, feel_pride, feel_intensity, feel_coherence_tension
8185
+ Affect dimensions: feel_valence (-1 to 1), feel_arousal (0-1), feel_dominance (0-1)
8186
+ Functional signals (0-1): functional_salience, functional_urgency, functional_social_weight, functional_agency, functional_novelty, functional_retrieval_utility, functional_narrative_importance, functional_aesthetic_quality, functional_valence, functional_coherence_tension
8187
+ Composite scores: feel_significance, functional_significance, total_significance
8188
+ Core: weight, trust_score, confidence, strength, relationship_count, version, access_count
8189
+ Ratings: rating_sum, rating_count, rating_bayesian
8190
+ REM metadata: rem_visits (times scored by REM)
8191
+
8180
8192
  byProperty examples:
8181
8193
  - { mode: "byProperty", sort_field: "feel_trauma", sort_order: "desc" } \u2014 most traumatic
8182
8194
  - { mode: "byProperty", sort_field: "feel_humor", sort_order: "desc" } \u2014 funniest
8183
- - { mode: "byProperty", sort_field: "feel_retrieval_utility", sort_order: "desc" } \u2014 most useful
8195
+ - { mode: "byProperty", sort_field: "functional_retrieval_utility", sort_order: "desc" } \u2014 most useful
8184
8196
  - { mode: "byProperty", sort_field: "rem_visits", sort_order: "asc" } \u2014 least scored by REM
8185
-
8186
- byBroad returns truncated content (content_head/mid/tail ~100 chars each) instead of full content.
8187
- Use it to scan large collections, then drill into specific memories with other search tools.`,
8197
+ - { mode: "byProperty", sort_field: "total_significance", sort_order: "desc" } \u2014 most significant overall
8198
+ - { mode: "byProperty", sort_field: "functional_novelty", sort_order: "desc" } \u2014 most novel`,
8188
8199
  inputSchema: {
8189
8200
  type: "object",
8190
8201
  properties: {
@@ -8612,15 +8623,35 @@ async function handleQueryGhostMemory(args, userId, authContext) {
8612
8623
  // src/tools/search-ghost-memory-by.ts
8613
8624
  var searchGhostMemoryByTool = {
8614
8625
  name: "remember_search_ghost_memory_by",
8615
- description: `Search ghost memories using specialized modes (byTime, byDensity,
8616
- byProperty, byBroad, etc.). Automatically filters to content_type: ghost.`,
8626
+ description: `Search ghost memories using specialized sort/discovery modes. Automatically filters to content_type: ghost.
8627
+
8628
+ Modes:
8629
+ - byTime: Chronological sort (newest/oldest first)
8630
+ - byDensity: Sort by relationship count (most connected ghost memories)
8631
+ - byRating: Sort by Bayesian rating average (social ratings from spaces)
8632
+ - byDiscovery: Interleaved rated + unrated content for exploration (4:1 ratio)
8633
+ - byProperty: Sort by any memory property (e.g., feel_trauma, weight, feel_salience). Requires sort_field.
8634
+ - bySignificance: Sort by total_significance (combined emotional + functional score from REM)
8635
+ - byBroad: Massive results with truncated content (content_head/mid/tail ~100 chars each) for scan-and-drill-in workflow
8636
+ - byRandom: Random sampling for serendipitous rediscovery
8637
+
8638
+ Use remember_search_ghost_memory for hybrid semantic+keyword search.
8639
+ Use this tool for structured browsing, sorting, and discovery of ghost interaction records.
8640
+
8641
+ Available sort_field values for byProperty:
8642
+ Emotions (0-1): feel_emotional_significance, feel_vulnerability, feel_trauma, feel_humor, feel_happiness, feel_sadness, feel_fear, feel_anger, feel_surprise, feel_disgust, feel_contempt, feel_embarrassment, feel_shame, feel_guilt, feel_excitement, feel_pride, feel_intensity, feel_coherence_tension
8643
+ Affect dimensions: feel_valence (-1 to 1), feel_arousal (0-1), feel_dominance (0-1)
8644
+ Functional signals (0-1): functional_salience, functional_urgency, functional_social_weight, functional_agency, functional_novelty, functional_retrieval_utility, functional_narrative_importance, functional_aesthetic_quality, functional_valence, functional_coherence_tension
8645
+ Composite scores: feel_significance, functional_significance, total_significance
8646
+ Core: weight, trust_score, relationship_count, version
8647
+ REM metadata: rem_visits`,
8617
8648
  inputSchema: {
8618
8649
  type: "object",
8619
8650
  properties: {
8620
8651
  mode: {
8621
8652
  type: "string",
8622
8653
  enum: ["byTime", "byDensity", "byRating", "byDiscovery", "byProperty", "bySignificance", "byRandom", "byBroad"],
8623
- description: "Search mode"
8654
+ description: "Search mode: byTime (chronological), byDensity (most connected), byRating (highest rated), byDiscovery (explore mix), byProperty (sort by field), bySignificance (emotional+functional score), byRandom (random sample), byBroad (scan many truncated)"
8624
8655
  },
8625
8656
  query: { type: "string", description: "Optional search query" },
8626
8657
  sort_order: { type: "string", enum: ["asc", "desc"] },
@@ -8746,25 +8777,36 @@ async function handleGetCore(args, userId, _authContext) {
8746
8777
  // src/tools/search-space-by.ts
8747
8778
  var searchSpaceByTool = {
8748
8779
  name: "remember_search_space_by",
8749
- description: `Search shared spaces using specialized modes. Similar to remember_search_by
8750
- but operates on published memories in spaces and groups.
8780
+ description: `Search published memories in shared spaces/groups using specialized sort/discovery modes.
8751
8781
 
8752
8782
  Modes:
8753
- - byTime: Chronological sort of published memories
8754
- - byRating: Sort by Bayesian rating average (social ratings)
8755
- - byDiscovery: Interleaved rated + unrated for exploration
8756
- - byProperty: Sort by any property (e.g., feel_trauma, total_significance)
8757
- - byBroad: Massive results with truncated content
8758
- - byRandom: Random sampling from space
8759
-
8760
- At least one of 'spaces' or 'groups' must be provided.`,
8783
+ - byTime: Chronological sort (newest/oldest first)
8784
+ - byRating: Sort by Bayesian rating average (social ratings from other users)
8785
+ - byDiscovery: Interleaved rated + unrated content for exploration (4:1 ratio). Good for finding hidden gems.
8786
+ - byProperty: Sort by any memory property (e.g., feel_trauma, total_significance, weight). Requires sort_field.
8787
+ - byBroad: Massive results with truncated content (content_head/mid/tail ~100 chars each) for scan-and-drill-in workflow
8788
+ - byRandom: Random sampling for serendipitous discovery
8789
+
8790
+ At least one of 'spaces' or 'groups' must be provided.
8791
+
8792
+ Use remember_search_space for hybrid semantic+keyword search of space memories.
8793
+ Use this tool for structured browsing, sorting, and discovery of published content.
8794
+
8795
+ Available sort_field values for byProperty:
8796
+ Emotions (0-1): feel_emotional_significance, feel_vulnerability, feel_trauma, feel_humor, feel_happiness, feel_sadness, feel_fear, feel_anger, feel_surprise, feel_disgust, feel_contempt, feel_embarrassment, feel_shame, feel_guilt, feel_excitement, feel_pride, feel_intensity, feel_coherence_tension
8797
+ Affect dimensions: feel_valence (-1 to 1), feel_arousal (0-1), feel_dominance (0-1)
8798
+ Functional signals (0-1): functional_salience, functional_urgency, functional_social_weight, functional_agency, functional_novelty, functional_retrieval_utility, functional_narrative_importance, functional_aesthetic_quality, functional_valence, functional_coherence_tension
8799
+ Composite scores: feel_significance, functional_significance, total_significance
8800
+ Core: weight, trust_score, relationship_count, version
8801
+ Ratings: rating_sum, rating_count, rating_bayesian
8802
+ Published: discovery_count, revision_count`,
8761
8803
  inputSchema: {
8762
8804
  type: "object",
8763
8805
  properties: {
8764
8806
  mode: {
8765
8807
  type: "string",
8766
8808
  enum: ["byTime", "byRating", "byDiscovery", "byProperty", "byBroad", "byRandom"],
8767
- description: "Search mode"
8809
+ description: "Search mode: byTime (chronological), byRating (highest rated), byDiscovery (explore mix), byProperty (sort by field), byBroad (scan many truncated), byRandom (random sample)"
8768
8810
  },
8769
8811
  spaces: {
8770
8812
  type: "array",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prmichaelsen/remember-mcp",
3
- "version": "3.15.6",
3
+ "version": "3.15.7",
4
4
  "description": "Multi-tenant memory system MCP server with vector search and relationships",
5
5
  "main": "dist/server.js",
6
6
  "type": "module",
@@ -34,14 +34,25 @@ export const searchByTool = {
34
34
  Use remember_find_similar for vector similarity.
35
35
  Use this tool for structured browsing, sorting, and discovery.
36
36
 
37
+ byBroad returns truncated content (content_head/mid/tail ~100 chars each) instead of full content.
38
+ Use it to scan large collections, then drill into specific memories with other search tools.
39
+
40
+ Available sort_field values for byProperty:
41
+ Emotions (0-1): feel_emotional_significance, feel_vulnerability, feel_trauma, feel_humor, feel_happiness, feel_sadness, feel_fear, feel_anger, feel_surprise, feel_disgust, feel_contempt, feel_embarrassment, feel_shame, feel_guilt, feel_excitement, feel_pride, feel_intensity, feel_coherence_tension
42
+ Affect dimensions: feel_valence (-1 to 1), feel_arousal (0-1), feel_dominance (0-1)
43
+ Functional signals (0-1): functional_salience, functional_urgency, functional_social_weight, functional_agency, functional_novelty, functional_retrieval_utility, functional_narrative_importance, functional_aesthetic_quality, functional_valence, functional_coherence_tension
44
+ Composite scores: feel_significance, functional_significance, total_significance
45
+ Core: weight, trust_score, confidence, strength, relationship_count, version, access_count
46
+ Ratings: rating_sum, rating_count, rating_bayesian
47
+ REM metadata: rem_visits (times scored by REM)
48
+
37
49
  byProperty examples:
38
50
  - { mode: "byProperty", sort_field: "feel_trauma", sort_order: "desc" } — most traumatic
39
51
  - { mode: "byProperty", sort_field: "feel_humor", sort_order: "desc" } — funniest
40
- - { mode: "byProperty", sort_field: "feel_retrieval_utility", sort_order: "desc" } — most useful
52
+ - { mode: "byProperty", sort_field: "functional_retrieval_utility", sort_order: "desc" } — most useful
41
53
  - { mode: "byProperty", sort_field: "rem_visits", sort_order: "asc" } — least scored by REM
42
-
43
- byBroad returns truncated content (content_head/mid/tail ~100 chars each) instead of full content.
44
- Use it to scan large collections, then drill into specific memories with other search tools.`,
54
+ - { mode: "byProperty", sort_field: "total_significance", sort_order: "desc" } — most significant overall
55
+ - { mode: "byProperty", sort_field: "functional_novelty", sort_order: "desc" } most novel`,
45
56
  inputSchema: {
46
57
  type: 'object',
47
58
  properties: {
@@ -11,15 +11,35 @@ import type { SearchByMode } from './search-by.js';
11
11
 
12
12
  export const searchGhostMemoryByTool = {
13
13
  name: 'remember_search_ghost_memory_by',
14
- description: `Search ghost memories using specialized modes (byTime, byDensity,
15
- byProperty, byBroad, etc.). Automatically filters to content_type: ghost.`,
14
+ description: `Search ghost memories using specialized sort/discovery modes. Automatically filters to content_type: ghost.
15
+
16
+ Modes:
17
+ - byTime: Chronological sort (newest/oldest first)
18
+ - byDensity: Sort by relationship count (most connected ghost memories)
19
+ - byRating: Sort by Bayesian rating average (social ratings from spaces)
20
+ - byDiscovery: Interleaved rated + unrated content for exploration (4:1 ratio)
21
+ - byProperty: Sort by any memory property (e.g., feel_trauma, weight, feel_salience). Requires sort_field.
22
+ - bySignificance: Sort by total_significance (combined emotional + functional score from REM)
23
+ - byBroad: Massive results with truncated content (content_head/mid/tail ~100 chars each) for scan-and-drill-in workflow
24
+ - byRandom: Random sampling for serendipitous rediscovery
25
+
26
+ Use remember_search_ghost_memory for hybrid semantic+keyword search.
27
+ Use this tool for structured browsing, sorting, and discovery of ghost interaction records.
28
+
29
+ Available sort_field values for byProperty:
30
+ Emotions (0-1): feel_emotional_significance, feel_vulnerability, feel_trauma, feel_humor, feel_happiness, feel_sadness, feel_fear, feel_anger, feel_surprise, feel_disgust, feel_contempt, feel_embarrassment, feel_shame, feel_guilt, feel_excitement, feel_pride, feel_intensity, feel_coherence_tension
31
+ Affect dimensions: feel_valence (-1 to 1), feel_arousal (0-1), feel_dominance (0-1)
32
+ Functional signals (0-1): functional_salience, functional_urgency, functional_social_weight, functional_agency, functional_novelty, functional_retrieval_utility, functional_narrative_importance, functional_aesthetic_quality, functional_valence, functional_coherence_tension
33
+ Composite scores: feel_significance, functional_significance, total_significance
34
+ Core: weight, trust_score, relationship_count, version
35
+ REM metadata: rem_visits`,
16
36
  inputSchema: {
17
37
  type: 'object',
18
38
  properties: {
19
39
  mode: {
20
40
  type: 'string',
21
41
  enum: ['byTime', 'byDensity', 'byRating', 'byDiscovery', 'byProperty', 'bySignificance', 'byRandom', 'byBroad'],
22
- description: 'Search mode',
42
+ description: 'Search mode: byTime (chronological), byDensity (most connected), byRating (highest rated), byDiscovery (explore mix), byProperty (sort by field), bySignificance (emotional+functional score), byRandom (random sample), byBroad (scan many truncated)',
23
43
  },
24
44
  query: { type: 'string', description: 'Optional search query' },
25
45
  sort_order: { type: 'string', enum: ['asc', 'desc'] },
@@ -12,25 +12,36 @@ export type SearchSpaceByMode = 'byTime' | 'byRating' | 'byDiscovery' | 'byPrope
12
12
 
13
13
  export const searchSpaceByTool = {
14
14
  name: 'remember_search_space_by',
15
- description: `Search shared spaces using specialized modes. Similar to remember_search_by
16
- but operates on published memories in spaces and groups.
15
+ description: `Search published memories in shared spaces/groups using specialized sort/discovery modes.
17
16
 
18
17
  Modes:
19
- - byTime: Chronological sort of published memories
20
- - byRating: Sort by Bayesian rating average (social ratings)
21
- - byDiscovery: Interleaved rated + unrated for exploration
22
- - byProperty: Sort by any property (e.g., feel_trauma, total_significance)
23
- - byBroad: Massive results with truncated content
24
- - byRandom: Random sampling from space
25
-
26
- At least one of 'spaces' or 'groups' must be provided.`,
18
+ - byTime: Chronological sort (newest/oldest first)
19
+ - byRating: Sort by Bayesian rating average (social ratings from other users)
20
+ - byDiscovery: Interleaved rated + unrated content for exploration (4:1 ratio). Good for finding hidden gems.
21
+ - byProperty: Sort by any memory property (e.g., feel_trauma, total_significance, weight). Requires sort_field.
22
+ - byBroad: Massive results with truncated content (content_head/mid/tail ~100 chars each) for scan-and-drill-in workflow
23
+ - byRandom: Random sampling for serendipitous discovery
24
+
25
+ At least one of 'spaces' or 'groups' must be provided.
26
+
27
+ Use remember_search_space for hybrid semantic+keyword search of space memories.
28
+ Use this tool for structured browsing, sorting, and discovery of published content.
29
+
30
+ Available sort_field values for byProperty:
31
+ Emotions (0-1): feel_emotional_significance, feel_vulnerability, feel_trauma, feel_humor, feel_happiness, feel_sadness, feel_fear, feel_anger, feel_surprise, feel_disgust, feel_contempt, feel_embarrassment, feel_shame, feel_guilt, feel_excitement, feel_pride, feel_intensity, feel_coherence_tension
32
+ Affect dimensions: feel_valence (-1 to 1), feel_arousal (0-1), feel_dominance (0-1)
33
+ Functional signals (0-1): functional_salience, functional_urgency, functional_social_weight, functional_agency, functional_novelty, functional_retrieval_utility, functional_narrative_importance, functional_aesthetic_quality, functional_valence, functional_coherence_tension
34
+ Composite scores: feel_significance, functional_significance, total_significance
35
+ Core: weight, trust_score, relationship_count, version
36
+ Ratings: rating_sum, rating_count, rating_bayesian
37
+ Published: discovery_count, revision_count`,
27
38
  inputSchema: {
28
39
  type: 'object',
29
40
  properties: {
30
41
  mode: {
31
42
  type: 'string',
32
43
  enum: ['byTime', 'byRating', 'byDiscovery', 'byProperty', 'byBroad', 'byRandom'],
33
- description: 'Search mode',
44
+ description: 'Search mode: byTime (chronological), byRating (highest rated), byDiscovery (explore mix), byProperty (sort by field), byBroad (scan many truncated), byRandom (random sample)',
34
45
  },
35
46
  spaces: {
36
47
  type: 'array',