memory-journal-mcp 5.0.0 β 5.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/.github/workflows/lint-and-test.yml +3 -0
- package/.github/workflows/publish-npm.yml +1 -1
- package/CHANGELOG.md +85 -1
- package/DOCKER_README.md +22 -29
- package/Dockerfile +9 -9
- package/README.md +28 -46
- package/dist/constants/ServerInstructions.d.ts.map +1 -1
- package/dist/constants/ServerInstructions.js +15 -32
- package/dist/constants/ServerInstructions.js.map +1 -1
- package/dist/database/SqliteAdapter.d.ts +14 -2
- package/dist/database/SqliteAdapter.d.ts.map +1 -1
- package/dist/database/SqliteAdapter.js +148 -55
- package/dist/database/SqliteAdapter.js.map +1 -1
- package/dist/database/schema.d.ts +1 -1
- package/dist/database/schema.d.ts.map +1 -1
- package/dist/database/schema.js +3 -0
- package/dist/database/schema.js.map +1 -1
- package/dist/github/GitHubIntegration.d.ts.map +1 -1
- package/dist/github/GitHubIntegration.js +0 -3
- package/dist/github/GitHubIntegration.js.map +1 -1
- package/dist/handlers/prompts/workflow.d.ts +2 -1
- package/dist/handlers/prompts/workflow.d.ts.map +1 -1
- package/dist/handlers/prompts/workflow.js +36 -1
- package/dist/handlers/prompts/workflow.js.map +1 -1
- package/dist/handlers/tools/analytics.d.ts.map +1 -1
- package/dist/handlers/tools/analytics.js +14 -2
- package/dist/handlers/tools/analytics.js.map +1 -1
- package/dist/handlers/tools/backup.d.ts.map +1 -1
- package/dist/handlers/tools/backup.js +1 -1
- package/dist/handlers/tools/backup.js.map +1 -1
- package/dist/handlers/tools/core.d.ts.map +1 -1
- package/dist/handlers/tools/core.js +15 -5
- package/dist/handlers/tools/core.js.map +1 -1
- package/dist/handlers/tools/export.d.ts.map +1 -1
- package/dist/handlers/tools/export.js +26 -7
- package/dist/handlers/tools/export.js.map +1 -1
- package/dist/handlers/tools/github/helpers.d.ts.map +1 -1
- package/dist/handlers/tools/github/helpers.js +10 -2
- package/dist/handlers/tools/github/helpers.js.map +1 -1
- package/dist/handlers/tools/github/insights-tools.js +11 -11
- package/dist/handlers/tools/github/insights-tools.js.map +1 -1
- package/dist/handlers/tools/github/kanban-tools.d.ts.map +1 -1
- package/dist/handlers/tools/github/kanban-tools.js +1 -0
- package/dist/handlers/tools/github/kanban-tools.js.map +1 -1
- package/dist/handlers/tools/github/milestone-tools.d.ts.map +1 -1
- package/dist/handlers/tools/github/milestone-tools.js +1 -0
- package/dist/handlers/tools/github/milestone-tools.js.map +1 -1
- package/dist/handlers/tools/github/read-tools.d.ts.map +1 -1
- package/dist/handlers/tools/github/read-tools.js +8 -2
- package/dist/handlers/tools/github/read-tools.js.map +1 -1
- package/dist/handlers/tools/index.d.ts.map +1 -1
- package/dist/handlers/tools/index.js +45 -18
- package/dist/handlers/tools/index.js.map +1 -1
- package/dist/handlers/tools/relationships.d.ts.map +1 -1
- package/dist/handlers/tools/relationships.js +11 -1
- package/dist/handlers/tools/relationships.js.map +1 -1
- package/dist/handlers/tools/schemas.d.ts +8 -0
- package/dist/handlers/tools/schemas.d.ts.map +1 -1
- package/dist/handlers/tools/schemas.js +1 -0
- package/dist/handlers/tools/schemas.js.map +1 -1
- package/dist/handlers/tools/search.d.ts.map +1 -1
- package/dist/handlers/tools/search.js +32 -7
- package/dist/handlers/tools/search.js.map +1 -1
- package/dist/handlers/tools/team.d.ts.map +1 -1
- package/dist/handlers/tools/team.js +3 -2
- package/dist/handlers/tools/team.js.map +1 -1
- package/dist/server/McpServer.d.ts.map +1 -1
- package/dist/server/McpServer.js +8 -4
- package/dist/server/McpServer.js.map +1 -1
- package/dist/transports/http.d.ts.map +1 -1
- package/dist/transports/http.js +2 -1
- package/dist/transports/http.js.map +1 -1
- package/dist/utils/security-utils.d.ts +9 -0
- package/dist/utils/security-utils.d.ts.map +1 -1
- package/dist/utils/security-utils.js +15 -0
- package/dist/utils/security-utils.js.map +1 -1
- package/dist/vector/VectorSearchManager.d.ts.map +1 -1
- package/dist/vector/VectorSearchManager.js +8 -13
- package/dist/vector/VectorSearchManager.js.map +1 -1
- package/docker-compose.yml +16 -0
- package/package.json +2 -2
- package/releases/v5.0.1.md +25 -0
- package/releases/v5.1.0.md +83 -0
- package/server.json +3 -3
- package/src/constants/ServerInstructions.ts +15 -32
- package/src/constants/server-instructions.md +15 -32
- package/src/database/SqliteAdapter.ts +193 -63
- package/src/database/schema.ts +3 -0
- package/src/github/GitHubIntegration.ts +25 -20
- package/src/handlers/prompts/workflow.ts +43 -1
- package/src/handlers/tools/analytics.ts +22 -2
- package/src/handlers/tools/backup.ts +1 -1
- package/src/handlers/tools/core.ts +17 -5
- package/src/handlers/tools/export.ts +25 -7
- package/src/handlers/tools/github/helpers.ts +10 -2
- package/src/handlers/tools/github/insights-tools.ts +12 -12
- package/src/handlers/tools/github/kanban-tools.ts +1 -0
- package/src/handlers/tools/github/milestone-tools.ts +1 -0
- package/src/handlers/tools/github/read-tools.ts +8 -2
- package/src/handlers/tools/index.ts +56 -21
- package/src/handlers/tools/relationships.ts +12 -1
- package/src/handlers/tools/schemas.ts +1 -0
- package/src/handlers/tools/search.ts +33 -7
- package/src/handlers/tools/team.ts +3 -2
- package/src/server/McpServer.ts +8 -4
- package/src/transports/http.ts +3 -1
- package/src/utils/security-utils.ts +17 -0
- package/src/vector/VectorSearchManager.ts +12 -13
- package/tests/constants/server-instructions.test.ts +2 -5
- package/tests/database/sqlite-adapter.test.ts +53 -2
- package/tests/github/github-integration.test.ts +9 -18
- package/tests/handlers/tool-handler-coverage.test.ts +51 -6
- package/tests/utils/mcp-logger.test.ts +3 -4
- package/tests/vector/vector-search-manager.test.ts +12 -15
- package/hooks/README.md +0 -107
- package/hooks/cursor/hooks.json +0 -10
- package/hooks/cursor/memory-journal.mdc +0 -22
- package/hooks/cursor/session-end.sh +0 -19
- package/hooks/kilo-code/session-end-mode.json +0 -11
- package/hooks/kiro/session-end.md +0 -13
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,81 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [5.1.0] - 2026-03-07
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **`session-summary` Prompt** β New workflow prompt that creates a session summary journal entry. Fetches recent entries for context and guides the agent to create a `retrospective` entry tagged `session-summary` capturing accomplishments, pending items, and next-session context. Invoked by the user when ready (e.g., `/session-summary`). Replaces the unreliable automatic session-end behavior. Prompt count: 15 β 16.
|
|
15
|
+
|
|
16
|
+
### Performance
|
|
17
|
+
|
|
18
|
+
- **`calculateImportance` Query Consolidation** β Merged 3 separate SQL queries (entry data, relationship count, causal count) into a single query with subqueries, reducing SQLite roundtrips 3β1.
|
|
19
|
+
- **`linkTagsToEntry` Batch Operations** β Replaced per-tag `INSERT OR IGNORE` + `UPDATE` loop (2N SQL calls) with batched multi-row `INSERT`, `SELECT ... IN (...)`, and `UPDATE ... IN (...)` (4 SQL calls total for any N tags).
|
|
20
|
+
- **`createEntry` Redundant Fetch Elimination** β Removed post-INSERT `getEntryById()` re-fetch (full SELECT + tag query). Entry is now constructed directly from input values + `last_insert_rowid()` + `datetime(CURRENT_TIMESTAMP)`.
|
|
21
|
+
- **`updateEntry` Pre-check Elimination** β Removed pre-UPDATE `getEntryById()` existence check. Uses `UPDATE ... WHERE deleted_at IS NULL` + `SELECT changes()` to detect missing entries in one SQL call instead of a full SELECT + tag query.
|
|
22
|
+
- **SQLite Performance PRAGMAs** β Added `PRAGMA journal_mode = MEMORY`, `synchronous = OFF`, and `temp_store = MEMORY` at initialization. sql.js operates in-memory with manual disk serialization; these eliminate unnecessary internal journal overhead.
|
|
23
|
+
- **Composite Covering Index for `getRecentEntries`** β Added `idx_memory_journal_recent` on `(deleted_at, timestamp DESC, id DESC)` to enable index-only scan for the `WHERE deleted_at IS NULL ORDER BY timestamp DESC, id DESC` query pattern.
|
|
24
|
+
- **`addEntry` Native Upsert** β Replaced `deleteItem()` + `insertItem()` pattern with vectra's native `upsertItem()`, eliminating a full exception path on every new entry insertion.
|
|
25
|
+
- **`getTools` Cached Output** β Extracted shared `ensureToolCache()` for both `getTools` and `callTool`. Unfiltered `getTools` calls now return a cached mapped array instead of rebuilding 42 tool objects and mapping them on every invocation (~4800x faster than tool execution).
|
|
26
|
+
- **Lazy Module Loading for Startup** β Deferred `@xenova/transformers` (1.5s) and `vectra` (0.9s) from top-level imports in `VectorSearchManager.ts` to dynamic `import()` inside `initialize()`. These heavyweight modules are now loaded only when vector search is first used, reducing server cold-start by ~1.8s (VectorSearchManager import: 1515ms β 12ms).
|
|
27
|
+
|
|
28
|
+
### Documentation
|
|
29
|
+
|
|
30
|
+
- **Test Counts Updated** β Updated the `README.md` and `DOCKER_README.md` test count badges and the testing breakdown table to reflect the combined total of Vitest unit/integration tests and Playwright E2E tests (785 total tests).
|
|
31
|
+
- **Performance Benchmark Claims Updated** β Updated benchmark numbers in `README.md` and `DOCKER_README.md` to reflect post-optimization measurements: vector ops >640 ops/sec, `getTools` ~4800x faster than tool execution, `getRecentEntries` ~4x faster via composite index.
|
|
32
|
+
|
|
33
|
+
### Removed
|
|
34
|
+
|
|
35
|
+
- **Automatic Session End Behavior** β Removed `## Session End` section from server instructions (`ServerInstructions.ts`, `server-instructions.md`). Agents cannot reliably detect when a thread/session ends. Replaced by the user-invoked `session-summary` prompt.
|
|
36
|
+
- **`hooks/` Directory** β Deleted the entire hooks directory (`hooks/cursor/`, `hooks/kiro/`, `hooks/kilo-code/`, `hooks/README.md`). All hook files were session-end related. Session start is handled by server instructions.
|
|
37
|
+
|
|
38
|
+
### Security
|
|
39
|
+
|
|
40
|
+
- **Docker Compose Network Isolation (L-1)** β Added custom `mcp-net` bridge network to both services. Prevents MCP containers from accessing or being accessed by unrelated containers on the default Docker bridge.
|
|
41
|
+
- **Docker Compose `no-new-privileges` (L-2)** β Added `security_opt: ["no-new-privileges:true"]` to both services. Prevents privilege escalation via `setuid`/`setgid` binaries inside containers.
|
|
42
|
+
- **Author Input Sanitization (L-5)** β `resolveAuthor()` and `resolveTeamAuthor()` in `team.ts` and `core.ts` now strip ASCII control characters (`0x00`β`0x1F`, `0x7F`) and cap author strings at 100 characters. Prevents crafted `TEAM_AUTHOR` env or git config values from injecting control characters into the database `author` column or `autoContext` JSON payloads.
|
|
43
|
+
- **Consolidated `sanitizeAuthor` (Audit)** β Moved duplicated `sanitizeAuthor()` from `core.ts` and `team.ts` into `security-utils.ts` as a single-source-of-truth export. Eliminates risk of divergent sanitization logic.
|
|
44
|
+
- **Docker Compose `cap_drop: ALL` (Audit)** β Added `cap_drop: ALL` to both Docker Compose services, dropping all Linux capabilities (NET_RAW, SYS_CHROOT, etc.) that are unnecessary for a Node.js MCP server.
|
|
45
|
+
- **CI Unit Test Gate (Audit)** β Added `npm run test` step to `lint-and-test.yml` workflow so unit tests run on every push/PR, not just lint/typecheck/build.
|
|
46
|
+
|
|
47
|
+
### Fixed
|
|
48
|
+
|
|
49
|
+
- **Output schema mismatches causing MCP -32602 errors** β Three `outputSchema` definitions didn't match actual handler output, causing `structuredContent does not match the tool's output schema` errors:
|
|
50
|
+
- `EntryOutputSchema` (schemas.ts) β Added `source` field (`'personal' | 'team'`) for cross-database search results that include a source marker
|
|
51
|
+
- `VectorStatsOutputSchema` (search.ts) β Updated to match `VectorSearchManager.getStats()` return shape (`itemCount`, `modelName`, `dimensions` instead of `entryCount`, `indexSize`)
|
|
52
|
+
- `BackupInfoSchema` (backup.ts) β Added `path` field to match `SqliteAdapter.listBackups()` output
|
|
53
|
+
- **`get_statistics` Date Filtering** β `start_date` and `end_date` parameters now filter all statistics queries (total count, type breakdown, period breakdown, decision density). Previously parsed by Zod but ignored by the handler. Returns `dateRange` echo in the response when dates are provided.
|
|
54
|
+
- **`get_statistics` Project Breakdown** β `project_breakdown: true` now returns a `projectBreakdown` array with per-project entry counts. Previously parsed but ignored.
|
|
55
|
+
- **`export_entries` Filter Bypass** β Handler was calling `db.getRecentEntries(limit)` and ignoring all parsed filter parameters (`start_date`, `end_date`, `entry_types`, `tags`). Now correctly uses `db.searchByDateRange()` for date/tag filters and post-filters by `entry_types`.
|
|
56
|
+
- **GitHub Error Consistency** β All GitHub tool error responses (`get_github_issue`, `get_github_pr`, `get_github_context`, `get_repo_insights`, `resolveOwnerRepo`, `resolveOwner`) now include `success: false` field, matching the `{success: false, error}` pattern used by all other tools.
|
|
57
|
+
- **`get_vector_index_stats` Missing `success` Field** β Handler now returns `success: true/false` in all response paths for schema consistency.
|
|
58
|
+
- **No-Argument Prompts Failing with MCP `-32602`** β Prompts with no arguments (e.g., `session-summary`, `confirm-briefing`, `prepare-standup`) failed when the client called `prompts/get` without `arguments`. The registration code passed an empty `argsSchema: {}` to `registerPrompt`, which the SDK wrapped in `z.object({})` and attempted to validate against `undefined`. Now omits `argsSchema` entirely for argumentless prompts so the SDK skips validation.
|
|
59
|
+
- **`get_github_milestone` Error Missing `success: false`** β Error response for non-existent milestones returned `{ error }` without `success` field. Now returns `{ success: false, error }` matching the consistent error shape used by all other tools.
|
|
60
|
+
- **`get_kanban_board` Error Missing `success: false`** β Error response for non-existent projects returned `{ error }` without `success` field. Now returns `{ success: false, error }` matching the consistent error shape used by all other tools.
|
|
61
|
+
- **`search_by_date_range` Silent Filter Bug** β `issue_number`, `pr_number`, and `workflow_run_id` parameters were accepted by the Zod schema but silently ignored β the handler never passed them to the database query. Now correctly forwards all three filters to `SqliteAdapter.searchByDateRange()`, which applies them as SQL WHERE clauses.
|
|
62
|
+
|
|
63
|
+
### Improved
|
|
64
|
+
|
|
65
|
+
- **Zod Boundary Leak Prevention** β Created separate relaxed MCP schemas (without `min`/`max` constraints) for 7 tools so boundary violations reach the handler for structured `{success: false, error}` responses instead of leaking as raw MCP `-32602` error frames. Affected tools: `get_recent_entries`, `create_entry`, `create_entry_minimal`, `search_entries`, `search_by_date_range`, `semantic_search`, `export_entries`, `cleanup_backups`, `visualize_relationships`.
|
|
66
|
+
|
|
67
|
+
### Changed
|
|
68
|
+
|
|
69
|
+
- **CI `publish-npm.yml` Node Version Alignment (L-4)** β Updated Node.js version from 22.x to 24.x to match `engines.node: >=24.0.0` in `package.json` and the Dockerfile base image (`node:24-alpine`).
|
|
70
|
+
|
|
71
|
+
- **Dependency Updates**
|
|
72
|
+
- `eslint`: 10.0.2 β 10.0.3 (patch)
|
|
73
|
+
|
|
74
|
+
## [5.0.1] - 2026-03-06
|
|
75
|
+
|
|
76
|
+
### Security
|
|
77
|
+
|
|
78
|
+
- **GHSA-qffp-2rhf-9h96 (tar)** β Manually patched npm's bundled `tar` β `7.5.10` in Dockerfile to fix HIGH severity path traversal vulnerability (CVSS 8.2). Also updated npm override.
|
|
79
|
+
|
|
80
|
+
### Changed
|
|
81
|
+
|
|
82
|
+
- **Dependency Updates**
|
|
83
|
+
- `tar` override: 7.5.9 β 7.5.10 (patch) β npm + Docker layers
|
|
84
|
+
|
|
10
85
|
## [5.0.0] - 2026-03-06
|
|
11
86
|
|
|
12
87
|
### Added
|
|
@@ -1269,7 +1344,16 @@ npm install -g memory-journal-mcp
|
|
|
1269
1344
|
- SQLite FTS5 full-text search
|
|
1270
1345
|
- Optional FAISS semantic search
|
|
1271
1346
|
|
|
1272
|
-
[Unreleased]: https://github.com/neverinfamous/memory-journal-mcp/compare/
|
|
1347
|
+
[Unreleased]: https://github.com/neverinfamous/memory-journal-mcp/compare/v5.1.0...HEAD
|
|
1348
|
+
[5.1.0]: https://github.com/neverinfamous/memory-journal-mcp/compare/v5.0.1...v5.1.0
|
|
1349
|
+
[5.0.1]: https://github.com/neverinfamous/memory-journal-mcp/compare/v5.0.0...v5.0.1
|
|
1350
|
+
[5.0.0]: https://github.com/neverinfamous/memory-journal-mcp/compare/v4.5.0...v5.0.0
|
|
1351
|
+
[4.5.0]: https://github.com/neverinfamous/memory-journal-mcp/compare/v4.4.2...v4.5.0
|
|
1352
|
+
[4.4.2]: https://github.com/neverinfamous/memory-journal-mcp/compare/v4.4.0...v4.4.2
|
|
1353
|
+
[4.4.0]: https://github.com/neverinfamous/memory-journal-mcp/compare/v4.3.1...v4.4.0
|
|
1354
|
+
[4.3.1]: https://github.com/neverinfamous/memory-journal-mcp/compare/v4.3.0...v4.3.1
|
|
1355
|
+
[4.3.0]: https://github.com/neverinfamous/memory-journal-mcp/compare/v4.2.0...v4.3.0
|
|
1356
|
+
[4.2.0]: https://github.com/neverinfamous/memory-journal-mcp/compare/v4.1.0...v4.2.0
|
|
1273
1357
|
[4.1.0]: https://github.com/neverinfamous/memory-journal-mcp/compare/v4.0.0...v4.1.0
|
|
1274
1358
|
[4.0.0]: https://github.com/neverinfamous/memory-journal-mcp/compare/v3.1.5...v4.0.0
|
|
1275
1359
|
[3.1.5]: https://github.com/neverinfamous/memory-journal-mcp/compare/v3.1.4...v3.1.5
|
package/DOCKER_README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Memory Journal MCP Server
|
|
2
2
|
|
|
3
|
-
**Last Updated March
|
|
3
|
+
**Last Updated March 7, 2026**
|
|
4
4
|
|
|
5
5
|
[](https://github.com/neverinfamous/memory-journal-mcp)
|
|
6
6
|
[](https://hub.docker.com/r/writenotenow/memory-journal-mcp)
|
|
@@ -10,8 +10,8 @@
|
|
|
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
16
|
π― **AI Context + Project Intelligence:** Bridge disconnected AI sessions with persistent project memory and **automatic session handoff** β with full GitHub workflow integration.
|
|
17
17
|
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
### Key Benefits
|
|
23
23
|
|
|
24
|
-
**42 MCP Tools** Β· **
|
|
24
|
+
**42 MCP Tools** Β· **16 Workflow Prompts** Β· **22 Resources** Β· **9 Tool Groups** Β· **GitHub Integration** (Issues, PRs, Actions, Kanban, Milestones, Insights)
|
|
25
25
|
|
|
26
26
|
- π§ **Dynamic Context Management** - AI agents automatically query your project history and create entries at the right moments
|
|
27
27
|
- π **Auto-capture Git/GitHub context** (commits, branches, issues, milestones, PRs, projects)
|
|
@@ -33,8 +33,7 @@
|
|
|
33
33
|
- β° **Automated maintenance** β scheduled backups, database optimization, and vector index rebuilds for long-running containers
|
|
34
34
|
- π **Dual HTTP transport** β Streamable HTTP (`/mcp`) for modern clients + legacy SSE (`/sse`) for backward compatibility, with stateless mode for serverless deployments
|
|
35
35
|
- π₯ **Team collaboration** β separate public team database with author attribution, cross-DB search, and dedicated team tools
|
|
36
|
-
- π **Session continuity** β
|
|
37
|
-
- π§ **IDE Hooks** β ready-to-use session-end configs for Cursor, Kiro, and Kilo Code ([setup β](https://github.com/neverinfamous/memory-journal-mcp/tree/main/hooks))
|
|
36
|
+
- π **Session continuity** β a quick `/session-summary` captures your progress and feeds it into the next session's briefing
|
|
38
37
|
- π‘ **Rule & skill suggestions** β agents offer to codify your recurring patterns with your approval
|
|
39
38
|
- β
**Deterministic error handling** β every tool returns structured `{success, error}` responses β no raw exceptions, no silent failures. Agents get actionable context instead of cryptic stack traces
|
|
40
39
|
|
|
@@ -53,7 +52,7 @@
|
|
|
53
52
|
- **[npm Package](https://www.npmjs.com/package/memory-journal-mcp)** - Simple `npm install -g` for local deployment
|
|
54
53
|
- **[MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.neverinfamous/memory-journal-mcp)**
|
|
55
54
|
|
|
56
|
-
**Flow:** AI Session Start β Read `memory://briefing` β Journal Operations (Create, Search, Link) β Triple Search + GitHub Integration β Outputs (Standups, Knowledge Graphs, Timelines) β
|
|
55
|
+
**Flow:** AI Session Start β Read `memory://briefing` β Journal Operations (Create, Search, Link) β Triple Search + GitHub Integration β Outputs (Standups, Knowledge Graphs, Timelines) β Use `session-summary` prompt when ready to capture session context
|
|
57
56
|
|
|
58
57
|
### Tool Filtering
|
|
59
58
|
|
|
@@ -92,7 +91,7 @@ Control which tools are exposed via `MEMORY_JOURNAL_MCP_TOOL_FILTER` (or CLI: `-
|
|
|
92
91
|
|
|
93
92
|
**[Complete tools documentation β](https://github.com/neverinfamous/memory-journal-mcp/wiki/Tools)**
|
|
94
93
|
|
|
95
|
-
### π― **
|
|
94
|
+
### π― **16 Workflow Prompts**
|
|
96
95
|
|
|
97
96
|
- `find-related` - Discover connected entries via semantic similarity
|
|
98
97
|
- `prepare-standup` - Daily standup summaries
|
|
@@ -109,6 +108,7 @@ Control which tools are exposed via `MEMORY_JOURNAL_MCP_TOOL_FILTER` (or CLI: `-
|
|
|
109
108
|
- `actions-failure-digest` - CI/CD failure analysis
|
|
110
109
|
- `project-milestone-tracker` - Milestone progress tracking
|
|
111
110
|
- `confirm-briefing` - Acknowledge session context to user
|
|
111
|
+
- `session-summary` - Create a session summary entry with accomplishments, pending items, and next-session context
|
|
112
112
|
|
|
113
113
|
**[Complete prompts guide β](https://github.com/neverinfamous/memory-journal-mcp/wiki/Prompts)**
|
|
114
114
|
|
|
@@ -248,16 +248,12 @@ When GitHub tools cannot auto-detect repository information:
|
|
|
248
248
|
|
|
249
249
|
### π Session Management
|
|
250
250
|
|
|
251
|
-
Memory Journal bridges AI sessions
|
|
251
|
+
Memory Journal bridges AI sessions with a three-step cycle:
|
|
252
252
|
|
|
253
|
-
1. Session
|
|
254
|
-
2. Session
|
|
253
|
+
1. **Session start** β agent reads `memory://briefing` and shows you a project context summary (automatic via server instructions)
|
|
254
|
+
2. **Session summary** β use the `session-summary` prompt to capture what was accomplished, what's pending, and context for the next session
|
|
255
255
|
3. Next session's briefing includes the previous summary β context flows seamlessly
|
|
256
256
|
|
|
257
|
-
**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.
|
|
258
|
-
|
|
259
|
-
**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.
|
|
260
|
-
|
|
261
257
|
### HTTP/SSE Transport (Remote Access)
|
|
262
258
|
|
|
263
259
|
For remote access, web-based clients, or HTTP-compatible MCP hosts:
|
|
@@ -302,6 +298,11 @@ docker run --rm -p 3000:3000 \
|
|
|
302
298
|
- **Body Size Limit** β 1 MB maximum
|
|
303
299
|
- **404 Handler** β Unknown paths return `{ error: "Not found" }`
|
|
304
300
|
- **Cross-Protocol Guard** β SSE session IDs rejected on `/mcp` and vice versa
|
|
301
|
+
- **Build Provenance** - Cryptographic proof of build process
|
|
302
|
+
- **SBOM Available** - Complete software bill of materials
|
|
303
|
+
- **Supply Chain Attestations** - Verifiable build integrity
|
|
304
|
+
- **Non-root Execution** - Minimal attack surface
|
|
305
|
+
- **No Native Dependencies** - Pure JS stack reduces attack surface
|
|
305
306
|
|
|
306
307
|
| Mode | Progress Notifications | Legacy SSE | Serverless |
|
|
307
308
|
| ------------------------- | ---------------------- | ---------- | ---------- |
|
|
@@ -335,13 +336,13 @@ Each job is error-isolated β a failure in one job won't affect the others. Sch
|
|
|
335
336
|
|
|
336
337
|
**Example with curl:**
|
|
337
338
|
|
|
339
|
+
Initialize session (returns `mcp-session-id` header). Include `mcp-session-id` header in subsequent requests.
|
|
340
|
+
|
|
338
341
|
```bash
|
|
339
|
-
# Initialize session (returns mcp-session-id header)
|
|
340
342
|
curl -X POST http://localhost:3000/mcp \
|
|
341
343
|
-H "Content-Type: application/json" \
|
|
342
344
|
-H "Accept: application/json, text/event-stream" \
|
|
343
345
|
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
|
|
344
|
-
# Include mcp-session-id header in subsequent requests
|
|
345
346
|
```
|
|
346
347
|
|
|
347
348
|
## οΈ Supply Chain Security
|
|
@@ -362,14 +363,6 @@ docker pull writenotenow/memory-journal-mcp:sha256-<manifest-digest>
|
|
|
362
363
|
docker pull writenotenow/memory-journal-mcp@sha256:<manifest-digest>
|
|
363
364
|
```
|
|
364
365
|
|
|
365
|
-
**Security Features:**
|
|
366
|
-
|
|
367
|
-
- β
**Build Provenance** - Cryptographic proof of build process
|
|
368
|
-
- β
**SBOM Available** - Complete software bill of materials
|
|
369
|
-
- β
**Supply Chain Attestations** - Verifiable build integrity
|
|
370
|
-
- β
**Non-root Execution** - Minimal attack surface
|
|
371
|
-
- β
**No Native Dependencies** - Pure JS stack reduces attack surface
|
|
372
|
-
|
|
373
366
|
## π§ Configuration
|
|
374
367
|
|
|
375
368
|
### GitHub Management Capabilities
|
|
@@ -408,10 +401,10 @@ Memory Journal provides a **hybrid approach** to GitHub management:
|
|
|
408
401
|
- **sql.js** - SQLite in pure JavaScript
|
|
409
402
|
- **vectra** - Vector similarity search without native dependencies
|
|
410
403
|
- **@xenova/transformers** - ML embeddings in JavaScript
|
|
411
|
-
- **
|
|
404
|
+
- **Faster Startup** - Lazy loading of ML models
|
|
412
405
|
- **Production/Stable** - Deterministic error handling (`{success, error}` on every tool) and automatic migrations
|
|
413
406
|
|
|
414
|
-
Designed for extremely low overhead: database reads in sub-millisecond, vector search
|
|
407
|
+
Designed for extremely low overhead: database reads in sub-millisecond, vector search and indexing both exceed 640 ops/sec, tool dispatch cached at O(1) with >4800x overhead reduction. Run `npm run bench` for local benchmarks.
|
|
415
408
|
|
|
416
409
|
**Automated Deployment:**
|
|
417
410
|
|
|
@@ -423,8 +416,8 @@ Designed for extremely low overhead: database reads in sub-millisecond, vector s
|
|
|
423
416
|
|
|
424
417
|
**Available Tags:**
|
|
425
418
|
|
|
426
|
-
- `5.
|
|
427
|
-
- `5.
|
|
419
|
+
- `5.1.0` - Specific version (recommended for production)
|
|
420
|
+
- `5.1` - Latest patch in 5.1.x series
|
|
428
421
|
- `5` - Latest minor in 5.x series
|
|
429
422
|
- `latest` - Always the newest version
|
|
430
423
|
- `sha256-<digest>` - SHA-pinned for maximum security
|
package/Dockerfile
CHANGED
|
@@ -23,13 +23,13 @@ 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, GHSA-qffp-2rhf-9h96: Manually update npm's bundled tar to 7.5.10
|
|
27
27
|
RUN cd /usr/local/lib/node_modules/npm && \
|
|
28
|
-
npm pack tar@7.5.
|
|
28
|
+
npm pack tar@7.5.10 && \
|
|
29
29
|
rm -rf node_modules/tar && \
|
|
30
|
-
tar -xzf tar-7.5.
|
|
30
|
+
tar -xzf tar-7.5.10.tgz && \
|
|
31
31
|
mv package node_modules/tar && \
|
|
32
|
-
rm tar-7.5.
|
|
32
|
+
rm tar-7.5.10.tgz
|
|
33
33
|
|
|
34
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 && \
|
|
@@ -79,13 +79,13 @@ RUN cd /usr/local/lib/node_modules/npm && \
|
|
|
79
79
|
mv package node_modules/diff && \
|
|
80
80
|
rm diff-8.0.3.tgz
|
|
81
81
|
|
|
82
|
-
# Fix CVE-2026-23950, CVE-2026-24842, CVE-2026-26960: Manually update npm's bundled tar to 7.5.
|
|
82
|
+
# Fix CVE-2026-23950, CVE-2026-24842, CVE-2026-26960, GHSA-qffp-2rhf-9h96: Manually update npm's bundled tar to 7.5.10
|
|
83
83
|
RUN cd /usr/local/lib/node_modules/npm && \
|
|
84
|
-
npm pack tar@7.5.
|
|
84
|
+
npm pack tar@7.5.10 && \
|
|
85
85
|
rm -rf node_modules/tar && \
|
|
86
|
-
tar -xzf tar-7.5.
|
|
86
|
+
tar -xzf tar-7.5.10.tgz && \
|
|
87
87
|
mv package node_modules/tar && \
|
|
88
|
-
rm tar-7.5.
|
|
88
|
+
rm tar-7.5.10.tgz
|
|
89
89
|
|
|
90
90
|
# Fix CVE-2026-27903, CVE-2026-27904: Manually update npm's bundled minimatch to 10.2.4
|
|
91
91
|
RUN cd /usr/local/lib/node_modules/npm && \
|
|
@@ -129,6 +129,6 @@ ENTRYPOINT ["node", "dist/cli.js"]
|
|
|
129
129
|
# Labels for Docker Hub
|
|
130
130
|
LABEL maintainer="Adamic.tech"
|
|
131
131
|
LABEL description="Memory Journal MCP Server - Project context management for AI-assisted development"
|
|
132
|
-
LABEL version="5.
|
|
132
|
+
LABEL version="5.1.0"
|
|
133
133
|
LABEL org.opencontainers.image.source="https://github.com/neverinfamous/memory-journal-mcp"
|
|
134
134
|
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 March
|
|
3
|
+
**Last Updated March 7, 2026**
|
|
4
4
|
|
|
5
5
|
<!-- mcp-name: io.github.neverinfamous/memory-journal-mcp -->
|
|
6
6
|
|
|
@@ -12,8 +12,8 @@
|
|
|
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
18
|
π― **AI Context + Project Intelligence:** Bridge disconnected AI sessions with persistent project memory and **automatic session handoff** β with full GitHub workflow integration.
|
|
19
19
|
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
|
|
29
29
|
### Key Benefits
|
|
30
30
|
|
|
31
|
-
**42 MCP Tools** Β· **
|
|
31
|
+
**42 MCP Tools** Β· **16 Workflow Prompts** Β· **22 Resources** Β· **9 Tool Groups** Β· **GitHub Integration** (Issues, PRs, Actions, Kanban, Milestones, Insights)
|
|
32
32
|
|
|
33
33
|
- π§ **Dynamic Context Management** - AI agents automatically query your project history and create entries at the right moments
|
|
34
34
|
- π **Auto-capture Git/GitHub context** (commits, branches, issues, milestones, PRs, projects)
|
|
@@ -40,8 +40,7 @@
|
|
|
40
40
|
- β° **Automated maintenance** β scheduled backups, database optimization, and vector index rebuilds for long-running HTTP deployments
|
|
41
41
|
- π **Dual HTTP transport** β Streamable HTTP (`/mcp`) for modern clients + legacy SSE (`/sse`) for backward compatibility, with stateless mode for serverless deployments
|
|
42
42
|
- π₯ **Team collaboration** β separate public team database with author attribution, cross-DB search, and dedicated team tools
|
|
43
|
-
- π **Session continuity** β
|
|
44
|
-
- π§ **IDE Hooks** β ready-to-use session-end configs for Cursor, Kiro, and Kilo Code ([setup β](hooks/))
|
|
43
|
+
- π **Session continuity** β a quick `/session-summary` captures your progress and feeds it into the next session's briefing
|
|
45
44
|
- π‘ **Rule & skill suggestions** β agents offer to codify your recurring patterns with your approval
|
|
46
45
|
- β
**Deterministic error handling** β every tool returns structured `{success, error}` responses β no raw exceptions, no silent failures. Agents get actionable context instead of cryptic stack traces
|
|
47
46
|
|
|
@@ -103,17 +102,11 @@ flowchart TB
|
|
|
103
102
|
Timeline["Project Timelines"]
|
|
104
103
|
end
|
|
105
104
|
|
|
106
|
-
subgraph SessionEnd["π Session End"]
|
|
107
|
-
Summary["Session Summary Entry<br/>(retrospective + session-summary tag)"]
|
|
108
|
-
end
|
|
109
|
-
|
|
110
105
|
Session --> Core
|
|
111
106
|
Core --> Search
|
|
112
107
|
Core <--> GitHub
|
|
113
108
|
Search --> Outputs
|
|
114
109
|
GitHub --> Outputs
|
|
115
|
-
Core --> SessionEnd
|
|
116
|
-
SessionEnd -.->|"next session"| Briefing
|
|
117
110
|
```
|
|
118
111
|
|
|
119
112
|
---
|
|
@@ -157,7 +150,7 @@ Control which tools are exposed via `MEMORY_JOURNAL_MCP_TOOL_FILTER` (or CLI: `-
|
|
|
157
150
|
|
|
158
151
|
**[Complete tools reference β](https://github.com/neverinfamous/memory-journal-mcp/wiki/Tools)**
|
|
159
152
|
|
|
160
|
-
### π― **
|
|
153
|
+
### π― **16 Workflow Prompts**
|
|
161
154
|
|
|
162
155
|
- `find-related` - Discover connected entries via semantic similarity
|
|
163
156
|
- `prepare-standup` - Daily standup summaries
|
|
@@ -174,6 +167,7 @@ Control which tools are exposed via `MEMORY_JOURNAL_MCP_TOOL_FILTER` (or CLI: `-
|
|
|
174
167
|
- `actions-failure-digest` - CI/CD failure analysis
|
|
175
168
|
- `project-milestone-tracker` - Milestone progress tracking
|
|
176
169
|
- `confirm-briefing` - Acknowledge session context to user
|
|
170
|
+
- `session-summary` - Create a session summary entry with accomplishments, pending items, and next-session context
|
|
177
171
|
|
|
178
172
|
**[Complete prompts guide β](https://github.com/neverinfamous/memory-journal-mcp/wiki/Prompts)**
|
|
179
173
|
|
|
@@ -304,18 +298,26 @@ memory-journal-mcp --transport http --port 3000 --server-host 0.0.0.0
|
|
|
304
298
|
- **Body Size Limit** β 1 MB maximum
|
|
305
299
|
- **404 Handler** β Unknown paths return `{ error: "Not found" }`
|
|
306
300
|
- **Cross-Protocol Guard** β SSE session IDs rejected on `/mcp` and vice versa
|
|
301
|
+
- **Build Provenance** - Cryptographic proof of build process
|
|
302
|
+
- **SBOM Available** - Complete software bill of materials
|
|
303
|
+
- **Supply Chain Attestations** - Verifiable build integrity
|
|
304
|
+
- **Non-root Execution** - Minimal attack surface
|
|
305
|
+
- **No Native Dependencies** - Pure JS stack reduces attack surface
|
|
307
306
|
|
|
308
307
|
**Example with curl:**
|
|
309
308
|
|
|
309
|
+
Initialize session (returns `mcp-session-id` header):
|
|
310
|
+
|
|
310
311
|
```bash
|
|
311
|
-
# Initialize session
|
|
312
312
|
curl -X POST http://localhost:3000/mcp \
|
|
313
313
|
-H "Content-Type: application/json" \
|
|
314
314
|
-H "Accept: application/json, text/event-stream" \
|
|
315
315
|
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
|
|
316
|
-
|
|
316
|
+
```
|
|
317
317
|
|
|
318
|
-
|
|
318
|
+
List tools (with session):
|
|
319
|
+
|
|
320
|
+
```bash
|
|
319
321
|
curl -X POST http://localhost:3000/mcp \
|
|
320
322
|
-H "Content-Type: application/json" \
|
|
321
323
|
-H "Accept: application/json, text/event-stream" \
|
|
@@ -409,34 +411,14 @@ When GitHub tools cannot auto-detect repository information:
|
|
|
409
411
|
}
|
|
410
412
|
```
|
|
411
413
|
|
|
412
|
-
### Client-Specific Notes
|
|
413
|
-
|
|
414
|
-
**Cursor IDE:**
|
|
415
|
-
|
|
416
|
-
- **Listing MCP Resources**: If the agent has trouble listing resources, instruct it to call `ListMcpResources()` without specifying a server parameter, or with `server: "user-memory-journal-mcp"` (Cursor prefixes server names with `user-`).
|
|
417
|
-
|
|
418
414
|
### π Session Management
|
|
419
415
|
|
|
420
|
-
Memory Journal bridges AI sessions
|
|
416
|
+
Memory Journal bridges AI sessions with a three-step cycle:
|
|
421
417
|
|
|
422
|
-
**
|
|
423
|
-
|
|
424
|
-
1. Session starts β agent reads `memory://briefing` and shows you a project context summary
|
|
425
|
-
2. Session ends β agent creates a `retrospective` entry tagged `session-summary`
|
|
418
|
+
1. **Session start** β agent reads `memory://briefing` and shows you a project context summary (automatic via server instructions)
|
|
419
|
+
2. **Session summary** β use the `session-summary` prompt to capture what was accomplished, what's pending, and context for the next session
|
|
426
420
|
3. Next session's briefing includes the previous summary β context flows seamlessly
|
|
427
421
|
|
|
428
|
-
**Setup by IDE:** Ready-to-use rules and hooks in [`hooks/`](hooks/):
|
|
429
|
-
|
|
430
|
-
| Client | Primary (agent behavior) | Optional (audit/logging) |
|
|
431
|
-
| -------------- | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
|
|
432
|
-
| **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/` |
|
|
433
|
-
| **Kiro (AWS)** | Server instructions (automatic) | Copy [`hooks/kiro/session-end.md`](hooks/kiro/session-end.md) to `.kiro/hooks/` |
|
|
434
|
-
| **Kilo Code** | Server instructions (automatic) | Import [`hooks/kilo-code/session-end-mode.json`](hooks/kilo-code/session-end-mode.json) |
|
|
435
|
-
|
|
436
|
-
**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.
|
|
437
|
-
|
|
438
|
-
See [`hooks/README.md`](hooks/README.md) for detailed setup instructions.
|
|
439
|
-
|
|
440
422
|
## π§ Configuration
|
|
441
423
|
|
|
442
424
|
### GitHub Integration (Optional)
|
|
@@ -482,7 +464,7 @@ flowchart TB
|
|
|
482
464
|
subgraph MCP["Memory Journal MCP Server"]
|
|
483
465
|
Tools["π οΈ 42 Tools"]
|
|
484
466
|
Resources["π‘ 22 Resources"]
|
|
485
|
-
Prompts["π¬
|
|
467
|
+
Prompts["π¬ 16 Prompts"]
|
|
486
468
|
end
|
|
487
469
|
|
|
488
470
|
subgraph Storage["Persistence Layer"]
|
|
@@ -509,7 +491,7 @@ flowchart TB
|
|
|
509
491
|
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
510
492
|
β MCP Server Layer (TypeScript) β
|
|
511
493
|
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββ β
|
|
512
|
-
β β Tools (42) β β Resources (22) β β Prompts (
|
|
494
|
+
β β Tools (42) β β Resources (22) β β Prompts (16)β β
|
|
513
495
|
β β with Annotationsβ β with Annotationsβ β β β
|
|
514
496
|
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββ β
|
|
515
497
|
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
|
|
@@ -542,9 +524,9 @@ flowchart TB
|
|
|
542
524
|
|
|
543
525
|
Memory Journal is designed for extremely low overhead during AI task execution. We include a `vitest bench` suite to maintain these baseline guarantees:
|
|
544
526
|
|
|
545
|
-
- **Database Reads**: Operations execute in fractions of a millisecond. `calculateImportance` is ~
|
|
546
|
-
- **Vector Search Engine**:
|
|
547
|
-
- **Core MCP Routines**:
|
|
527
|
+
- **Database Reads**: Operations execute in fractions of a millisecond. `calculateImportance` is ~7x faster than retrieving 50 recent entries (composite index optimization narrows this gap by accelerating `getRecentEntries` ~4x).
|
|
528
|
+
- **Vector Search Engine**: Both search (780 ops/sec) and indexing (640 ops/sec) are high-throughput via `vectra` with native upsert support.
|
|
529
|
+
- **Core MCP Routines**: `getTools` uses cached O(1) dispatch (~4800x faster than tool execution). `create_entry` and `search_entries` execute through the full MCP layer with sub-millisecond overhead.
|
|
548
530
|
|
|
549
531
|
To run the benchmarking suite locally:
|
|
550
532
|
|
|
@@ -554,11 +536,11 @@ npm run bench
|
|
|
554
536
|
|
|
555
537
|
### Testing
|
|
556
538
|
|
|
557
|
-
**
|
|
539
|
+
**785 tests** across two test frameworks:
|
|
558
540
|
|
|
559
541
|
| Suite | Tests | Command | Covers |
|
|
560
542
|
| ------------------------- | ----- | ------------------ | --------------------------------------------------------------------- |
|
|
561
|
-
| Vitest (unit/integration) |
|
|
543
|
+
| Vitest (unit/integration) | 738 | `npm test` | Database, tools, resources, handlers, security, GitHub, vector search |
|
|
562
544
|
| Playwright (e2e) | 47 | `npm run test:e2e` | HTTP/SSE transport, auth, sessions, CORS, security headers, scheduler |
|
|
563
545
|
|
|
564
546
|
```bash
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AA0QhE;;;;;;;;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"}
|
|
@@ -20,7 +20,10 @@ const ESSENTIAL_INSTRUCTIONS = `# memory-journal-mcp
|
|
|
20
20
|
## Session Start
|
|
21
21
|
|
|
22
22
|
1. Read \`memory://briefing\` for project context
|
|
23
|
-
-
|
|
23
|
+
- **Server name for resource calls**: Derive from tool prefixes β strip the tool name suffix to get the server name.
|
|
24
|
+
- **AntiGravity**: Tools are \`mcp_{name}_{tool}\` (e.g., \`mcp_memory-journal-mcp_create_entry\`). Server name = \`memory-journal-mcp\`.
|
|
25
|
+
- **Cursor**: Tools are \`user-{name}-{tool}\` (e.g., \`user-memory-journal-mcp-create_entry\`). Server name = \`user-memory-journal-mcp\`.
|
|
26
|
+
- **Other clients** (Claude Desktop, etc.): Likely use the configured name exactly (e.g., \`memory-journal-mcp\`). Only Cursor and AntiGravity have been verified β use the tool-prefix discovery method above if unsure.
|
|
24
27
|
2. **Show the \`userMessage\` to the user** (it contains a formatted summary of project context)
|
|
25
28
|
3. Proceed with the user's request
|
|
26
29
|
|
|
@@ -30,19 +33,6 @@ const ESSENTIAL_INSTRUCTIONS = `# memory-journal-mcp
|
|
|
30
33
|
- **Search before**: major decisions, referencing prior work, understanding project context
|
|
31
34
|
- **Link entries**: implementationβspec, bugfixβissue, followupβprior work
|
|
32
35
|
|
|
33
|
-
## Session End
|
|
34
|
-
|
|
35
|
-
When a conversation or task is wrapping up (user says "thanks," final deliverable complete, no more work planned):
|
|
36
|
-
|
|
37
|
-
1. Create a journal entry summarizing the session:
|
|
38
|
-
- **What was accomplished** (key changes, decisions, files modified)
|
|
39
|
-
- **What's unfinished or blocked** (pending items, open questions)
|
|
40
|
-
- **Context for next session** (relevant entry IDs, branch names, PR numbers)
|
|
41
|
-
2. Use \`entry_type: "retrospective"\` and tag with \`session-summary\`
|
|
42
|
-
3. This is opt-out β ALWAYS create the entry, even for short/trivial sessions, unless the user explicitly says to skip it
|
|
43
|
-
|
|
44
|
-
> If your client has hooks configured for session-end journaling (e.g., Cursor \`sessionEnd\` hook), this is handled automatically. Otherwise, follow the steps above.
|
|
45
|
-
|
|
46
36
|
## Rule & Skill Suggestions
|
|
47
37
|
|
|
48
38
|
When you notice the user consistently applies patterns, preferences, or workflows that could be codified:
|
|
@@ -80,32 +70,25 @@ const GITHUB_INSTRUCTIONS = `
|
|
|
80
70
|
const SERVER_ACCESS_INSTRUCTIONS = `
|
|
81
71
|
## How to Access This Server
|
|
82
72
|
|
|
83
|
-
###
|
|
84
|
-
|
|
85
|
-
Use \`CallMcpTool\` with server name \`user-memory-journal-mcp\`:
|
|
73
|
+
### Server Name Discovery
|
|
86
74
|
|
|
87
|
-
|
|
88
|
-
CallMcpTool(server: "user-memory-journal-mcp", toolName: "create_entry", arguments: {...})
|
|
89
|
-
\`\`\`
|
|
75
|
+
The server name used for resource and tool calls depends on your MCP client:
|
|
90
76
|
|
|
91
|
-
|
|
77
|
+
- **AntiGravity**: Prefixes tools with \`mcp_\` and uses underscores. If the server is named \`memory-journal-mcp\` in config, tools appear as \`mcp_memory-journal-mcp_create_entry\`. Use \`memory-journal-mcp\` as the server name for resource calls.
|
|
78
|
+
- **Cursor**: Prepends \`user-\` to the configured name. If the server is named \`memory-journal-mcp\` in config, use \`user-memory-journal-mcp\` for \`ListMcpResources\` and \`FetchMcpResource\` calls.
|
|
79
|
+
- **Other clients** (Claude Desktop, etc.): Likely use the configured name exactly. Only Cursor and AntiGravity have been verified β use the tool-prefix discovery method if unsure.
|
|
92
80
|
|
|
93
|
-
|
|
81
|
+
To identify your server name: look at the tool name prefix. Strip the tool name suffix to get the server name. Examples: \`mcp_memory-journal-mcp_create_entry\` β \`memory-journal-mcp\`; \`user-memory-journal-mcp-create_entry\` β \`user-memory-journal-mcp\`.
|
|
94
82
|
|
|
95
|
-
|
|
96
|
-
ListMcpResources(server: "user-memory-journal-mcp")
|
|
97
|
-
\`\`\`
|
|
83
|
+
### Calling Tools
|
|
98
84
|
|
|
99
|
-
|
|
85
|
+
Use the tool functions directly β they are already available in your context by their full prefixed name.
|
|
100
86
|
|
|
101
|
-
###
|
|
87
|
+
### Reading Resources
|
|
102
88
|
|
|
103
|
-
Use
|
|
89
|
+
Use the resource-reading mechanism provided by your MCP client with the discovered server name and \`memory://\` URIs.
|
|
104
90
|
|
|
105
|
-
|
|
106
|
-
FetchMcpResource(server: "user-memory-journal-mcp", uri: "memory://recent")
|
|
107
|
-
FetchMcpResource(server: "user-memory-journal-mcp", uri: "memory://kanban/1")
|
|
108
|
-
\`\`\`
|
|
91
|
+
Do NOT try to browse filesystem paths for MCP tool/resource definitions β use the MCP protocol directly.
|
|
109
92
|
|
|
110
93
|
## Quick Health Check
|
|
111
94
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerInstructions.js","sourceRoot":"","sources":["../../src/constants/ServerInstructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAqCxD;;;GAGG;AACH,MAAM,sBAAsB,GAAG
|
|
1
|
+
{"version":3,"file":"ServerInstructions.js","sourceRoot":"","sources":["../../src/constants/ServerInstructions.ts"],"names":[],"mappings":"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"}
|