memory-journal-mcp 4.4.2 → 4.5.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/.github/workflows/lint-and-test.yml +1 -1
- package/.github/workflows/security-update.yml +1 -1
- package/CHANGELOG.md +81 -1
- package/DOCKER_README.md +57 -7
- package/Dockerfile +17 -17
- package/README.md +65 -6
- package/SECURITY.md +27 -35
- package/dist/cli.js +10 -0
- package/dist/cli.js.map +1 -1
- package/dist/constants/ServerInstructions.d.ts +5 -1
- package/dist/constants/ServerInstructions.d.ts.map +1 -1
- package/dist/constants/ServerInstructions.js +137 -83
- package/dist/constants/ServerInstructions.js.map +1 -1
- package/dist/database/SqliteAdapter.d.ts +2 -1
- package/dist/database/SqliteAdapter.d.ts.map +1 -1
- package/dist/database/SqliteAdapter.js +15 -8
- package/dist/database/SqliteAdapter.js.map +1 -1
- package/dist/handlers/resources/index.d.ts +3 -1
- package/dist/handlers/resources/index.d.ts.map +1 -1
- package/dist/handlers/resources/index.js +5 -2
- package/dist/handlers/resources/index.js.map +1 -1
- package/dist/handlers/tools/index.d.ts.map +1 -1
- package/dist/handlers/tools/index.js +63 -16
- package/dist/handlers/tools/index.js.map +1 -1
- package/dist/server/McpServer.d.ts +2 -0
- package/dist/server/McpServer.d.ts.map +1 -1
- package/dist/server/McpServer.js +43 -2
- package/dist/server/McpServer.js.map +1 -1
- package/dist/server/Scheduler.d.ts +91 -0
- package/dist/server/Scheduler.d.ts.map +1 -0
- package/dist/server/Scheduler.js +201 -0
- package/dist/server/Scheduler.js.map +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +6 -3
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/security-utils.d.ts +0 -21
- package/dist/utils/security-utils.d.ts.map +1 -1
- package/dist/utils/security-utils.js +0 -47
- package/dist/utils/security-utils.js.map +1 -1
- package/hooks/README.md +107 -0
- package/hooks/cursor/hooks.json +10 -0
- package/hooks/cursor/memory-journal.mdc +22 -0
- package/hooks/cursor/session-end.sh +19 -0
- package/hooks/kilo-code/session-end-mode.json +11 -0
- package/hooks/kiro/session-end.md +13 -0
- package/package.json +8 -8
- package/releases/v4.5.0.md +116 -0
- package/scripts/generate-server-instructions.ts +176 -0
- package/scripts/server-instructions-function-body.ts +77 -0
- package/server.json +3 -3
- package/src/cli.ts +26 -0
- package/src/constants/ServerInstructions.ts +137 -83
- package/src/constants/server-instructions.md +262 -0
- package/src/database/SqliteAdapter.ts +22 -8
- package/src/handlers/resources/index.ts +8 -2
- package/src/handlers/tools/index.ts +70 -20
- package/src/server/McpServer.ts +60 -2
- package/src/server/Scheduler.ts +278 -0
- package/src/utils/logger.ts +6 -3
- package/src/utils/security-utils.ts +0 -52
- package/tests/constants/server-instructions.test.ts +26 -0
- package/tests/database/sqlite-adapter.test.ts +84 -0
- package/tests/filtering/tool-filter.test.ts +46 -0
- package/tests/handlers/github-resource-handlers.test.ts +453 -0
- package/tests/handlers/github-tool-handlers.test.ts +899 -0
- package/tests/handlers/prompt-handlers.test.ts +40 -0
- package/tests/handlers/resource-handlers.test.ts +32 -0
- package/tests/handlers/tool-handlers.test.ts +13 -2
- package/tests/security/sql-injection.test.ts +3 -54
- package/tests/server/mcp-server.test.ts +491 -5
- package/tests/server/scheduler.test.ts +400 -0
- package/tests/vector/vector-search-manager.test.ts +60 -0
- package/.vscode/settings.json +0 -84
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,87 @@ All notable changes to Memory Journal MCP 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
|
-
## [
|
|
8
|
+
## [4.5.0] - 2026-03-02
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **Session Start briefing in Cursor** — Added Cursor-specific `FetchMcpResource` server name (`user-memory-journal-mcp`) to the Session Start instructions. Cursor prefixes MCP server names with `user-`, so agents using the generic name would get "Server not found" errors when fetching `memory://briefing`.
|
|
13
|
+
- **`deleteOldBackups` Test Isolation** — Fixed flaky `should delete old backups keeping only keepCount` test by cleaning up pre-existing backups before creating test backups. Previously, leftover backups from other tests caused the assertion to fail non-deterministically.
|
|
14
|
+
- **`deleteOldBackups` NaN Guard** — `keepCount` parameter now rejects `NaN` values. Previously, `NaN < 1` evaluated to `false`, bypassing the guard. With `NaN`, `backups.slice(0, NaN)` returns an empty array and `backups.slice(NaN)` returns all backups, causing every backup to be deleted.
|
|
15
|
+
- **`restoreFromFile` Foreign Key Enforcement** — `PRAGMA foreign_keys = ON` is now applied after restoring a database from backup. Previously, `restoreFromFile()` bypassed `initialize()`, so `ON DELETE CASCADE` constraints in `entry_tags`, `relationships`, and `embeddings` tables were silently unenforced for the rest of the server's lifetime.
|
|
16
|
+
|
|
17
|
+
### Improved
|
|
18
|
+
|
|
19
|
+
- **Test Coverage → 92%** — Expanded test suite from 549 → 590 tests, raising line coverage from 88.59% → 92.06%. Key areas covered:
|
|
20
|
+
- SIGINT shutdown handlers for stdio, stateless HTTP, and stateful HTTP transports
|
|
21
|
+
- Prompt handlers with proper arguments (`analyze-period`, `find-related`, `goal-tracker`, `get-context-bundle`, `prepare-retro`)
|
|
22
|
+
- `SqliteAdapter` backup edge cases (missing backups dir, invalid keepCount, missing backup file)
|
|
23
|
+
- `create_github_milestone` no-GitHub integration error path
|
|
24
|
+
- Kanban diagram resource no-GitHub fallback
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
- **Automated Scheduler (HTTP/SSE only)** — New in-process scheduler runs periodic maintenance jobs for long-running HTTP/SSE server processes. Configured via CLI flags:
|
|
29
|
+
- `--backup-interval <minutes>` — Automated backup interval (0 = disabled, default: 0). Backups are created with `exportToFile()` and old backups cleaned up automatically.
|
|
30
|
+
- `--keep-backups <count>` — Max backups to retain during automated cleanup (default: 5).
|
|
31
|
+
- `--vacuum-interval <minutes>` — Database optimize interval (0 = disabled, default: 0). Runs `PRAGMA optimize` and flushes the database to disk.
|
|
32
|
+
- `--rebuild-index-interval <minutes>` — Vector index rebuild interval (0 = disabled, default: 0). Full vector index rebuild from all entries.
|
|
33
|
+
- Scheduler status is reported in the `memory://health` resource under the `scheduler` field.
|
|
34
|
+
- Stdio transport ignores scheduler options with a warning log — use OS-level scheduling for stdio.
|
|
35
|
+
- Each job is error-isolated: failures are logged but don't affect other scheduled jobs.
|
|
36
|
+
- New module: `src/server/Scheduler.ts` — clean separation from `McpServer.ts`.
|
|
37
|
+
|
|
38
|
+
### Changed
|
|
39
|
+
|
|
40
|
+
- **Dependency Updates**
|
|
41
|
+
- `@types/node`: 25.3.2 → 25.3.3 (patch)
|
|
42
|
+
- `globals`: 17.3.0 → 17.4.0 (minor)
|
|
43
|
+
- `minimatch` override: 10.2.3 → 10.2.4 (patch) — npm + Docker layers
|
|
44
|
+
- `tar` override: 7.5.8 → 7.5.9 (patch) — npm + Docker layers
|
|
45
|
+
|
|
46
|
+
### Security
|
|
47
|
+
|
|
48
|
+
- **Wire Dead-Code Security Utilities (F-001)** — `sanitizeSearchQuery()` and `assertNoPathTraversal()` from `security-utils.ts` were defined but never imported or called. Now wired into active code paths:
|
|
49
|
+
- `SqliteAdapter.searchEntries()` applies `sanitizeSearchQuery()` to LIKE patterns with `ESCAPE '\\\\'` clause, preventing wildcard injection (F-002)
|
|
50
|
+
- `SqliteAdapter.restoreFromFile()` uses `assertNoPathTraversal()` instead of inline checks, throwing `PathTraversalError`
|
|
51
|
+
- **HTTP Security Headers (F-003)** — Added three additional security headers to HTTP transport middleware:
|
|
52
|
+
- `Content-Security-Policy: default-src 'none'; frame-ancestors 'none'` — prevents XSS and framing
|
|
53
|
+
- `Cache-Control: no-store` — prevents caching of sensitive journal data
|
|
54
|
+
- `Referrer-Policy: no-referrer` — prevents referrer leakage
|
|
55
|
+
- **PRAGMA foreign_keys = ON (F-005)** — SQLite foreign key enforcement now enabled on database initialization. `ON DELETE CASCADE` constraints in `entry_tags`, `relationships`, and `embeddings` tables are now enforced at the database level.
|
|
56
|
+
- **CORS Wildcard Warning (F-006)** — Server now logs a warning when HTTP transport CORS origin is `*` (the default), advising operators to set `--cors-origin` or `MCP_CORS_ORIGIN` for production deployments.
|
|
57
|
+
- **Constrain `entry_type` / `significance_type` to Enums** — `entry_type` now validated against 13 allowed values and `significance_type` against 7 allowed values via Zod enums. Previously accepted arbitrary strings; invalid types now rejected at schema validation. Removes unsafe `as EntryType` / `as SignificanceType` casts.
|
|
58
|
+
- **Date Format Validation** — All date string fields (`start_date`, `end_date`) across `SearchByDateRangeSchema`, `GetStatisticsSchema`, `ExportEntriesSchema`, and `CrossProjectInsightsSchema` now validate `YYYY-MM-DD` format via regex. Prevents malformed dates from reaching the database layer.
|
|
59
|
+
- **HTTP Rate Limiting** — Added `express-rate-limit` middleware for HTTP transport (100 requests/minute per IP). Returns `429 Too Many Requests` on excess. Only applies to HTTP mode; stdio transport unaffected.
|
|
60
|
+
- **Remove Dead SQL Injection Detection Code** — Removed `containsSqlInjection()`, `assertNoSqlInjection()`, `SqlInjectionError`, and `SQL_INJECTION_PATTERNS` from `security-utils.ts`. These regex-based detection functions were never called anywhere and provided a false sense of security. Parameterized queries (used consistently throughout) are the actual defense.
|
|
61
|
+
- **`exportToFile()` Path Traversal Protection** — Added `assertNoPathTraversal()` check to backup export, matching the pattern already used in `restoreFromFile()`. Rejects malicious backup names containing `/`, `\\`, or `..`.
|
|
62
|
+
- **`getRawDb()` Safety Documentation** — Added `@internal` JSDoc tag warning callers to use parameterized queries when accessing the raw database handle.
|
|
63
|
+
- **Logger `LOG_LEVEL` Validation (L1)** — `LOG_LEVEL` environment variable is now validated against known levels (`debug`, `info`, `notice`, `warning`, `error`, `critical`). Invalid values fall back to `info` instead of silently setting `minLevel` to `undefined`, which would disable all logging.
|
|
64
|
+
- **Logger `setLevel()` Guard (L2)** — `Logger.setLevel()` now validates the level parameter before applying, preventing invalid values from disabling logging.
|
|
65
|
+
- **CI `security-scan` Node Version Alignment (L3)** — Updated Node.js version in `security-scan` job from 22.x to 24.x to match `engines.node: >=24.0.0`.
|
|
66
|
+
- **CI Trivy SARIF Upload Guard** — `security-update.yml` upload-sarif step now checks that `trivy-results.sarif` exists before attempting upload. Previously, `if: always()` caused the step to fail when the Docker build failed upstream and no SARIF file was produced.
|
|
67
|
+
|
|
68
|
+
### Documentation
|
|
69
|
+
|
|
70
|
+
- **Cursor Rule for Session Management** — Added `hooks/cursor/memory-journal.mdc`, an `alwaysApply` Cursor rule that instructs agents to read `memory://briefing` at session start and create a retrospective summary at session end. This is the most reliable mechanism for session behavior in Cursor, replacing the previous reliance on MCP server instructions alone.
|
|
71
|
+
- **Fixed Cursor sessionEnd Hook Format** — Rewrote `hooks/cursor/hooks.json` from a non-standard format to Cursor's documented `version: 1` schema. Added companion `hooks/cursor/session-end.sh` audit script. Corrected documentation: Cursor's `sessionEnd` hook is fire-and-forget (cannot inject messages); session summary creation is handled by the Cursor rule and server instructions.
|
|
72
|
+
- **Revised hooks/README.md** — Rewritten to accurately describe progressive enhancement: Cursor rule (primary) > server instructions (fallback) > hooks (audit only). Removed incorrect claim that Cursor `sessionEnd` does message injection. Added rule setup as Step 1 for Cursor users.
|
|
73
|
+
- **Updated Session Management in README.md and DOCKER_README.md** — Session Management sections now lead with the Cursor rule as the primary setup mechanism, with a three-column table showing primary (agent behavior) vs optional (audit/logging) configurations per IDE.
|
|
74
|
+
- **SECURITY.md Accuracy (F-004)** — Rewrote Database Security section to accurately reflect sql.js in-memory architecture. Removed false claims about WAL mode and 7 PRAGMAs that are not applicable to sql.js. Updated security checklist to reference actual function names (`assertNoPathTraversal`, `sanitizeSearchQuery`, `validateDateFormatPattern`). Updated HTTP security headers list to include CSP, Cache-Control, and Referrer-Policy.
|
|
75
|
+
- **SECURITY.md Tag Filtering Correction** — Replaced inaccurate claim that dangerous characters are blocked in tags with accurate statement that tags are safely handled via parameterized queries.
|
|
76
|
+
- **Team Collaboration in READMEs** — Added team collaboration feature to Key Benefits in both `README.md` and `DOCKER_README.md`, with links to the wiki [Team-Collaboration](https://github.com/neverinfamous/memory-journal-mcp/wiki/Team-Collaboration) page. DOCKER_README notes that team collaboration requires npm installation.
|
|
77
|
+
- **Wiki Security Page Updates** — Added LIKE pattern sanitization, path traversal protection, HTTP security headers, rate limiting, and team database security note to the wiki Security.md page. Expanded self-audit checklist from 10 to 16 items.
|
|
78
|
+
- **Rate Limiting Documentation** — Added rate limiting mention to README.md Security section.
|
|
79
|
+
|
|
80
|
+
### Fixed
|
|
81
|
+
|
|
82
|
+
- **Path Traversal Test Assertion** — Updated `sql-injection.test.ts` to assert `PathTraversalError` type instead of old inline error message string, matching refactored `assertNoPathTraversal()` usage.
|
|
83
|
+
- **Tool Handler Test Fix** — Updated `tool-handlers.test.ts` to use valid entry_type enum value (`project_decision` instead of `decision`), matching the new enum constraint.
|
|
84
|
+
- **`share_with_team` Not Setting `isPersonal`** — `create_entry` with `share_with_team: true` now correctly sets `isPersonal: false`, making the entry visible in team-scoped resources like `memory://team/recent`. Previously, the `share_with_team` parameter was parsed but never applied to the `isPersonal` field.
|
|
85
|
+
|
|
86
|
+
### Removed
|
|
87
|
+
|
|
88
|
+
- **Unused `cors` Dependency** — Removed `cors` and `@types/cors` packages. CORS is handled by custom middleware in `McpServer.ts`.
|
|
9
89
|
|
|
10
90
|
## [4.4.2] - 2026-02-27
|
|
11
91
|
|
package/DOCKER_README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Memory Journal MCP Server
|
|
2
2
|
|
|
3
|
-
**Last Updated
|
|
3
|
+
**Last Updated March 2, 2026**
|
|
4
4
|
|
|
5
5
|
[](https://github.com/neverinfamous/memory-journal-mcp)
|
|
6
6
|
[](https://hub.docker.com/r/writenotenow/memory-journal-mcp)
|
|
@@ -10,12 +10,12 @@
|
|
|
10
10
|
[](https://github.com/neverinfamous/memory-journal-mcp/blob/main/SECURITY.md)
|
|
11
11
|
[](https://github.com/neverinfamous/memory-journal-mcp)
|
|
12
12
|
[](https://github.com/neverinfamous/memory-journal-mcp)
|
|
13
|
-

|
|
14
|
+

|
|
15
15
|
|
|
16
|
-
🎯 **AI Context + Project Intelligence:** Bridge disconnected AI sessions with persistent project memory
|
|
16
|
+
🎯 **AI Context + Project Intelligence:** Bridge disconnected AI sessions with persistent project memory and **automatic session handoff**. Integrates your complete GitHub workflow — Issues, PRs, Actions, Kanban boards, Milestones, Repository Insights, and Knowledge Graphs — into every conversation.
|
|
17
17
|
|
|
18
|
-
**[GitHub](https://github.com/neverinfamous/memory-journal-mcp)** • **[Wiki](https://github.com/neverinfamous/memory-journal-mcp/wiki)** • **[Changelog](https://github.com/neverinfamous/memory-journal-mcp/
|
|
18
|
+
**[GitHub](https://github.com/neverinfamous/memory-journal-mcp)** • **[Wiki](https://github.com/neverinfamous/memory-journal-mcp/wiki)** • **[Changelog](https://github.com/neverinfamous/memory-journal-mcp/blob/main/CHANGELOG.md)** • **[Release Article](https://adamic.tech/articles/memory-journal-mcp-server)**
|
|
19
19
|
|
|
20
20
|
## 🎯 What This Does
|
|
21
21
|
|
|
@@ -28,6 +28,10 @@
|
|
|
28
28
|
- 📊 **Generate reports** (standups, retrospectives, PR summaries, status)
|
|
29
29
|
- 📈 **Track repository insights** — stars, forks, clones, views, top referrers, and popular paths (14-day rolling)
|
|
30
30
|
- 🗄️ **Backup & restore** your journal data with one command
|
|
31
|
+
- ⏰ **Automated maintenance** — scheduled backups, database optimization, and vector index rebuilds for long-running containers
|
|
32
|
+
- 👥 **Team collaboration** — opt-in sharing of context via Git-tracked team database (requires npm install; see [wiki](https://github.com/neverinfamous/memory-journal-mcp/wiki/Team-Collaboration))
|
|
33
|
+
- 🔄 **Session continuity** — automatic end-of-session summaries flow into the next session's briefing
|
|
34
|
+
- 💡 **Rule & skill suggestions** — agents offer to codify your recurring patterns with your approval
|
|
31
35
|
|
|
32
36
|
### Deployment Options
|
|
33
37
|
|
|
@@ -76,6 +80,14 @@
|
|
|
76
80
|
| - Standups & Retros |
|
|
77
81
|
| - Knowledge Graphs |
|
|
78
82
|
| - Project Timelines |
|
|
83
|
+
+-------------+-------------+
|
|
84
|
+
|
|
|
85
|
+
v
|
|
86
|
+
+---------------------------+
|
|
87
|
+
| 🔄 Session End |
|
|
88
|
+
|---------------------------|
|
|
89
|
+
| - Auto-summary entry |
|
|
90
|
+
| - Flows to next briefing |
|
|
79
91
|
+---------------------------+
|
|
80
92
|
```
|
|
81
93
|
|
|
@@ -88,6 +100,7 @@
|
|
|
88
100
|
- **8 tool groups** - `core`, `search`, `analytics`, `relationships`, `export`, `admin`, `github`, `backup`
|
|
89
101
|
- **Knowledge graphs** - 8 relationship types, Mermaid visualization
|
|
90
102
|
- **Semantic search** - AI-powered conceptual search via `@xenova/transformers`
|
|
103
|
+
- **Automated maintenance** - Scheduled backups, database optimization, and vector index rebuilds (HTTP/SSE only)
|
|
91
104
|
|
|
92
105
|
---
|
|
93
106
|
|
|
@@ -198,6 +211,18 @@ When GitHub tools cannot auto-detect repository information:
|
|
|
198
211
|
|
|
199
212
|
- **Prompts not available**: AntiGravity does not currently support MCP prompts. The 15 workflow prompts are not accessible.
|
|
200
213
|
|
|
214
|
+
### 🔄 Session Management
|
|
215
|
+
|
|
216
|
+
Memory Journal bridges AI sessions automatically — the agent reads project context at session start and captures a summary at session end.
|
|
217
|
+
|
|
218
|
+
1. Session starts → agent reads `memory://briefing` and shows you a project context summary
|
|
219
|
+
2. Session ends → agent creates a `retrospective` entry tagged `session-summary`
|
|
220
|
+
3. Next session's briefing includes the previous summary — context flows seamlessly
|
|
221
|
+
|
|
222
|
+
**Cursor users:** Copy the [`memory-journal.mdc`](https://github.com/neverinfamous/memory-journal-mcp/blob/main/hooks/cursor/memory-journal.mdc) rule to `.cursor/rules/` for the most reliable session management. Optional audit hooks for Cursor, Kiro, and Kilo Code are available in the [hooks/](https://github.com/neverinfamous/memory-journal-mcp/tree/main/hooks) directory.
|
|
223
|
+
|
|
224
|
+
**No rules or hooks?** The built-in server instructions handle both session start and end in any MCP client. This is **opt-out**: tell the agent "skip the summary" to disable session-end entries.
|
|
225
|
+
|
|
201
226
|
### HTTP/SSE Transport (Remote Access)
|
|
202
227
|
|
|
203
228
|
For remote access, web-based clients, or HTTP-compatible MCP hosts:
|
|
@@ -233,6 +258,31 @@ docker run --rm -p 3000:3000 \
|
|
|
233
258
|
| Stateful (default) | ✅ Yes | ✅ Yes | ⚠️ Complex |
|
|
234
259
|
| Stateless (`--stateless`) | ❌ No | ❌ No | ✅ Native |
|
|
235
260
|
|
|
261
|
+
#### Automated Scheduling (HTTP Only)
|
|
262
|
+
|
|
263
|
+
Enable periodic maintenance jobs for long-running containers. These jobs run in-process on `setInterval` — no external cron needed.
|
|
264
|
+
|
|
265
|
+
> **Note:** These flags only work with HTTP/SSE transport. Stdio transport (used by IDE integrations like Cursor and AntiGravity) ignores scheduler flags because those sessions are short-lived. For stdio, use the `backup_journal` and `cleanup_backups` tools manually.
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
docker run --rm -p 3000:3000 \
|
|
269
|
+
-v ./data:/app/data \
|
|
270
|
+
writenotenow/memory-journal-mcp:latest \
|
|
271
|
+
--transport http --port 3000 --server-host 0.0.0.0 \
|
|
272
|
+
--backup-interval 60 --keep-backups 10 \
|
|
273
|
+
--vacuum-interval 1440 \
|
|
274
|
+
--rebuild-index-interval 720
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
| Flag | Default | Description |
|
|
278
|
+
| -------------------------------- | ------- | -------------------------------------------------------------------- |
|
|
279
|
+
| `--backup-interval <min>` | 0 (off) | Create timestamped database backups and prune old ones automatically |
|
|
280
|
+
| `--keep-backups <count>` | 5 | Max backups retained during automated cleanup |
|
|
281
|
+
| `--vacuum-interval <min>` | 0 (off) | Run `PRAGMA optimize` and flush database to disk |
|
|
282
|
+
| `--rebuild-index-interval <min>` | 0 (off) | Full vector index rebuild to maintain semantic search quality |
|
|
283
|
+
|
|
284
|
+
Each job is error-isolated — a failure in one job won't affect the others. Scheduler status (last run, result, next run) is visible via `memory://health`.
|
|
285
|
+
|
|
236
286
|
**Example with curl (stateful):**
|
|
237
287
|
|
|
238
288
|
```bash
|
|
@@ -466,8 +516,8 @@ Memory Journal is designed for extremely low overhead during AI task execution.
|
|
|
466
516
|
|
|
467
517
|
**Available Tags:**
|
|
468
518
|
|
|
469
|
-
- `4.
|
|
470
|
-
- `4.
|
|
519
|
+
- `4.5.0` - Specific version (recommended for production)
|
|
520
|
+
- `4.5` - Latest patch in 4.5.x series
|
|
471
521
|
- `4` - Latest minor in 4.x series
|
|
472
522
|
- `latest` - Always the newest version
|
|
473
523
|
- `sha256-<digest>` - SHA-pinned for maximum security
|
package/Dockerfile
CHANGED
|
@@ -23,21 +23,21 @@ RUN cd /usr/local/lib/node_modules/npm && \
|
|
|
23
23
|
mv package node_modules/diff && \
|
|
24
24
|
rm diff-8.0.3.tgz
|
|
25
25
|
|
|
26
|
-
# Fix CVE-2026-23950, CVE-2026-24842, CVE-2026-26960: Manually update npm's bundled tar to 7.5.
|
|
26
|
+
# Fix CVE-2026-23950, CVE-2026-24842, CVE-2026-26960: Manually update npm's bundled tar to 7.5.9
|
|
27
27
|
RUN cd /usr/local/lib/node_modules/npm && \
|
|
28
|
-
npm pack tar@7.5.
|
|
28
|
+
npm pack tar@7.5.9 && \
|
|
29
29
|
rm -rf node_modules/tar && \
|
|
30
|
-
tar -xzf tar-7.5.
|
|
30
|
+
tar -xzf tar-7.5.9.tgz && \
|
|
31
31
|
mv package node_modules/tar && \
|
|
32
|
-
rm tar-7.5.
|
|
32
|
+
rm tar-7.5.9.tgz
|
|
33
33
|
|
|
34
|
-
# Fix CVE-2026-27903, CVE-2026-27904: Manually update npm's bundled minimatch to 10.2.
|
|
34
|
+
# Fix CVE-2026-27903, CVE-2026-27904: Manually update npm's bundled minimatch to 10.2.4
|
|
35
35
|
RUN cd /usr/local/lib/node_modules/npm && \
|
|
36
|
-
npm pack minimatch@10.2.
|
|
36
|
+
npm pack minimatch@10.2.4 && \
|
|
37
37
|
rm -rf node_modules/minimatch && \
|
|
38
|
-
tar -xzf minimatch-10.2.
|
|
38
|
+
tar -xzf minimatch-10.2.4.tgz && \
|
|
39
39
|
mv package node_modules/minimatch && \
|
|
40
|
-
rm minimatch-10.2.
|
|
40
|
+
rm minimatch-10.2.4.tgz
|
|
41
41
|
|
|
42
42
|
# Copy package files first for better layer caching
|
|
43
43
|
COPY package*.json .npmrc ./
|
|
@@ -78,21 +78,21 @@ RUN cd /usr/local/lib/node_modules/npm && \
|
|
|
78
78
|
mv package node_modules/diff && \
|
|
79
79
|
rm diff-8.0.3.tgz
|
|
80
80
|
|
|
81
|
-
# Fix CVE-2026-23950, CVE-2026-24842, CVE-2026-26960: Manually update npm's bundled tar to 7.5.
|
|
81
|
+
# Fix CVE-2026-23950, CVE-2026-24842, CVE-2026-26960: Manually update npm's bundled tar to 7.5.9
|
|
82
82
|
RUN cd /usr/local/lib/node_modules/npm && \
|
|
83
|
-
npm pack tar@7.5.
|
|
83
|
+
npm pack tar@7.5.9 && \
|
|
84
84
|
rm -rf node_modules/tar && \
|
|
85
|
-
tar -xzf tar-7.5.
|
|
85
|
+
tar -xzf tar-7.5.9.tgz && \
|
|
86
86
|
mv package node_modules/tar && \
|
|
87
|
-
rm tar-7.5.
|
|
87
|
+
rm tar-7.5.9.tgz
|
|
88
88
|
|
|
89
|
-
# Fix CVE-2026-27903, CVE-2026-27904: Manually update npm's bundled minimatch to 10.2.
|
|
89
|
+
# Fix CVE-2026-27903, CVE-2026-27904: Manually update npm's bundled minimatch to 10.2.4
|
|
90
90
|
RUN cd /usr/local/lib/node_modules/npm && \
|
|
91
|
-
npm pack minimatch@10.2.
|
|
91
|
+
npm pack minimatch@10.2.4 && \
|
|
92
92
|
rm -rf node_modules/minimatch && \
|
|
93
|
-
tar -xzf minimatch-10.2.
|
|
93
|
+
tar -xzf minimatch-10.2.4.tgz && \
|
|
94
94
|
mv package node_modules/minimatch && \
|
|
95
|
-
rm minimatch-10.2.
|
|
95
|
+
rm minimatch-10.2.4.tgz
|
|
96
96
|
|
|
97
97
|
# Copy built artifacts and production dependencies
|
|
98
98
|
COPY --from=builder /app/dist ./dist
|
|
@@ -126,6 +126,6 @@ CMD ["node", "dist/cli.js"]
|
|
|
126
126
|
# Labels for Docker Hub
|
|
127
127
|
LABEL maintainer="Adamic.tech"
|
|
128
128
|
LABEL description="Memory Journal MCP Server - Project context management for AI-assisted development"
|
|
129
|
-
LABEL version="4.
|
|
129
|
+
LABEL version="4.5.0"
|
|
130
130
|
LABEL org.opencontainers.image.source="https://github.com/neverinfamous/memory-journal-mcp"
|
|
131
131
|
LABEL io.modelcontextprotocol.server.name="io.github.neverinfamous/memory-journal-mcp"
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Memory Journal MCP Server
|
|
2
2
|
|
|
3
|
-
**Last Updated
|
|
3
|
+
**Last Updated March 2, 2026**
|
|
4
4
|
|
|
5
5
|
<!-- mcp-name: io.github.neverinfamous/memory-journal-mcp -->
|
|
6
6
|
|
|
@@ -12,12 +12,12 @@
|
|
|
12
12
|
[](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.neverinfamous/memory-journal-mcp)
|
|
13
13
|
[](SECURITY.md)
|
|
14
14
|
[](https://github.com/neverinfamous/memory-journal-mcp)
|
|
15
|
-

|
|
16
|
+

|
|
17
17
|
|
|
18
|
-
🎯 **AI Context + Project Intelligence:** Bridge disconnected AI sessions with persistent project memory
|
|
18
|
+
🎯 **AI Context + Project Intelligence:** Bridge disconnected AI sessions with persistent project memory and **automatic session handoff**. Integrates your complete GitHub workflow — Issues, PRs, Actions, Kanban boards, Milestones, Repository Insights, and Knowledge Graphs — into every conversation.
|
|
19
19
|
|
|
20
|
-
**[GitHub](https://github.com/neverinfamous/memory-journal-mcp)** • **[Wiki](https://github.com/neverinfamous/memory-journal-mcp/wiki)** • **[Changelog](
|
|
20
|
+
**[GitHub](https://github.com/neverinfamous/memory-journal-mcp)** • **[Wiki](https://github.com/neverinfamous/memory-journal-mcp/wiki)** • **[Changelog](CHANGELOG.md)** • **[Release Article](https://adamic.tech/articles/memory-journal-mcp-server)**
|
|
21
21
|
|
|
22
22
|
**🚀 Quick Deploy:**
|
|
23
23
|
|
|
@@ -35,6 +35,10 @@
|
|
|
35
35
|
- 📊 **Generate reports** (standups, retrospectives, PR summaries, status)
|
|
36
36
|
- 📈 **Track repository insights** — stars, forks, clones, views, top referrers, and popular paths (14-day rolling)
|
|
37
37
|
- 🗄️ **Backup & restore** your journal data with one command
|
|
38
|
+
- ⏰ **Automated maintenance** — scheduled backups, database optimization, and vector index rebuilds for long-running HTTP deployments
|
|
39
|
+
- 👥 **Team collaboration** — opt-in sharing of context via Git-tracked team database ([wiki →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Team-Collaboration))
|
|
40
|
+
- 🔄 **Session continuity** — automatic end-of-session summaries flow into the next session's briefing
|
|
41
|
+
- 💡 **Rule & skill suggestions** — agents offer to codify your recurring patterns with your approval
|
|
38
42
|
|
|
39
43
|
```mermaid
|
|
40
44
|
flowchart TB
|
|
@@ -59,6 +63,7 @@ flowchart TB
|
|
|
59
63
|
PRs["Pull Requests"]
|
|
60
64
|
Actions["GitHub Actions"]
|
|
61
65
|
Kanban["Kanban Boards"]
|
|
66
|
+
Insights["Repository Insights"]
|
|
62
67
|
end
|
|
63
68
|
|
|
64
69
|
subgraph Outputs["📊 Outputs"]
|
|
@@ -67,11 +72,17 @@ flowchart TB
|
|
|
67
72
|
Timeline["Project Timelines"]
|
|
68
73
|
end
|
|
69
74
|
|
|
75
|
+
subgraph SessionEnd["🔄 Session End"]
|
|
76
|
+
Summary["Session Summary Entry<br/>(retrospective + session-summary tag)"]
|
|
77
|
+
end
|
|
78
|
+
|
|
70
79
|
Session --> Core
|
|
71
80
|
Core --> Search
|
|
72
81
|
Core <--> GitHub
|
|
73
82
|
Search --> Outputs
|
|
74
83
|
GitHub --> Outputs
|
|
84
|
+
Core --> SessionEnd
|
|
85
|
+
SessionEnd -.->|"next session"| Briefing
|
|
75
86
|
```
|
|
76
87
|
|
|
77
88
|
### 📈 **Current Capabilities**
|
|
@@ -83,6 +94,8 @@ flowchart TB
|
|
|
83
94
|
- **8 tool groups** - `core`, `search`, `analytics`, `relationships`, `export`, `admin`, `github`, `backup`
|
|
84
95
|
- **Knowledge graphs** - 8 relationship types, Mermaid visualization
|
|
85
96
|
- **Semantic search** - AI-powered conceptual search via `@xenova/transformers`
|
|
97
|
+
- **IDE Hooks** - Ready-to-use session-end configs for Cursor, Kiro, and Kilo Code ([setup →](hooks/))
|
|
98
|
+
- **Automated maintenance** - Scheduled backups, database optimization, and vector index rebuilds (HTTP/SSE only)
|
|
86
99
|
|
|
87
100
|
---
|
|
88
101
|
|
|
@@ -230,6 +243,28 @@ memory-journal-mcp --transport http --port 3000 --stateless
|
|
|
230
243
|
| Stateful (default) | ✅ Yes | ✅ Yes | ⚠️ Complex |
|
|
231
244
|
| Stateless (`--stateless`) | ❌ No | ❌ No | ✅ Native |
|
|
232
245
|
|
|
246
|
+
#### Automated Scheduling (HTTP Only)
|
|
247
|
+
|
|
248
|
+
When running in HTTP/SSE mode, enable periodic maintenance jobs with CLI flags. These jobs run in-process on `setInterval` — no external cron needed.
|
|
249
|
+
|
|
250
|
+
> **Note:** These flags are ignored for stdio transport because stdio sessions are short-lived (tied to your IDE session). For stdio, use OS-level scheduling (Task Scheduler, cron) or run the backup/cleanup tools manually.
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
memory-journal-mcp --transport http --port 3000 \
|
|
254
|
+
--backup-interval 60 --keep-backups 10 \
|
|
255
|
+
--vacuum-interval 1440 \
|
|
256
|
+
--rebuild-index-interval 720
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
| Flag | Default | Description |
|
|
260
|
+
| -------------------------------- | ------- | -------------------------------------------------------------------- |
|
|
261
|
+
| `--backup-interval <min>` | 0 (off) | Create timestamped database backups and prune old ones automatically |
|
|
262
|
+
| `--keep-backups <count>` | 5 | Max backups retained during automated cleanup |
|
|
263
|
+
| `--vacuum-interval <min>` | 0 (off) | Run `PRAGMA optimize` and flush database to disk |
|
|
264
|
+
| `--rebuild-index-interval <min>` | 0 (off) | Full vector index rebuild to maintain semantic search quality |
|
|
265
|
+
|
|
266
|
+
Each job is error-isolated — a failure in one job won't affect the others. Scheduler status (last run, result, next run) is visible via `memory://health`.
|
|
267
|
+
|
|
233
268
|
### GitHub Integration Configuration
|
|
234
269
|
|
|
235
270
|
The GitHub tools (`get_github_issues`, `get_github_prs`, etc.) can auto-detect the repository from your git context. However, MCP clients may run the server from a different directory than your project.
|
|
@@ -296,6 +331,30 @@ When GitHub tools cannot auto-detect repository information:
|
|
|
296
331
|
|
|
297
332
|
---
|
|
298
333
|
|
|
334
|
+
### 🔄 Session Management
|
|
335
|
+
|
|
336
|
+
Memory Journal bridges AI sessions automatically — the agent reads project context at session start and captures a summary at session end.
|
|
337
|
+
|
|
338
|
+
**How it works:**
|
|
339
|
+
|
|
340
|
+
1. Session starts → agent reads `memory://briefing` and shows you a project context summary
|
|
341
|
+
2. Session ends → agent creates a `retrospective` entry tagged `session-summary`
|
|
342
|
+
3. Next session's briefing includes the previous summary — context flows seamlessly
|
|
343
|
+
|
|
344
|
+
**Setup by IDE:** Ready-to-use rules and hooks in [`hooks/`](hooks/):
|
|
345
|
+
|
|
346
|
+
| Client | Primary (agent behavior) | Optional (audit/logging) |
|
|
347
|
+
| -------------- | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
|
|
348
|
+
| **Cursor** | Copy [`hooks/cursor/memory-journal.mdc`](hooks/cursor/memory-journal.mdc) to `.cursor/rules/` | Copy [`hooks/cursor/hooks.json`](hooks/cursor/hooks.json) + `session-end.sh` to `.cursor/` |
|
|
349
|
+
| **Kiro (AWS)** | Server instructions (automatic) | Copy [`hooks/kiro/session-end.md`](hooks/kiro/session-end.md) to `.kiro/hooks/` |
|
|
350
|
+
| **Kilo Code** | Server instructions (automatic) | Import [`hooks/kilo-code/session-end-mode.json`](hooks/kilo-code/session-end-mode.json) |
|
|
351
|
+
|
|
352
|
+
**No rules or hooks?** The built-in server instructions handle both session start and end in any MCP client. The Cursor rule improves reliability by giving the agent explicit always-on instructions. This is **opt-out**: tell the agent "skip the summary" to disable session-end entries.
|
|
353
|
+
|
|
354
|
+
See [`hooks/README.md`](hooks/README.md) for detailed setup instructions.
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
299
358
|
## 📋 Core Capabilities
|
|
300
359
|
|
|
301
360
|
### 🛠️ **39 MCP Tools** (8 Groups)
|
|
@@ -545,7 +604,7 @@ npm run bench
|
|
|
545
604
|
- **Input validation** - Zod schemas, content size limits, SQL injection prevention
|
|
546
605
|
- **Path traversal protection** - Backup filenames validated
|
|
547
606
|
- **MCP 2025-11-25 annotations** - Behavioral hints (`readOnlyHint`, `destructiveHint`, etc.)
|
|
548
|
-
- **HTTP transport hardening** - Configurable CORS, 1MB body limit, security headers, 30-min session timeout
|
|
607
|
+
- **HTTP transport hardening** - Configurable CORS, 1MB body limit, security headers, 30-min session timeout, rate limiting (100 req/min)
|
|
549
608
|
- **Token scrubbing** - GitHub tokens and credentials automatically redacted from error logs
|
|
550
609
|
|
|
551
610
|
### Data & Privacy
|
package/SECURITY.md
CHANGED
|
@@ -4,29 +4,19 @@ The Memory Journal MCP server implements comprehensive security measures to prot
|
|
|
4
4
|
|
|
5
5
|
## 🛡️ **Database Security**
|
|
6
6
|
|
|
7
|
-
### **
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
- ✅ **Atomic transactions** ensure data consistency
|
|
11
|
-
- ✅ **Better performance** with concurrent read/write operations
|
|
12
|
-
|
|
13
|
-
### **Optimized PRAGMA Settings**
|
|
14
|
-
|
|
15
|
-
```sql
|
|
16
|
-
PRAGMA foreign_keys = ON -- Enforce referential integrity
|
|
17
|
-
PRAGMA journal_mode = WAL -- Enable WAL mode
|
|
18
|
-
PRAGMA synchronous = NORMAL -- Balance safety and performance
|
|
19
|
-
PRAGMA cache_size = -64000 -- 64MB cache for better performance
|
|
20
|
-
PRAGMA mmap_size = 268435456 -- 256MB memory-mapped I/O
|
|
21
|
-
PRAGMA temp_store = MEMORY -- Store temp tables in memory
|
|
22
|
-
PRAGMA busy_timeout = 30000 -- 30-second timeout for busy database
|
|
23
|
-
```
|
|
7
|
+
### **sql.js In-Memory Architecture**
|
|
8
|
+
|
|
9
|
+
The server uses **sql.js** (pure JavaScript SQLite compiled to WebAssembly) which operates on an in-memory database copy with periodic flushing to disk. This differs from native SQLite:
|
|
24
10
|
|
|
25
|
-
|
|
11
|
+
- ✅ **PRAGMA foreign_keys = ON** — enforces referential integrity and `ON DELETE CASCADE`
|
|
12
|
+
- ✅ **Parameterized queries** — all user input bound via `?` placeholders
|
|
13
|
+
- ✅ **Debounced disk writes** — periodic flushing with immediate flush on critical operations
|
|
14
|
+
- ⚠️ WAL mode, mmap, busy_timeout, and other file-level PRAGMAs are **not applicable** to sql.js
|
|
26
15
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
- ✅ **
|
|
16
|
+
### **File Permissions (Docker)**
|
|
17
|
+
|
|
18
|
+
- ✅ **Data directory**: `700` (full access for owner only) in Docker
|
|
19
|
+
- ✅ **Non-root user** (`appuser:appgroup`) owns data directory
|
|
30
20
|
|
|
31
21
|
## 🔐 **Input Validation**
|
|
32
22
|
|
|
@@ -38,11 +28,10 @@ PRAGMA busy_timeout = 30000 -- 30-second timeout for busy database
|
|
|
38
28
|
- **Significance types**: 50 characters maximum
|
|
39
29
|
- **HTTP request body**: 1MB maximum (prevents memory exhaustion)
|
|
40
30
|
|
|
41
|
-
### **Character
|
|
42
|
-
|
|
43
|
-
Dangerous characters are blocked in tags:
|
|
31
|
+
### **Character Handling**
|
|
44
32
|
|
|
45
|
-
-
|
|
33
|
+
Tags are stored as-is via parameterized queries. Special characters in tags
|
|
34
|
+
are safely handled by the database layer and do not pose injection risks.
|
|
46
35
|
|
|
47
36
|
### **SQL Injection Prevention**
|
|
48
37
|
|
|
@@ -77,8 +66,12 @@ export MCP_CORS_ORIGIN="http://localhost:3000"
|
|
|
77
66
|
|
|
78
67
|
### **Security Headers**
|
|
79
68
|
|
|
80
|
-
- ✅ **X-Content-Type-Options: nosniff**
|
|
81
|
-
- ✅ **X-Frame-Options: DENY**
|
|
69
|
+
- ✅ **X-Content-Type-Options: nosniff** — prevents MIME sniffing
|
|
70
|
+
- ✅ **X-Frame-Options: DENY** — prevents clickjacking
|
|
71
|
+
- ✅ **Content-Security-Policy: default-src 'none'; frame-ancestors 'none'** — prevents XSS and framing
|
|
72
|
+
- ✅ **Cache-Control: no-store** — prevents caching of sensitive journal data
|
|
73
|
+
- ✅ **Referrer-Policy: no-referrer** — prevents referrer leakage
|
|
74
|
+
- ⚠️ **CORS wildcard warning** — server logs a warning when CORS origin is `*`
|
|
82
75
|
|
|
83
76
|
### **Session Management (Stateful Mode)**
|
|
84
77
|
|
|
@@ -187,17 +180,16 @@ docker run --memory=1g --cpus=1 memory-journal-mcp
|
|
|
187
180
|
|
|
188
181
|
## 📋 **Security Checklist**
|
|
189
182
|
|
|
190
|
-
- [x]
|
|
191
|
-
- [x] Proper file permissions (600/700)
|
|
183
|
+
- [x] Foreign key enforcement (`PRAGMA foreign_keys = ON`)
|
|
192
184
|
- [x] Input validation and length limits (Zod schemas)
|
|
193
185
|
- [x] Parameterized SQL queries
|
|
194
|
-
- [x] SQL injection detection heuristics
|
|
195
|
-
- [x] Path traversal protection
|
|
196
|
-
- [x] LIKE pattern sanitization
|
|
197
|
-
- [x] Date format whitelisting
|
|
186
|
+
- [x] SQL injection detection heuristics (defense-in-depth)
|
|
187
|
+
- [x] Path traversal protection (`assertNoPathTraversal`)
|
|
188
|
+
- [x] LIKE pattern sanitization (`sanitizeSearchQuery`)
|
|
189
|
+
- [x] Date format whitelisting (`validateDateFormatPattern`)
|
|
198
190
|
- [x] HTTP body size limit (1MB)
|
|
199
|
-
- [x] Configurable CORS origin
|
|
200
|
-
- [x] Security headers (X-Content-Type-Options, X-Frame-Options)
|
|
191
|
+
- [x] Configurable CORS origin (with wildcard warning)
|
|
192
|
+
- [x] Security headers (CSP, X-Content-Type-Options, X-Frame-Options, Cache-Control, Referrer-Policy)
|
|
201
193
|
- [x] Session timeout (30 minutes)
|
|
202
194
|
- [x] Non-root Docker user
|
|
203
195
|
- [x] Multi-stage Docker build
|
package/dist/cli.js
CHANGED
|
@@ -20,6 +20,10 @@ program
|
|
|
20
20
|
.option('--auto-rebuild-index', 'Rebuild vector index on server startup')
|
|
21
21
|
.option('--cors-origin <origin>', 'CORS allowed origin for HTTP transport (default: *)')
|
|
22
22
|
.option('--log-level <level>', 'Log level: debug, info, warning, error', 'info')
|
|
23
|
+
.option('--backup-interval <minutes>', 'Automated backup interval in minutes, HTTP only (0 = disabled)', '0')
|
|
24
|
+
.option('--keep-backups <count>', 'Max backups to retain during automated cleanup', '5')
|
|
25
|
+
.option('--vacuum-interval <minutes>', 'Database optimize interval in minutes, HTTP only (0 = disabled)', '0')
|
|
26
|
+
.option('--rebuild-index-interval <minutes>', 'Vector index rebuild interval in minutes, HTTP only (0 = disabled)', '0')
|
|
23
27
|
.action(async (options) => {
|
|
24
28
|
// Set log level
|
|
25
29
|
logger.setLevel(options.logLevel);
|
|
@@ -47,6 +51,12 @@ program
|
|
|
47
51
|
: undefined,
|
|
48
52
|
autoRebuildIndex: options.autoRebuildIndex ?? process.env['AUTO_REBUILD_INDEX'] === 'true',
|
|
49
53
|
corsOrigin: options.corsOrigin,
|
|
54
|
+
scheduler: {
|
|
55
|
+
backupIntervalMinutes: parseInt(options.backupInterval, 10),
|
|
56
|
+
keepBackups: parseInt(options.keepBackups, 10),
|
|
57
|
+
vacuumIntervalMinutes: parseInt(options.vacuumInterval, 10),
|
|
58
|
+
rebuildIndexIntervalMinutes: parseInt(options.rebuildIndexInterval, 10),
|
|
59
|
+
},
|
|
50
60
|
});
|
|
51
61
|
}
|
|
52
62
|
catch (error) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAEvD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACF,IAAI,CAAC,oBAAoB,CAAC;KAC1B,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,oBAAoB,EAAE,+BAA+B,EAAE,OAAO,CAAC;KACtE,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,EAAE,MAAM,CAAC;KACnE,MAAM,CAAC,sBAAsB,EAAE,0DAA0D,CAAC;KAC1F,MAAM,CAAC,aAAa,EAAE,iDAAiD,CAAC;KACxE,MAAM,CAAC,aAAa,EAAE,eAAe,EAAE,qBAAqB,CAAC;KAC7D,MAAM,CAAC,wBAAwB,EAAE,qDAAqD,CAAC;KACvF,MAAM,CAAC,4BAA4B,EAAE,+BAA+B,CAAC;KACrE,MAAM,CAAC,sBAAsB,EAAE,wCAAwC,CAAC;KACxE,MAAM,CAAC,wBAAwB,EAAE,qDAAqD,CAAC;KACvF,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,EAAE,MAAM,CAAC;KAC/E,MAAM,CACH,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Server instructions for Memory Journal MCP.
|
|
3
3
|
*
|
|
4
|
+
* ⚠️ AUTO-GENERATED — DO NOT EDIT THIS FILE DIRECTLY
|
|
5
|
+
* Edit src/constants/server-instructions.md instead,
|
|
6
|
+
* then run: npm run generate:instructions
|
|
7
|
+
*
|
|
4
8
|
* These instructions are automatically sent to MCP clients during initialization,
|
|
5
9
|
* providing guidance for AI agents on tool usage.
|
|
6
10
|
*
|
|
7
|
-
*
|
|
11
|
+
* Optimized for token efficiency with tiered instruction levels.
|
|
8
12
|
*/
|
|
9
13
|
/**
|
|
10
14
|
* Resource definition for instruction generation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerInstructions.d.ts","sourceRoot":"","sources":["../../src/constants/ServerInstructions.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ServerInstructions.d.ts","sourceRoot":"","sources":["../../src/constants/ServerInstructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAClB;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAA;AAqRhE;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAChC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,EACzB,UAAU,EAAE,kBAAkB,EAAE,EAChC,OAAO,EAAE,gBAAgB,EAAE,EAC3B,WAAW,CAAC,EAAE,mBAAmB,EACjC,KAAK,GAAE,gBAA6B,GACrC,MAAM,CAuCR;AAkBD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAA+C,CAAA"}
|