mnemon-mcp 1.0.0 → 1.1.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/CHANGELOG.md CHANGED
@@ -7,6 +7,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.1.0] - 2026-03-17
11
+
12
+ ### Added
13
+ - **Session lifecycle tools**: `memory_session_start`, `memory_session_end`, `memory_session_list` — group episodic memories by agent session with client, project, and summary tracking
14
+ - **Search query logging** — `search_log` table (migration v5) for query observability: query text, mode, result count, duration
15
+ - **Recency boost** in FTS scoring: `1 / (1 + daysSince / 365)` rewards recently created memories
16
+ - **Query-centered snippets** — search results highlight the first matched term instead of always starting from content beginning
17
+ - 12 new integration tests for session lifecycle (194 total: 17 md-parser + 13 kb-import + 123 integration + 41 validation)
18
+
19
+ ### Fixed
20
+ - Pagination with `min_confidence`/`min_importance` filters: moved from JS post-filter to SQL WHERE (fixes empty pages at high offsets)
21
+ - `memory_health` cleanup: chain repair now correctly reactivates predecessors when superseding entry is deleted
22
+ - Contradiction detection: properly handles edge case where superseded memory matches source_file
23
+ - Removed dead `conflicting` variable in memory-add
24
+
25
+ ## [1.0.1] - 2026-03-16
26
+
27
+ ### Added
28
+ - MCP Registry manifest (`server.json`) for official registry submission
29
+ - `mcpName` field in package.json for registry verification
30
+ - Landing page link in README
31
+ - Demo GIF with VHS recording scripts
32
+
33
+ ### Changed
34
+ - Homepage URL updated to landing page (aisatisfy.me/mnemon/)
35
+
10
36
  ## [1.0.0] - 2026-03-16
11
37
 
12
38
  ### Added
@@ -30,5 +56,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
30
56
  - 182 tests (unit + integration + validation)
31
57
  - CI pipeline with build, test, and smoke tests
32
58
 
33
- [Unreleased]: https://github.com/nikitacometa/mnemon-mcp/compare/v1.0.0...HEAD
59
+ [Unreleased]: https://github.com/nikitacometa/mnemon-mcp/compare/v1.1.0...HEAD
60
+ [1.1.0]: https://github.com/nikitacometa/mnemon-mcp/compare/v1.0.1...v1.1.0
61
+ [1.0.1]: https://github.com/nikitacometa/mnemon-mcp/compare/v1.0.0...v1.0.1
34
62
  [1.0.0]: https://github.com/nikitacometa/mnemon-mcp/releases/tag/v1.0.0
package/README.md CHANGED
@@ -2,16 +2,22 @@
2
2
 
