memory-journal-mcp 4.4.2 → 5.0.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.
Files changed (291) hide show
  1. package/.github/workflows/codeql.yml +1 -6
  2. package/.github/workflows/docker-publish.yml +15 -49
  3. package/.github/workflows/lint-and-test.yml +1 -1
  4. package/.github/workflows/secrets-scanning.yml +4 -3
  5. package/.github/workflows/security-update.yml +3 -3
  6. package/CHANGELOG.md +213 -0
  7. package/CONTRIBUTING.md +132 -97
  8. package/DOCKER_README.md +184 -235
  9. package/Dockerfile +27 -24
  10. package/README.md +218 -190
  11. package/SECURITY.md +27 -35
  12. package/dist/cli.js +16 -1
  13. package/dist/cli.js.map +1 -1
  14. package/dist/constants/ServerInstructions.d.ts +5 -1
  15. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  16. package/dist/constants/ServerInstructions.js +133 -73
  17. package/dist/constants/ServerInstructions.js.map +1 -1
  18. package/dist/constants/icons.d.ts +2 -2
  19. package/dist/constants/icons.d.ts.map +1 -1
  20. package/dist/constants/icons.js +7 -6
  21. package/dist/constants/icons.js.map +1 -1
  22. package/dist/database/SqliteAdapter.d.ts +37 -24
  23. package/dist/database/SqliteAdapter.d.ts.map +1 -1
  24. package/dist/database/SqliteAdapter.js +319 -157
  25. package/dist/database/SqliteAdapter.js.map +1 -1
  26. package/dist/database/schema.d.ts +45 -0
  27. package/dist/database/schema.d.ts.map +1 -0
  28. package/dist/database/schema.js +92 -0
  29. package/dist/database/schema.js.map +1 -0
  30. package/dist/filtering/ToolFilter.d.ts +1 -1
  31. package/dist/filtering/ToolFilter.d.ts.map +1 -1
  32. package/dist/filtering/ToolFilter.js +13 -2
  33. package/dist/filtering/ToolFilter.js.map +1 -1
  34. package/dist/github/GitHubIntegration.d.ts.map +1 -1
  35. package/dist/github/GitHubIntegration.js +1 -3
  36. package/dist/github/GitHubIntegration.js.map +1 -1
  37. package/dist/handlers/prompts/github.d.ts +12 -0
  38. package/dist/handlers/prompts/github.d.ts.map +1 -0
  39. package/dist/handlers/prompts/github.js +178 -0
  40. package/dist/handlers/prompts/github.js.map +1 -0
  41. package/dist/handlers/prompts/index.d.ts +23 -2
  42. package/dist/handlers/prompts/index.d.ts.map +1 -1
  43. package/dist/handlers/prompts/index.js +7 -432
  44. package/dist/handlers/prompts/index.js.map +1 -1
  45. package/dist/handlers/prompts/workflow.d.ts +12 -0
  46. package/dist/handlers/prompts/workflow.d.ts.map +1 -0
  47. package/dist/handlers/prompts/workflow.js +277 -0
  48. package/dist/handlers/prompts/workflow.js.map +1 -0
  49. package/dist/handlers/resources/core.d.ts +11 -0
  50. package/dist/handlers/resources/core.d.ts.map +1 -0
  51. package/dist/handlers/resources/core.js +433 -0
  52. package/dist/handlers/resources/core.js.map +1 -0
  53. package/dist/handlers/resources/github.d.ts +11 -0
  54. package/dist/handlers/resources/github.d.ts.map +1 -0
  55. package/dist/handlers/resources/github.js +314 -0
  56. package/dist/handlers/resources/github.js.map +1 -0
  57. package/dist/handlers/resources/graph.d.ts +11 -0
  58. package/dist/handlers/resources/graph.d.ts.map +1 -0
  59. package/dist/handlers/resources/graph.js +204 -0
  60. package/dist/handlers/resources/graph.js.map +1 -0
  61. package/dist/handlers/resources/index.d.ts +5 -20
  62. package/dist/handlers/resources/index.d.ts.map +1 -1
  63. package/dist/handlers/resources/index.js +16 -1278
  64. package/dist/handlers/resources/index.js.map +1 -1
  65. package/dist/handlers/resources/shared.d.ts +60 -0
  66. package/dist/handlers/resources/shared.d.ts.map +1 -0
  67. package/dist/handlers/resources/shared.js +49 -0
  68. package/dist/handlers/resources/shared.js.map +1 -0
  69. package/dist/handlers/resources/team.d.ts +13 -0
  70. package/dist/handlers/resources/team.d.ts.map +1 -0
  71. package/dist/handlers/resources/team.js +119 -0
  72. package/dist/handlers/resources/team.js.map +1 -0
  73. package/dist/handlers/resources/templates.d.ts +13 -0
  74. package/dist/handlers/resources/templates.d.ts.map +1 -0
  75. package/dist/handlers/resources/templates.js +310 -0
  76. package/dist/handlers/resources/templates.js.map +1 -0
  77. package/dist/handlers/tools/admin.d.ts +8 -0
  78. package/dist/handlers/tools/admin.d.ts.map +1 -0
  79. package/dist/handlers/tools/admin.js +270 -0
  80. package/dist/handlers/tools/admin.js.map +1 -0
  81. package/dist/handlers/tools/analytics.d.ts +8 -0
  82. package/dist/handlers/tools/analytics.d.ts.map +1 -0
  83. package/dist/handlers/tools/analytics.js +256 -0
  84. package/dist/handlers/tools/analytics.js.map +1 -0
  85. package/dist/handlers/tools/backup.d.ts +8 -0
  86. package/dist/handlers/tools/backup.d.ts.map +1 -0
  87. package/dist/handlers/tools/backup.js +224 -0
  88. package/dist/handlers/tools/backup.js.map +1 -0
  89. package/dist/handlers/tools/core.d.ts +9 -0
  90. package/dist/handlers/tools/core.d.ts.map +1 -0
  91. package/dist/handlers/tools/core.js +326 -0
  92. package/dist/handlers/tools/core.js.map +1 -0
  93. package/dist/handlers/tools/export.d.ts +8 -0
  94. package/dist/handlers/tools/export.d.ts.map +1 -0
  95. package/dist/handlers/tools/export.js +89 -0
  96. package/dist/handlers/tools/export.js.map +1 -0
  97. package/dist/handlers/tools/github/helpers.d.ts +34 -0
  98. package/dist/handlers/tools/github/helpers.d.ts.map +1 -0
  99. package/dist/handlers/tools/github/helpers.js +52 -0
  100. package/dist/handlers/tools/github/helpers.js.map +1 -0
  101. package/dist/handlers/tools/github/insights-tools.d.ts +8 -0
  102. package/dist/handlers/tools/github/insights-tools.d.ts.map +1 -0
  103. package/dist/handlers/tools/github/insights-tools.js +104 -0
  104. package/dist/handlers/tools/github/insights-tools.js.map +1 -0
  105. package/dist/handlers/tools/github/issue-tools.d.ts +8 -0
  106. package/dist/handlers/tools/github/issue-tools.d.ts.map +1 -0
  107. package/dist/handlers/tools/github/issue-tools.js +359 -0
  108. package/dist/handlers/tools/github/issue-tools.js.map +1 -0
  109. package/dist/handlers/tools/github/kanban-tools.d.ts +8 -0
  110. package/dist/handlers/tools/github/kanban-tools.d.ts.map +1 -0
  111. package/dist/handlers/tools/github/kanban-tools.js +108 -0
  112. package/dist/handlers/tools/github/kanban-tools.js.map +1 -0
  113. package/dist/handlers/tools/github/milestone-tools.d.ts +9 -0
  114. package/dist/handlers/tools/github/milestone-tools.d.ts.map +1 -0
  115. package/dist/handlers/tools/github/milestone-tools.js +302 -0
  116. package/dist/handlers/tools/github/milestone-tools.js.map +1 -0
  117. package/dist/handlers/tools/github/mutation-tools.d.ts +12 -0
  118. package/dist/handlers/tools/github/mutation-tools.d.ts.map +1 -0
  119. package/dist/handlers/tools/github/mutation-tools.js +15 -0
  120. package/dist/handlers/tools/github/mutation-tools.js.map +1 -0
  121. package/dist/handlers/tools/github/read-tools.d.ts +8 -0
  122. package/dist/handlers/tools/github/read-tools.d.ts.map +1 -0
  123. package/dist/handlers/tools/github/read-tools.js +260 -0
  124. package/dist/handlers/tools/github/read-tools.js.map +1 -0
  125. package/dist/handlers/tools/github/schemas.d.ts +467 -0
  126. package/dist/handlers/tools/github/schemas.d.ts.map +1 -0
  127. package/dist/handlers/tools/github/schemas.js +335 -0
  128. package/dist/handlers/tools/github/schemas.js.map +1 -0
  129. package/dist/handlers/tools/github.d.ts +14 -0
  130. package/dist/handlers/tools/github.d.ts.map +1 -0
  131. package/dist/handlers/tools/github.js +28 -0
  132. package/dist/handlers/tools/github.js.map +1 -0
  133. package/dist/handlers/tools/index.d.ts +15 -20
  134. package/dist/handlers/tools/index.d.ts.map +1 -1
  135. package/dist/handlers/tools/index.js +117 -2909
  136. package/dist/handlers/tools/index.js.map +1 -1
  137. package/dist/handlers/tools/relationships.d.ts +8 -0
  138. package/dist/handlers/tools/relationships.d.ts.map +1 -0
  139. package/dist/handlers/tools/relationships.js +308 -0
  140. package/dist/handlers/tools/relationships.js.map +1 -0
  141. package/dist/handlers/tools/schemas.d.ts +108 -0
  142. package/dist/handlers/tools/schemas.d.ts.map +1 -0
  143. package/dist/handlers/tools/schemas.js +122 -0
  144. package/dist/handlers/tools/schemas.js.map +1 -0
  145. package/dist/handlers/tools/search.d.ts +8 -0
  146. package/dist/handlers/tools/search.d.ts.map +1 -0
  147. package/dist/handlers/tools/search.js +282 -0
  148. package/dist/handlers/tools/search.js.map +1 -0
  149. package/dist/handlers/tools/team.d.ts +11 -0
  150. package/dist/handlers/tools/team.d.ts.map +1 -0
  151. package/dist/handlers/tools/team.js +239 -0
  152. package/dist/handlers/tools/team.js.map +1 -0
  153. package/dist/server/McpServer.d.ts +4 -0
  154. package/dist/server/McpServer.d.ts.map +1 -1
  155. package/dist/server/McpServer.js +48 -297
  156. package/dist/server/McpServer.js.map +1 -1
  157. package/dist/server/Scheduler.d.ts +91 -0
  158. package/dist/server/Scheduler.d.ts.map +1 -0
  159. package/dist/server/Scheduler.js +201 -0
  160. package/dist/server/Scheduler.js.map +1 -0
  161. package/dist/transports/http.d.ts +66 -0
  162. package/dist/transports/http.d.ts.map +1 -0
  163. package/dist/transports/http.js +519 -0
  164. package/dist/transports/http.js.map +1 -0
  165. package/dist/types/entities.d.ts +101 -0
  166. package/dist/types/entities.d.ts.map +1 -0
  167. package/dist/types/entities.js +5 -0
  168. package/dist/types/entities.js.map +1 -0
  169. package/dist/types/filtering.d.ts +34 -0
  170. package/dist/types/filtering.d.ts.map +1 -0
  171. package/dist/types/filtering.js +5 -0
  172. package/dist/types/filtering.js.map +1 -0
  173. package/dist/types/github.d.ts +166 -0
  174. package/dist/types/github.d.ts.map +1 -0
  175. package/dist/types/github.js +5 -0
  176. package/dist/types/github.js.map +1 -0
  177. package/dist/types/index.d.ts +35 -292
  178. package/dist/types/index.d.ts.map +1 -1
  179. package/dist/types/index.js +2 -2
  180. package/dist/types/index.js.map +1 -1
  181. package/dist/utils/error-helpers.d.ts +37 -0
  182. package/dist/utils/error-helpers.d.ts.map +1 -0
  183. package/dist/utils/error-helpers.js +47 -0
  184. package/dist/utils/error-helpers.js.map +1 -0
  185. package/dist/utils/logger.d.ts.map +1 -1
  186. package/dist/utils/logger.js +6 -3
  187. package/dist/utils/logger.js.map +1 -1
  188. package/dist/utils/security-utils.d.ts +0 -21
  189. package/dist/utils/security-utils.d.ts.map +1 -1
  190. package/dist/utils/security-utils.js +0 -47
  191. package/dist/utils/security-utils.js.map +1 -1
  192. package/dist/vector/VectorSearchManager.d.ts.map +1 -1
  193. package/dist/vector/VectorSearchManager.js +9 -32
  194. package/dist/vector/VectorSearchManager.js.map +1 -1
  195. package/docker-compose.yml +11 -2
  196. package/hooks/README.md +107 -0
  197. package/hooks/cursor/hooks.json +10 -0
  198. package/hooks/cursor/memory-journal.mdc +22 -0
  199. package/hooks/cursor/session-end.sh +19 -0
  200. package/hooks/kilo-code/session-end-mode.json +11 -0
  201. package/hooks/kiro/session-end.md +13 -0
  202. package/mcp-config-example.json +1 -0
  203. package/package.json +11 -9
  204. package/playwright.config.ts +29 -0
  205. package/releases/v4.5.0.md +116 -0
  206. package/releases/v5.0.0.md +105 -0
  207. package/scripts/generate-server-instructions.ts +176 -0
  208. package/scripts/server-instructions-function-body.ts +77 -0
  209. package/server.json +3 -3
  210. package/src/cli.ts +45 -1
  211. package/src/constants/ServerInstructions.ts +133 -73
  212. package/src/constants/icons.ts +8 -7
  213. package/src/constants/server-instructions.md +268 -0
  214. package/src/database/SqliteAdapter.ts +358 -192
  215. package/src/database/schema.ts +125 -0
  216. package/src/filtering/ToolFilter.ts +13 -2
  217. package/src/github/GitHubIntegration.ts +1 -3
  218. package/src/handlers/prompts/github.ts +209 -0
  219. package/src/handlers/prompts/index.ts +10 -499
  220. package/src/handlers/prompts/workflow.ts +314 -0
  221. package/src/handlers/resources/core.ts +528 -0
  222. package/src/handlers/resources/github.ts +358 -0
  223. package/src/handlers/resources/graph.ts +254 -0
  224. package/src/handlers/resources/index.ts +23 -1570
  225. package/src/handlers/resources/shared.ts +103 -0
  226. package/src/handlers/resources/team.ts +133 -0
  227. package/src/handlers/resources/templates.ts +374 -0
  228. package/src/handlers/tools/admin.ts +285 -0
  229. package/src/handlers/tools/analytics.ts +301 -0
  230. package/src/handlers/tools/backup.ts +242 -0
  231. package/src/handlers/tools/core.ts +350 -0
  232. package/src/handlers/tools/export.ts +115 -0
  233. package/src/handlers/tools/github/helpers.ts +86 -0
  234. package/src/handlers/tools/github/insights-tools.ts +119 -0
  235. package/src/handlers/tools/github/issue-tools.ts +439 -0
  236. package/src/handlers/tools/github/kanban-tools.ts +134 -0
  237. package/src/handlers/tools/github/milestone-tools.ts +392 -0
  238. package/src/handlers/tools/github/mutation-tools.ts +17 -0
  239. package/src/handlers/tools/github/read-tools.ts +328 -0
  240. package/src/handlers/tools/github/schemas.ts +369 -0
  241. package/src/handlers/tools/github.ts +36 -0
  242. package/src/handlers/tools/index.ts +144 -3325
  243. package/src/handlers/tools/relationships.ts +358 -0
  244. package/src/handlers/tools/schemas.ts +132 -0
  245. package/src/handlers/tools/search.ts +343 -0
  246. package/src/handlers/tools/team.ts +273 -0
  247. package/src/server/McpServer.ts +63 -358
  248. package/src/server/Scheduler.ts +278 -0
  249. package/src/transports/http.ts +635 -0
  250. package/src/types/entities.ts +145 -0
  251. package/src/types/filtering.ts +54 -0
  252. package/src/types/github.ts +180 -0
  253. package/src/types/index.ts +67 -375
  254. package/src/utils/error-helpers.ts +52 -0
  255. package/src/utils/logger.ts +6 -3
  256. package/src/utils/security-utils.ts +0 -52
  257. package/src/vector/VectorSearchManager.ts +9 -33
  258. package/tests/constants/icons.test.ts +1 -2
  259. package/tests/constants/server-instructions.test.ts +30 -4
  260. package/tests/database/sqlite-adapter.test.ts +91 -7
  261. package/tests/e2e/auth.spec.ts +154 -0
  262. package/tests/e2e/health.spec.ts +63 -0
  263. package/tests/e2e/protocols.spec.ts +134 -0
  264. package/tests/e2e/resources.spec.ts +103 -0
  265. package/tests/e2e/scheduler.spec.ts +79 -0
  266. package/tests/e2e/security.spec.ts +91 -0
  267. package/tests/e2e/sessions.spec.ts +95 -0
  268. package/tests/e2e/stateless.spec.ts +121 -0
  269. package/tests/e2e/tools.spec.ts +111 -0
  270. package/tests/filtering/tool-filter.test.ts +46 -0
  271. package/tests/handlers/error-path-coverage.test.ts +324 -0
  272. package/tests/handlers/github-resource-handlers.test.ts +453 -0
  273. package/tests/handlers/github-tool-handlers.test.ts +899 -0
  274. package/tests/handlers/prompt-handler-coverage.test.ts +106 -0
  275. package/tests/handlers/prompt-handlers.test.ts +40 -0
  276. package/tests/handlers/resource-handler-coverage.test.ts +181 -0
  277. package/tests/handlers/resource-handlers.test.ts +33 -9
  278. package/tests/handlers/search-tool-handlers.test.ts +272 -0
  279. package/tests/handlers/targeted-gap-closure.test.ts +387 -0
  280. package/tests/handlers/team-resource-handlers.test.ts +156 -0
  281. package/tests/handlers/team-tool-handlers.test.ts +301 -0
  282. package/tests/handlers/tool-handler-coverage.test.ts +469 -0
  283. package/tests/handlers/tool-handlers.test.ts +2 -2
  284. package/tests/security/sql-injection.test.ts +3 -54
  285. package/tests/server/mcp-server.test.ts +503 -8
  286. package/tests/server/scheduler.test.ts +400 -0
  287. package/tests/transports/http-transport.test.ts +620 -0
  288. package/tests/vector/vector-search-manager.test.ts +60 -0
  289. package/vitest.config.ts +4 -1
  290. package/.memory-journal-team.db +0 -0
  291. package/.vscode/settings.json +0 -84