3
3
  [![CI](https://github.com/nikitacometa/mnemon-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/nikitacometa/mnemon-mcp/actions/workflows/ci.yml)
4
4
  [![npm version](https://img.shields.io/npm/v/mnemon-mcp)](https://www.npmjs.com/package/mnemon-mcp)
5
- [![Node.js](https://img.shields.io/badge/node-%E2%89%A522-brightgreen)](https://nodejs.org/)
5
+ [![Node.js](https://img.shields.io/badge/node-%E2%89%A520-brightgreen)](https://nodejs.org/)
6
6
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
7
7
 
8
8
  **Persistent layered memory for AI agents.**
9
9
  Local-first. Zero-cloud. Single SQLite file.
10
10
 
11
+ [Landing Page](https://aisatisfy.me/mnemon/) · [npm](https://www.npmjs.com/package/mnemon-mcp) · [GitHub](https://github.com/nikitacometa/mnemon-mcp)
12
+
11
13
  Your AI agent forgets everything after each session. Mnemon fixes that.
12
14
 
13
15
  It gives any [MCP](https://modelcontextprotocol.io)-compatible client — [OpenClaw](https://openclaw.ai), Claude Code, Cursor, Windsurf, or your own — a structured long-term memory backed by a single SQLite database on your machine. No API keys, no cloud, no telemetry. Just `npm install` and your agent remembers.
14
16
 
17
+ <p align="center">
18
+ <img src="demo/mnemon-demo.gif" alt="mnemon-mcp demo — memory_add, memory_search, memory_inspect, memory_update" width="800">
19
+ </p>
20
+
15
21
  ---
16
22
 
17
23
  ## Why Layered Memory?
@@ -121,13 +127,13 @@ Use the full path to the compiled entry point:
121
127
  echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | mnemon-mcp
122
128
  ```
123
129
 
124
- You should see 7 tools in the response. The database (`~/.mnemon-mcp/memory.db`) is created automatically on first run.
130
+ You should see 10 tools in the response. The database (`~/.mnemon-mcp/memory.db`) is created automatically on first run.
125
131
 
126
132
  That's it. Your agent now has persistent memory.
127
133
 
128
134
  ## What It Can Do
129
135
 
130
- ### 7 MCP Tools
136
+ ### 10 MCP Tools
131
137
 
132
138
  | Tool | What it does |
133
139
  |------|-------------|
@@ -138,6 +144,9 @@ That's it. Your agent now has persistent memory.
138
144
  | **`memory_inspect`** | Get layer statistics or trace a single memory's version history |
139
145
  | **`memory_export`** | Export to JSON, Markdown, or Claude-md format with filters |
140
146
  | **`memory_health`** | Run diagnostics: expired entries, orphaned chains, stale memories; optionally GC |
147
+ | **`memory_session_start`** | Start an agent session — returns session ID for grouping memories |
148
+ | **`memory_session_end`** | End a session with optional summary; returns duration and memory count |
149
+ | **`memory_session_list`** | List sessions with filters by client, project, or active status |
141
150
 
142
151
  ### MCP Resources & Prompts
143
152
 
@@ -164,7 +173,9 @@ Two modes, both supporting layer / entity / scope / date / confidence filters:
164
173
 
165
174
  **FTS mode** (default) — tokenized full-text search with BM25 ranking. Multi-word queries use AND; if too few results, OR supplements with a score penalty. Progressive AND relaxation tries top-3 most specific terms before falling back to full OR.
166
175
 
167
- Scores: `bm25 × (0.3 + 0.7 × importance) × decay(layer)`
176
+ Scores: `bm25 × (0.3 + 0.7 × importance) × decay(layer) × recency`
177
+
178
+ Recency boost: `1 / (1 + daysSince / 365)` — gently rewards recently created memories without penalizing old ones.
168
179
 
169
180
  **Exact mode** — `LIKE` substring match for precise phrase lookups.
170
181
 
@@ -392,6 +403,45 @@ Returns: status (`healthy` / `warning` / `degraded`), per-layer stats, expired e
392
403
 
393
404
  </details>
394
405
 
406
+ <details>
407
+ <summary><code>memory_session_start</code></summary>
408
+
409
+ | Parameter | Type | Required | Description |
410
+ |-----------|------|----------|-------------|
411
+ | `client` | string | Yes | Client identifier (e.g. `claude-code`, `cursor`, `api`) |
412
+ | `project` | string | No | Project scope for this session |
413
+ | `meta` | object | No | Additional session metadata |
414
+
415
+ Returns: `id` (session UUID), `started_at` (ISO 8601).
416
+
417
+ </details>
418
+
419
+ <details>
420
+ <summary><code>memory_session_end</code></summary>
421
+
422
+ | Parameter | Type | Required | Description |
423
+ |-----------|------|----------|-------------|
424
+ | `id` | string | Yes | Session ID to end |
425
+ | `summary` | string | No | Summary of what was accomplished (max 10K chars) |
426
+
427
+ Returns: `id`, `ended_at`, `duration_minutes`, `memories_count`.
428
+
429
+ </details>
430
+
431
+ <details>
432
+ <summary><code>memory_session_list</code></summary>
433
+
434
+ | Parameter | Type | Required | Description |
435
+ |-----------|------|----------|-------------|
436
+ | `limit` | number | No | Max sessions (default 20, max 100) |
437
+ | `client` | string | No | Filter by client |
438
+ | `project` | string | No | Filter by project |
439
+ | `active_only` | boolean | No | Only return sessions that haven't ended (default false) |
440
+
441
+ Returns: array of sessions with `id`, `client`, `project`, `started_at`, `ended_at`, `summary`, `memories_count`.
442
+
443
+ </details>
444
+
395
445
  ## How It Compares
396
446
 
397
447
  | | **mnemon-mcp** | mem0 | basic-memory | Anthropic KG |
@@ -412,7 +462,7 @@ Returns: status (`healthy` / `warning` / `degraded`), per-layer stats, expired e
412
462
  ```bash
413
463
  npm run dev # run via tsx (no build step)
414
464
  npm run build # TypeScript → dist/
415
- npm test # vitest (182 tests)
465
+ npm test # vitest (194 tests)
416
466
  npm run bench # performance benchmarks
417
467
  npm run db:backup # backup database
418
468
  ```