package/DOCKER_README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Memory Journal MCP Server
2
2
 
3
- **Last Updated February 27, 2026**
3
+ **Last Updated March 6, 2026**
4
4
 
5
5
  [![GitHub](https://img.shields.io/badge/GitHub-neverinfamous/memory--journal--mcp-blue?logo=github)](https://github.com/neverinfamous/memory-journal-mcp)
6
6
  [![Docker Pulls](https://img.shields.io/docker/pulls/writenotenow/memory-journal-mcp)](https://hub.docker.com/r/writenotenow/memory-journal-mcp)
@@ -10,24 +10,42 @@
10
10
  [![Security](https://img.shields.io/badge/Security-Enhanced-green.svg)](https://github.com/neverinfamous/memory-journal-mcp/blob/main/SECURITY.md)
11
11
  [![GitHub Stars](https://img.shields.io/github/stars/neverinfamous/memory-journal-mcp?style=social)](https://github.com/neverinfamous/memory-journal-mcp)
12
12
  [![TypeScript](https://img.shields.io/badge/TypeScript-Strict-blue.svg)](https://github.com/neverinfamous/memory-journal-mcp)
13
- ![Coverage](https://img.shields.io/badge/Coverage-80.7%25-brightgreen.svg)
14
- ![Tests](https://img.shields.io/badge/Tests-479_passed-brightgreen.svg)
13
+ ![Coverage](https://img.shields.io/badge/Coverage-94%25-brightgreen.svg)
14
+ ![Tests](https://img.shields.io/badge/Tests-730_passed-brightgreen.svg)
15
15
 
16
- 🎯 **AI Context + Project Intelligence:** Bridge disconnected AI sessions with persistent project memory, while integrating your complete GitHub workflow Issues, PRs, Actions, Kanban boards, Milestones, Repository Insights, and Knowledge Graphs into every conversation.
16
+ 🎯 **AI Context + Project Intelligence:** Bridge disconnected AI sessions with persistent project memory and **automatic session handoff**with full GitHub workflow integration.
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/wiki/CHANGELOG)** • **[Release Article](https://adamic.tech/articles/memory-journal-mcp-server)**
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
 
22
22
  ### Key Benefits
23
23
 
24
+ **42 MCP Tools** · **15 Workflow Prompts** · **22 Resources** · **9 Tool Groups** · **GitHub Integration** (Issues, PRs, Actions, Kanban, Milestones, Insights)
25
+
24
26
  - 🧠 **Dynamic Context Management** - AI agents automatically query your project history and create entries at the right moments
25
27
  - 📝 **Auto-capture Git/GitHub context** (commits, branches, issues, milestones, PRs, projects)
26
- - 🔗 **Build knowledge graphs** linking specs → implementations → tests → PRs
27
- - 🔍 **Triple search** (full-text, semantic, date range)
28
+ - 🔗 **Knowledge graphs** - 8 relationship types linking specs → implementations → tests → PRs with Mermaid visualization
29
+ - 🔍 **Triple search** - full-text, semantic (AI-powered via `@xenova/transformers`), and date range
28
30
  - 📊 **Generate reports** (standups, retrospectives, PR summaries, status)
29
31
  - 📈 **Track repository insights** — stars, forks, clones, views, top referrers, and popular paths (14-day rolling)
30
32
  - 🗄️ **Backup & restore** your journal data with one command
33
+ - ⏰ **Automated maintenance** — scheduled backups, database optimization, and vector index rebuilds for long-running containers
34
+ - 🌐 **Dual HTTP transport** — Streamable HTTP (`/mcp`) for modern clients + legacy SSE (`/sse`) for backward compatibility, with stateless mode for serverless deployments
35
+ - 👥 **Team collaboration** — separate public team database with author attribution, cross-DB search, and dedicated team tools
36
+ - 🔄 **Session continuity** — automatic end-of-session summaries flow into the next session's briefing
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))
38
+ - 💡 **Rule & skill suggestions** — agents offer to codify your recurring patterns with your approval
39
+ - ✅ **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
+
41
+ **Ask Agent naturally:**
42
+
43
+ - "Show me my recent journal entries"
44
+ - "Create a backup of my journal"
45
+ - "Check the server health status"
46
+ - "Find entries related to performance"
47
+
48
+ **[See complete examples & prompts →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Examples)**
31
49
 
32
50
  ### Deployment Options
33
51
 
@@ -35,64 +53,101 @@
35
53
  - **[npm Package](https://www.npmjs.com/package/memory-journal-mcp)** - Simple `npm install -g` for local deployment
36
54
  - **[MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.neverinfamous/memory-journal-mcp)**
37
55
 
38
- ```
39
- +---------------------------+
40
- | 🤖 AI Session Start |
41
- |---------------------------|
42
- | 📋 Read Briefing |
43
- | (memory://briefing) |
44
- +-------------+-------------+
45
- |
46
- v
47
- +---------------------------+
48
- | 📝 Journal Operations |
49
- |---------------------------|
50
- | - Create Entry |
51
- | - Retrieve & Search |
52
- | - Link Entries |
53
- +------+------+------+------+
54
- | | |
55
- | | |
56
- v | v
57
- +--------------+ +---------------------------+
58
- | 🔍 Triple |<->| 🐙 GitHub Integration |
59
- | Search | |---------------------------|
60
- |--------------| | - Issues & Milestones |
61
- | - Full-Text | | - Pull Requests |
62
- | (FTS5) | | - GitHub Actions |
63
- | - Semantic | | - Kanban Boards |
64
- | (Vector) | +-------------+-------------+
65
- | - Date | |
66
- | Range | |
67
- +------+-------+ |
68
- | |
69
- v v
70
- +-----------+-------------+
71
- |
72
- v
73
- +---------------------------+
74
- | 📊 Outputs |
75
- |---------------------------|
76
- | - Standups & Retros |
77
- | - Knowledge Graphs |
78
- | - Project Timelines |
79
- +---------------------------+
80
- ```
56
+ **Flow:** AI Session Start → Read `memory://briefing` → Journal Operations (Create, Search, Link) → Triple Search + GitHub Integration → Outputs (Standups, Knowledge Graphs, Timelines) → Session End (auto-summary → next briefing)
57
+
58
+ ### Tool Filtering
59
+
60
+ Control which tools are exposed via `MEMORY_JOURNAL_MCP_TOOL_FILTER` (or CLI: `--tool-filter`):
61
+
62
+ | Filter | Tools | Use Case |
63
+ | -------------------- | ----- | ----------------------- |
64
+ | `full` | 42 | All tools (default) |
65
+ | `starter` | ~10 | Core + search only |
66
+ | `essential` | ~6 | Minimal footprint |
67
+ | `readonly` | ~15 | Disable all mutations |
68
+ | `-github` | 27 | Exclude a group |
69
+ | `-github,-analytics` | 25 | Exclude multiple groups |
70
+
71
+ **Filter Syntax:** `-group` (disable group) · `-tool` (disable tool) · `+tool` (re-enable after group disable)
72
+
73
+ **Groups:** `core`, `search`, `analytics`, `relationships`, `export`, `admin`, `github`, `backup`, `team`
74
+
75
+ **[Complete tool filtering guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Tool-Filtering)**
76
+
77
+ ## 📋 Core Capabilities
78
+
79
+ ### 🛠️ 42 MCP Tools (9 Groups)
80
+
81
+ | Group | Tools | Description |
82
+ | --------------- | ----- | ------------------------------------------------------------------------------- |
83
+ | `core` | 6 | Entry CRUD, tags, test |
84
+ | `search` | 4 | Text search, date range, semantic, vector stats |
85
+ | `analytics` | 2 | Statistics, cross-project insights |
86
+ | `relationships` | 2 | Link entries, visualize graphs |
87
+ | `export` | 1 | JSON/Markdown export |
88
+ | `admin` | 5 | Update, delete, rebuild/add to vector index, merge tags |
89
+ | `github` | 15 | Issues, PRs, context, Kanban, **Milestones**, **Insights**, **issue lifecycle** |
90
+ | `backup` | 4 | Backup, list, restore, cleanup |
91
+ | `team` | 3 | Team create, get recent, search (requires `TEAM_DB_PATH`) |
92
+
93
+ **[Complete tools documentation →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Tools)**
81
94
 
82
- ### 📈 **Current Capabilities**
95
+ ### 🎯 **15 Workflow Prompts**
96
+
97
+ - `find-related` - Discover connected entries via semantic similarity
98
+ - `prepare-standup` - Daily standup summaries
99
+ - `prepare-retro` - Sprint retrospectives
100
+ - `weekly-digest` - Day-by-day weekly summaries
101
+ - `analyze-period` - Deep period analysis with insights
102
+ - `goal-tracker` - Milestone and achievement tracking
103
+ - `get-context-bundle` - Project context with Git/GitHub/Kanban
104
+ - `get-recent-entries` - Formatted recent entries
105
+ - `project-status-summary` - GitHub Project status reports
106
+ - `pr-summary` - Pull request journal activity summary
107
+ - `code-review-prep` - Comprehensive PR review preparation
108
+ - `pr-retrospective` - Completed PR analysis with learnings
109
+ - `actions-failure-digest` - CI/CD failure analysis
110
+ - `project-milestone-tracker` - Milestone progress tracking
111
+ - `confirm-briefing` - Acknowledge session context to user
83
112
 
84
- - **39 MCP tools** - Complete development workflow + backup/restore + Kanban + Milestones + Insights + issue management
85
- - **15 workflow prompts** - Standups, retrospectives, PR workflows, CI/CD failure analysis, session acknowledgment
86
- - **21 MCP resources** - 14 static + 7 template (require parameters)
87
- - **GitHub Integration** - Projects, Issues, Pull Requests, Actions, **Kanban boards**, **Milestones**
88
- - **8 tool groups** - `core`, `search`, `analytics`, `relationships`, `export`, `admin`, `github`, `backup`
89
- - **Knowledge graphs** - 8 relationship types, Mermaid visualization
90
- - **Semantic search** - AI-powered conceptual search via `@xenova/transformers`
113
+ **[Complete prompts guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Prompts)**
91
114
 
92
- ---
115
+ ### 📡 **22 Resources** (15 Static + 7 Template)
116
+
117
+ **Static Resources** (appear in resource lists):
118
+
119
+ - `memory://briefing` - **Session initialization**: compact context for AI agents (~300 tokens)
120
+ - `memory://instructions` - **Behavioral guidance**: complete server instructions for AI agents
121
+ - `memory://recent` - 10 most recent entries
122
+ - `memory://significant` - Significant milestones and breakthroughs
123
+ - `memory://graph/recent` - Live Mermaid diagram of recent relationships
124
+ - `memory://health` - Server health & diagnostics
125
+ - `memory://graph/actions` - CI/CD narrative graph
126
+ - `memory://actions/recent` - Recent workflow runs
127
+ - `memory://tags` - All tags with usage counts
128
+ - `memory://statistics` - Journal statistics
129
+ - `memory://github/status` - GitHub repository status overview
130
+ - `memory://github/insights` - Repository stars, forks, and 14-day traffic summary
131
+ - `memory://github/milestones` - Open milestones with completion percentages
132
+ - `memory://team/recent` - Recent team entries with author attribution
133
+ - `memory://team/statistics` - Team entry counts, types, and author breakdown
134
+
135
+ **Template Resources** (require parameters, fetch directly by URI):
136
+
137
+ - `memory://projects/{number}/timeline` - Project activity timeline
138
+ - `memory://issues/{issue_number}/entries` - Entries linked to issue
139
+ - `memory://prs/{pr_number}/entries` - Entries linked to PR
140
+ - `memory://prs/{pr_number}/timeline` - Combined PR + journal timeline
141
+ - `memory://kanban/{project_number}` - GitHub Project Kanban board
142
+ - `memory://kanban/{project_number}/diagram` - Kanban Mermaid visualization
143
+ - `memory://milestones/{number}` - Milestone detail with completion progress
144
+
145
+ **[Resources documentation →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Resources)**
93
146
 
94
147
  ## 🚀 Quick Start (2 Minutes)
95
148
 
149
+ **Prerequisites:** Docker installed and running · ~300MB disk space · **[Full Installation Guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Installation)**
150
+
96
151
  ### 1. Pull the Image
97
152
 
98
153
  ```bash
@@ -162,13 +217,16 @@ To enable GitHub tools (`get_github_issues`, `get_github_prs`, etc.), add enviro
162
217
  }
163
218
  ```
164
219
 
165
- | Environment Variable | Description |
166
- | ------------------------ | ---------------------------------------------------------------------- |
167
- | `GITHUB_TOKEN` | GitHub personal access token for API access |
168
- | `GITHUB_REPO_PATH` | Path to git repo inside container (mount your repo) |
169
- | `DEFAULT_PROJECT_NUMBER` | Default GitHub Project number for auto-assignment when creating issues |
170
- | `AUTO_REBUILD_INDEX` | Set to `true` to rebuild vector index on server startup |
171
- | `MCP_HOST` | Server bind host (`0.0.0.0` for containers, default: `localhost`) |
220
+ | Environment Variable | Description |
221
+ | ------------------------ | ----------------------------------------------------------------------- |
222
+ | `DB_PATH` | Database location (default: `/app/data/memory_journal.db` in Docker) |
223
+ | `TEAM_DB_PATH` | Team database file location (CLI: `--team-db`) |
224
+ | `TEAM_AUTHOR` | Override author name for team entries (default: `git config user.name`) |
225
+ | `GITHUB_TOKEN` | GitHub personal access token for API access |
226
+ | `GITHUB_REPO_PATH` | Path to git repo inside container (mount your repo) |
227
+ | `DEFAULT_PROJECT_NUMBER` | Default GitHub Project number for auto-assignment when creating issues |
228
+ | `AUTO_REBUILD_INDEX` | Set to `true` to rebuild vector index on server startup |
229
+ | `MCP_HOST` | Server bind host (`0.0.0.0` for containers, default: `localhost`) |
172
230
 
173
231
  **Without `GITHUB_REPO_PATH`**: Explicitly provide `owner` and `repo` when calling GitHub tools.
174
232
 
@@ -188,15 +246,17 @@ When GitHub tools cannot auto-detect repository information:
188
246
 
189
247
  - **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-`).
190
248
 
191
- **Google AntiGravity IDE:**
249
+ ### 🔄 Session Management
192
250
 
193
- - **AntiGravity Users:** Server instructions are automatically sent to MCP clients during initialization. However, AntiGravity does not currently support MCP server instructions. For optimal usage in AntiGravity, manually provide the contents of [`src/constants/ServerInstructions.ts`](src/constants/ServerInstructions.ts) to the agent in your prompt or user rules.
251
+ Memory Journal bridges AI sessions automatically the agent reads project context at session start and captures a summary at session end.
194
252
 
195
- - **Session start**: Add to your user rules: "At session start, read `memory://briefing` from memory-journal-mcp."
253
+ 1. Session starts agent reads `memory://briefing` and shows you a project context summary
254
+ 2. Session ends → agent creates a `retrospective` entry tagged `session-summary`
255
+ 3. Next session's briefing includes the previous summary — context flows seamlessly
196
256
 
197
- - **Full guidance**: If behaviors missing, read `memory://instructions` for complete Dynamic Context Management patterns.
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.
198
258
 
199
- - **Prompts not available**: AntiGravity does not currently support MCP prompts. The 15 workflow prompts are not accessible.
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.
200
260
 
201
261
  ### HTTP/SSE Transport (Remote Access)
202
262
 
@@ -222,61 +282,69 @@ docker run --rm -p 3000:3000 \
222
282
 
223
283
  **Endpoints:**
224
284
 
225
- - `POST /mcp` — JSON-RPC requests (initialize, tools/call, resources/read, etc.)
226
- - `GET /mcp` SSE stream for server-to-client notifications (stateful only)
227
- - `DELETE /mcp` Session termination (stateful only)
285
+ | Endpoint | Description | Mode |
286
+ | ---------------- | ------------------------------------------------ | -------- |
287
+ | `GET /` | Server info and available endpoints | Both |
288
+ | `POST /mcp` | JSON-RPC requests (initialize, tools/call, etc.) | Both |
289
+ | `GET /mcp` | SSE stream for server-to-client notifications | Stateful |
290
+ | `DELETE /mcp` | Session termination | Stateful |
291
+ | `GET /sse` | Legacy SSE connection (MCP 2024-11-05) | Stateful |
292
+ | `POST /messages` | Legacy SSE message endpoint | Stateful |
293
+ | `GET /health` | Health check (`{ status, timestamp }`) | Both |
228
294
 
229
295
  **Session Management:** In stateful mode, include the `mcp-session-id` header (returned from initialization) in subsequent requests.
230
296
 
231
- | Mode | Progress Notifications | SSE Streaming | Serverless |
232
- | ------------------------- | ---------------------- | ------------- | ---------- |
233
- | Stateful (default) | ✅ Yes | ✅ Yes | ⚠️ Complex |
234
- | Stateless (`--stateless`) | ❌ No | ❌ No | ✅ Native |
235
-
236
- **Example with curl (stateful):**
237
-
238
- ```bash
239
- # Initialize session
240
- curl -X POST http://localhost:3000/mcp \
241
- -H "Content-Type: application/json" \
242
- -H "Accept: application/json, text/event-stream" \
243
- -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
244
- # Returns mcp-session-id header
245
-
246
- # List tools (with session)
247
- curl -X POST http://localhost:3000/mcp \
248
- -H "Content-Type: application/json" \
249
- -H "Accept: application/json, text/event-stream" \
250
- -H "mcp-session-id: YOUR_SESSION_ID" \
251
- -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
252
- ```
253
-
254
- ---
297
+ **Security Features:**
255
298
 
256
- ## **Install to Cursor IDE**
299
+ - **6 Security Headers** `X-Content-Type-Options`, `X-Frame-Options`, `Content-Security-Policy`, `Cache-Control`, `Referrer-Policy`, `Permissions-Policy`
300
+ - **Rate Limiting** — 100 requests/minute per IP (429 on excess)
301
+ - **CORS** — Configurable via `--cors-origin` or `MCP_CORS_ORIGIN` (default: `*`)
302
+ - **Body Size Limit** — 1 MB maximum
303
+ - **404 Handler** — Unknown paths return `{ error: "Not found" }`
304
+ - **Cross-Protocol Guard** — SSE session IDs rejected on `/mcp` and vice versa
257
305
 
258
- ### **One-Click Installation**
306
+ | Mode | Progress Notifications | Legacy SSE | Serverless |
307
+ | ------------------------- | ---------------------- | ---------- | ---------- |
308
+ | Stateful (default) | ✅ Yes | ✅ Yes | ⚠️ Complex |
309
+ | Stateless (`--stateless`) | ❌ No | ❌ No | ✅ Native |
259
310
 
260
- Click the button below to install directly into Cursor:
311
+ #### Automated Scheduling (HTTP Only)
261
312
 
262
- [![Install to Cursor](https://img.shields.io/badge/Install%20to%20Cursor-Click%20Here-blue?style=for-the-badge)](cursor://anysphere.cursor-deeplink/mcp/install?name=Memory%20Journal%20MCP&config=eyJtZW1vcnktam91cm5hbC1tY3AiOnsiYXJncyI6WyJydW4iLCItLXJtIiwiLWkiLCItdiIsIi4vZGF0YTovYXBwL2RhdGEiLCJ3cml0ZW5vdGVub3cvbWVtb3J5LWpvdXJuYWwtbWNwOmxhdGVzdCJdLCJjb21tYW5kIjoiZG9ja2VyIn19)
313
+ Enable periodic maintenance jobs for long-running containers. These jobs run in-process on `setInterval` — no external cron needed.
263
314
 
264
- Or copy this deep link:
315
+ > **Note:** These flags only work with HTTP/SSE transport. Stdio sessions (IDE integrations) are short-lived — use `backup_journal` and `cleanup_backups` tools manually instead.
265
316
 
266
- ```
267
- cursor://anysphere.cursor-deeplink/mcp/install?name=Memory%20Journal%20MCP&config=eyJtZW1vcnktam91cm5hbC1tY3AiOnsiYXJncyI6WyJydW4iLCItLXJtIiwiLWkiLCItdiIsIi4vZGF0YTovYXBwL2RhdGEiLCJ3cml0ZW5vdGVub3cvbWVtb3J5LWpvdXJuYWwtbWNwOmxhdGVzdCJdLCJjb21tYW5kIjoiZG9ja2VyIn19
317
+ ```bash
318
+ docker run --rm -p 3000:3000 \
319
+ -v ./data:/app/data \
320
+ writenotenow/memory-journal-mcp:latest \
321
+ --transport http --port 3000 --server-host 0.0.0.0 \
322
+ --backup-interval 60 --keep-backups 10 \
323
+ --vacuum-interval 1440 \
324
+ --rebuild-index-interval 720
268
325
  ```
269
326
 
270
- ### **Prerequisites**
327
+ | Flag | Default | Description |
328
+ | -------------------------------- | ------- | -------------------------------------------------------------------- |
329
+ | `--backup-interval <min>` | 0 (off) | Create timestamped database backups and prune old ones automatically |
330
+ | `--keep-backups <count>` | 5 | Max backups retained during automated cleanup |
331
+ | `--vacuum-interval <min>` | 0 (off) | Run `PRAGMA optimize` and flush database to disk |
332
+ | `--rebuild-index-interval <min>` | 0 (off) | Full vector index rebuild to maintain semantic search quality |
271
333
 
272
- - Docker installed and running
273
- - ✅ ~300MB disk space available
334
+ 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`.
274
335
 
275
- **📖 [See Full Installation Guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Installation)**
336
+ **Example with curl:**
276
337
 
277
- ---
338
+ ```bash
339
+ # Initialize session (returns mcp-session-id header)
340
+ curl -X POST http://localhost:3000/mcp \
341
+ -H "Content-Type: application/json" \
342
+ -H "Accept: application/json, text/event-stream" \
343
+ -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
+ ```
278
346
 
279
- ## 🛡️ Supply Chain Security
347
+ ## Supply Chain Security
280
348
 
281
349
  For enhanced security and reproducible builds, use SHA-pinned images:
282
350
 
@@ -302,69 +370,8 @@ docker pull writenotenow/memory-journal-mcp@sha256:<manifest-digest>
302
370
  - ✅ **Non-root Execution** - Minimal attack surface
303
371
  - ✅ **No Native Dependencies** - Pure JS stack reduces attack surface
304
372
 
305
- ---
306
-
307
- ## ⚡ Core Features
308
-
309
- ### 🛠️ 39 MCP Tools (8 Groups)
310
-
311
- | Group | Tools | Description |
312
- | --------------- | ----- | ------------------------------------------------------------------------------- |
313
- | `core` | 6 | Entry CRUD, tags, test |
314
- | `search` | 4 | Text search, date range, semantic, vector stats |
315
- | `analytics` | 2 | Statistics, cross-project insights |
316
- | `relationships` | 2 | Link entries, visualize graphs |
317
- | `export` | 1 | JSON/Markdown export |
318
- | `admin` | 5 | Update, delete, rebuild/add to vector index, merge tags |
319
- | `github` | 15 | Issues, PRs, context, Kanban, **Milestones**, **Insights**, **issue lifecycle** |
320
- | `backup` | 4 | Backup, list, restore, cleanup |
321
-
322
- **[Complete tools documentation →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Tools)**
323
-
324
- ### 🎯 15 Workflow Prompts
325
-
326
- Standups • Retrospectives • Weekly digests • PR summaries • Code review prep • Goal tracking
327
- **[Complete prompts guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Prompts)**
328
-
329
- ### 📡 21 Resources (14 Static + 7 Template)
330
-
331
- Including `memory://briefing` for session initialization, `memory://instructions` for behavioral guidance, `memory://health` for diagnostics, `memory://kanban/{n}` for Kanban boards, `memory://github/milestones` for milestone tracking, and `memory://github/insights` for repository traffic analytics. Template resources require parameters and are accessed directly by URI.
332
- **[Resources documentation →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Resources)**
333
-
334
- ---
335
-
336
- **Ask Cursor AI naturally:**
337
-
338
- - "Show me my recent journal entries"
339
- - "Create a backup of my journal"
340
- - "Check the server health status"
341
- - "Find entries related to performance"
342
-
343
- **[See complete examples & prompts →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Examples)**
344
-
345
- ---
346
-
347
373
  ## 🔧 Configuration
348
374
 
349
- ### Optional Environment Variables
350
-
351
- ```bash
352
- # GitHub integration (optional - enables Projects/Issues/PRs)
353
- -e GITHUB_TOKEN=your_token
354
-
355
- # Tool filtering (optional - control which tools are exposed)
356
- -e MEMORY_JOURNAL_MCP_TOOL_FILTER="-github"
357
-
358
- # Server bind host (required for containers, default: localhost)
359
- -e MCP_HOST=0.0.0.0
360
-
361
- # Database location
362
- -e DB_PATH=/app/data/custom.db
363
- ```
364
-
365
- **Token Scopes:** `repo`, `project`, `read:org` (org-level project discovery only)
366
- **[Full configuration guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Installation#configuration)**
367
-
368
375
  ### GitHub Management Capabilities
369
376
 
370
377
  Memory Journal provides a **hybrid approach** to GitHub management:
@@ -385,52 +392,8 @@ Memory Journal provides a **hybrid approach** to GitHub management:
385
392
  - `get_repo_insights` - **Repository traffic & analytics** (stars, clones, views, referrers, popular paths)
386
393
  - `create_github_issue_with_entry` / `close_github_issue_with_entry` - **Issue lifecycle with journal linking**
387
394
 
388
- **Agent Operations (via gh CLI):**
389
-
390
- ```bash
391
- # Issues
392
- gh issue create --title "Bug fix" --body "Description"
393
- gh issue close 42
394
-
395
- # Pull Requests
396
- gh pr create --fill
397
- gh pr merge 123
398
- ```
399
-
400
- > **Why this design?** The MCP server focuses on value-added features that integrate journal entries with GitHub (Kanban views, Milestones, timeline resources, context linking). Standard GitHub mutations are handled by `gh` CLI, which agents can invoke directly.
401
-
402
395
  **[Complete GitHub integration guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Git-Integration)**
403
396
 
404
- ### Tool Filtering
405
-
406
- Control which tools are exposed using `MEMORY_JOURNAL_MCP_TOOL_FILTER`:
407
-
408
- ```bash
409
- docker run -i --rm \
410
- -e MEMORY_JOURNAL_MCP_TOOL_FILTER="-github,-analytics" \
411
- -v ./data:/app/data \
412
- writenotenow/memory-journal-mcp:latest
413
- ```
414
-
415
- **Common configurations:**
416
-
417
- ```bash
418
- # Starter mode (core + search only)
419
- -e MEMORY_JOURNAL_MCP_TOOL_FILTER="starter"
420
-
421
- # Read-only mode (disable modifications)
422
- -e MEMORY_JOURNAL_MCP_TOOL_FILTER="readonly"
423
-
424
- # Full mode (all tools, default)
425
- -e MEMORY_JOURNAL_MCP_TOOL_FILTER="full"
426
- ```
427
-
428
- **Available tool groups:** `core`, `search`, `analytics`, `relationships`, `export`, `admin`, `github`, `backup`
429
-
430
- **[Complete tool filtering guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Tool-Filtering)**
431
-
432
- ---
433
-
434
397
  ## 📦 Image Details
435
398
 
436
399
  | Platform | Features |
@@ -446,15 +409,9 @@ docker run -i --rm \
446
409
  - **vectra** - Vector similarity search without native dependencies
447
410
  - **@xenova/transformers** - ML embeddings in JavaScript
448
411
  - **Instant Startup** - Lazy loading of ML models
449
- - **Production/Stable** - Comprehensive error handling and automatic migrations
450
-
451
- **Performance Benchmarks:**
452
-
453
- Memory Journal is designed for extremely low overhead during AI task execution.
412
+ - **Production/Stable** - Deterministic error handling (`{success, error}` on every tool) and automatic migrations
454
413
 
455
- - **Database Reads**: Operations execute in fractions of a millisecond. `calculateImportance` is ~55x faster than retrieving 50 recent entries.
456
- - **Vector Search Engine**: Semantic searches via `vectra` perform significantly faster than parallel entry indexing (>190x faster locally).
457
- - **Core MCP Routines**: Complex operations exhibit negligible latency when executed through standard MCP tools. Calling tools natively adds ~1.4x overhead compared to direct function execution.
414
+ Designed for extremely low overhead: database reads in sub-millisecond, vector search >131x faster than indexing, core MCP tool calls execute at >730 ops/sec with cached O(1) dispatch. Run `npm run bench` for local benchmarks.
458
415
 
459
416
  **Automated Deployment:**
460
417
 
@@ -466,14 +423,12 @@ Memory Journal is designed for extremely low overhead during AI task execution.
466
423
 
467
424
  **Available Tags:**
468
425
 
469
- - `4.4.2` - Specific version (recommended for production)
470
- - `4.4` - Latest patch in 4.4.x series
471
- - `4` - Latest minor in 4.x series
426
+ - `5.0.0` - Specific version (recommended for production)
427
+ - `5.0` - Latest patch in 5.0.x series
428
+ - `5` - Latest minor in 5.x series
472
429
  - `latest` - Always the newest version
473
430
  - `sha256-<digest>` - SHA-pinned for maximum security
474
431
 
475
- ---
476
-
477
432
  ## 🏗️ Build from Source
478
433
 
479
434
  **Step 1: Clone the repository**
@@ -504,20 +459,14 @@ Update your `~/.cursor/mcp.json` to use the local build:
504
459
  }
505
460
  ```
506
461
 
507
- ---
508
-
509
462
  ## 📚 Documentation & Resources
510
463
 
511
464
  - **[GitHub Wiki](https://github.com/neverinfamous/memory-journal-mcp/wiki)** - Complete documentation
512
465
  - **[npm Package](https://www.npmjs.com/package/memory-journal-mcp)** - Node.js distribution
513
466
  - **[Issues](https://github.com/neverinfamous/memory-journal-mcp/issues)** - Bug reports & feature requests
514
467
 
515
- ---
516
-
517
468
  ## 📄 License
518
469
 
519
470
  MIT License - See [LICENSE](https://github.com/neverinfamous/memory-journal-mcp/blob/main/LICENSE)
520
471
 
521
- ---
522
-
523
472
  _Migrating from v2.x?_ Your existing database is fully compatible. The TypeScript version uses the same schema and data format.