memento-mcp-server 1.6.0 โ†’ 1.7.2

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 (560) hide show
  1. package/INSTALL.en.md +303 -303
  2. package/INSTALL.md +303 -303
  3. package/README.en.md +331 -330
  4. package/README.md +432 -432
  5. package/dist/algorithms/hybrid-search-engine.d.ts +114 -44
  6. package/dist/algorithms/hybrid-search-engine.d.ts.map +1 -1
  7. package/dist/algorithms/hybrid-search-engine.js +261 -235
  8. package/dist/algorithms/hybrid-search-engine.js.map +1 -1
  9. package/dist/algorithms/search-engine.d.ts +2 -14
  10. package/dist/algorithms/search-engine.d.ts.map +1 -1
  11. package/dist/algorithms/search-engine.js +43 -35
  12. package/dist/algorithms/search-engine.js.map +1 -1
  13. package/dist/algorithms/vector-search-engine-migration.d.ts +67 -0
  14. package/dist/algorithms/vector-search-engine-migration.d.ts.map +1 -0
  15. package/dist/algorithms/vector-search-engine-migration.js +196 -0
  16. package/dist/algorithms/vector-search-engine-migration.js.map +1 -0
  17. package/dist/algorithms/vector-search-engine-refactored.d.ts +56 -0
  18. package/dist/algorithms/vector-search-engine-refactored.d.ts.map +1 -0
  19. package/dist/algorithms/vector-search-engine-refactored.js +101 -0
  20. package/dist/algorithms/vector-search-engine-refactored.js.map +1 -0
  21. package/dist/algorithms/vector-search-engine.d.ts +9 -2
  22. package/dist/algorithms/vector-search-engine.d.ts.map +1 -1
  23. package/dist/algorithms/vector-search-engine.js +245 -121
  24. package/dist/algorithms/vector-search-engine.js.map +1 -1
  25. package/dist/client/index.d.ts.map +1 -1
  26. package/dist/client/index.js +34 -11
  27. package/dist/client/index.js.map +1 -1
  28. package/dist/config/environment.d.ts +26 -0
  29. package/dist/config/environment.d.ts.map +1 -0
  30. package/dist/config/environment.js +103 -0
  31. package/dist/config/environment.js.map +1 -0
  32. package/dist/config/index.d.ts.map +1 -1
  33. package/dist/config/index.js +29 -50
  34. package/dist/config/index.js.map +1 -1
  35. package/dist/config/vector-search.config.d.ts +25 -0
  36. package/dist/config/vector-search.config.d.ts.map +1 -0
  37. package/dist/config/vector-search.config.js +40 -0
  38. package/dist/config/vector-search.config.js.map +1 -0
  39. package/dist/database/init.d.ts.map +1 -1
  40. package/dist/database/init.js +154 -17
  41. package/dist/database/init.js.map +1 -1
  42. package/dist/database/migrate.d.ts +2 -1
  43. package/dist/database/migrate.d.ts.map +1 -1
  44. package/dist/database/migrate.js +191 -18
  45. package/dist/database/migrate.js.map +1 -1
  46. package/dist/database/schema.sql +234 -159
  47. package/dist/factories/hybrid-search.factory.d.ts +20 -0
  48. package/dist/factories/hybrid-search.factory.d.ts.map +1 -0
  49. package/dist/factories/hybrid-search.factory.js +57 -0
  50. package/dist/factories/hybrid-search.factory.js.map +1 -0
  51. package/dist/factories/spaced-repetition.factory.d.ts +48 -0
  52. package/dist/factories/spaced-repetition.factory.d.ts.map +1 -0
  53. package/dist/factories/spaced-repetition.factory.js +187 -0
  54. package/dist/factories/spaced-repetition.factory.js.map +1 -0
  55. package/dist/factories/vector-search.factory.d.ts +25 -0
  56. package/dist/factories/vector-search.factory.d.ts.map +1 -0
  57. package/dist/factories/vector-search.factory.js +47 -0
  58. package/dist/factories/vector-search.factory.js.map +1 -0
  59. package/dist/interfaces/database.interface.d.ts +36 -0
  60. package/dist/interfaces/database.interface.d.ts.map +1 -0
  61. package/dist/interfaces/database.interface.js +6 -0
  62. package/dist/interfaces/database.interface.js.map +1 -0
  63. package/dist/interfaces/spaced-repetition.interface.d.ts +63 -0
  64. package/dist/interfaces/spaced-repetition.interface.d.ts.map +1 -0
  65. package/dist/interfaces/spaced-repetition.interface.js +6 -0
  66. package/dist/interfaces/spaced-repetition.interface.js.map +1 -0
  67. package/dist/repositories/vector-performance.repository.d.ts +25 -0
  68. package/dist/repositories/vector-performance.repository.d.ts.map +1 -0
  69. package/dist/repositories/vector-performance.repository.js +134 -0
  70. package/dist/repositories/vector-performance.repository.js.map +1 -0
  71. package/dist/repositories/vector-search.repository.d.ts +43 -0
  72. package/dist/repositories/vector-search.repository.d.ts.map +1 -0
  73. package/dist/repositories/vector-search.repository.js +377 -0
  74. package/dist/repositories/vector-search.repository.js.map +1 -0
  75. package/dist/server/http-server.d.ts.map +1 -1
  76. package/dist/server/http-server.js +25 -24
  77. package/dist/server/http-server.js.map +1 -1
  78. package/dist/server/index.d.ts +1 -0
  79. package/dist/server/index.d.ts.map +1 -1
  80. package/dist/server/index.js +7 -7
  81. package/dist/server/index.js.map +1 -1
  82. package/dist/services/alert-notification-service.d.ts +16 -0
  83. package/dist/services/alert-notification-service.d.ts.map +1 -0
  84. package/dist/services/alert-notification-service.js +44 -0
  85. package/dist/services/alert-notification-service.js.map +1 -0
  86. package/dist/services/async-optimizer.d.ts +62 -8
  87. package/dist/services/async-optimizer.d.ts.map +1 -1
  88. package/dist/services/async-optimizer.js +137 -8
  89. package/dist/services/async-optimizer.js.map +1 -1
  90. package/dist/services/batch-scheduler.d.ts +6 -0
  91. package/dist/services/batch-scheduler.d.ts.map +1 -1
  92. package/dist/services/batch-scheduler.js +59 -19
  93. package/dist/services/batch-scheduler.js.map +1 -1
  94. package/dist/services/cache-service.d.ts +32 -0
  95. package/dist/services/cache-service.d.ts.map +1 -1
  96. package/dist/services/cache-service.js +81 -6
  97. package/dist/services/cache-service.js.map +1 -1
  98. package/dist/services/database-optimizer.js +63 -63
  99. package/dist/services/database-optimizer.js.map +1 -1
  100. package/dist/services/embedding-migration-service.d.ts +24 -0
  101. package/dist/services/embedding-migration-service.d.ts.map +1 -0
  102. package/dist/services/embedding-migration-service.js +360 -0
  103. package/dist/services/embedding-migration-service.js.map +1 -0
  104. package/dist/services/embedding-provider-factory.d.ts +12 -5
  105. package/dist/services/embedding-provider-factory.d.ts.map +1 -1
  106. package/dist/services/embedding-provider-factory.js +107 -26
  107. package/dist/services/embedding-provider-factory.js.map +1 -1
  108. package/dist/services/forgetting-policy-service.js +17 -17
  109. package/dist/services/gemini-embedding-service.d.ts +1 -1
  110. package/dist/services/gemini-embedding-service.d.ts.map +1 -1
  111. package/dist/services/gemini-embedding-service.js +25 -18
  112. package/dist/services/gemini-embedding-service.js.map +1 -1
  113. package/dist/services/memory-embedding-service.d.ts +8 -0
  114. package/dist/services/memory-embedding-service.d.ts.map +1 -1
  115. package/dist/services/memory-embedding-service.js +180 -71
  116. package/dist/services/memory-embedding-service.js.map +1 -1
  117. package/dist/services/migration-history-service.d.ts +14 -0
  118. package/dist/services/migration-history-service.d.ts.map +1 -0
  119. package/dist/services/migration-history-service.js +270 -0
  120. package/dist/services/migration-history-service.js.map +1 -0
  121. package/dist/services/migration-monitor-service.d.ts +24 -0
  122. package/dist/services/migration-monitor-service.d.ts.map +1 -0
  123. package/dist/services/migration-monitor-service.js +93 -0
  124. package/dist/services/migration-monitor-service.js.map +1 -0
  125. package/dist/services/model-availability-service.d.ts +22 -0
  126. package/dist/services/model-availability-service.d.ts.map +1 -0
  127. package/dist/services/model-availability-service.js +140 -0
  128. package/dist/services/model-availability-service.js.map +1 -0
  129. package/dist/services/openai-embedding-service.d.ts +36 -0
  130. package/dist/services/openai-embedding-service.d.ts.map +1 -0
  131. package/dist/services/openai-embedding-service.js +192 -0
  132. package/dist/services/openai-embedding-service.js.map +1 -0
  133. package/dist/services/performance-monitor.d.ts +154 -10
  134. package/dist/services/performance-monitor.d.ts.map +1 -1
  135. package/dist/services/performance-monitor.js +446 -60
  136. package/dist/services/performance-monitor.js.map +1 -1
  137. package/dist/services/spaced-repetition/interval-calculation.service.d.ts +38 -0
  138. package/dist/services/spaced-repetition/interval-calculation.service.d.ts.map +1 -0
  139. package/dist/services/spaced-repetition/interval-calculation.service.js +105 -0
  140. package/dist/services/spaced-repetition/interval-calculation.service.js.map +1 -0
  141. package/dist/services/spaced-repetition/optimal-interval.service.d.ts +56 -0
  142. package/dist/services/spaced-repetition/optimal-interval.service.d.ts.map +1 -0
  143. package/dist/services/spaced-repetition/optimal-interval.service.js +163 -0
  144. package/dist/services/spaced-repetition/optimal-interval.service.js.map +1 -0
  145. package/dist/services/spaced-repetition/performance-analysis.service.d.ts +48 -0
  146. package/dist/services/spaced-repetition/performance-analysis.service.d.ts.map +1 -0
  147. package/dist/services/spaced-repetition/performance-analysis.service.js +174 -0
  148. package/dist/services/spaced-repetition/performance-analysis.service.js.map +1 -0
  149. package/dist/services/spaced-repetition/priority-calculation.service.d.ts +53 -0
  150. package/dist/services/spaced-repetition/priority-calculation.service.d.ts.map +1 -0
  151. package/dist/services/spaced-repetition/priority-calculation.service.js +161 -0
  152. package/dist/services/spaced-repetition/priority-calculation.service.js.map +1 -0
  153. package/dist/services/spaced-repetition/recall-probability.service.d.ts +36 -0
  154. package/dist/services/spaced-repetition/recall-probability.service.d.ts.map +1 -0
  155. package/dist/services/spaced-repetition/recall-probability.service.js +88 -0
  156. package/dist/services/spaced-repetition/recall-probability.service.js.map +1 -0
  157. package/dist/services/spaced-repetition/review-scheduling.service.d.ts +43 -0
  158. package/dist/services/spaced-repetition/review-scheduling.service.d.ts.map +1 -0
  159. package/dist/services/spaced-repetition/review-scheduling.service.js +130 -0
  160. package/dist/services/spaced-repetition/review-scheduling.service.js.map +1 -0
  161. package/dist/services/spaced-repetition/spaced-repetition-container.d.ts +69 -0
  162. package/dist/services/spaced-repetition/spaced-repetition-container.d.ts.map +1 -0
  163. package/dist/services/spaced-repetition/spaced-repetition-container.js +136 -0
  164. package/dist/services/spaced-repetition/spaced-repetition-container.js.map +1 -0
  165. package/dist/services/unified-embedding-service.d.ts +3 -0
  166. package/dist/services/unified-embedding-service.d.ts.map +1 -1
  167. package/dist/services/unified-embedding-service.js +58 -62
  168. package/dist/services/unified-embedding-service.js.map +1 -1
  169. package/dist/services/vector-compatibility-service.d.ts +68 -0
  170. package/dist/services/vector-compatibility-service.d.ts.map +1 -0
  171. package/dist/services/vector-compatibility-service.js +373 -0
  172. package/dist/services/vector-compatibility-service.js.map +1 -0
  173. package/dist/services/vector-search/vector-index-manager.d.ts +27 -0
  174. package/dist/services/vector-search/vector-index-manager.d.ts.map +1 -0
  175. package/dist/services/vector-search/vector-index-manager.js +66 -0
  176. package/dist/services/vector-search/vector-index-manager.js.map +1 -0
  177. package/dist/services/vector-search/vector-performance-tester.d.ts +30 -0
  178. package/dist/services/vector-search/vector-performance-tester.d.ts.map +1 -0
  179. package/dist/services/vector-search/vector-performance-tester.js +87 -0
  180. package/dist/services/vector-search/vector-performance-tester.js.map +1 -0
  181. package/dist/services/vector-search/vector-search-container.d.ts +41 -0
  182. package/dist/services/vector-search/vector-search-container.d.ts.map +1 -0
  183. package/dist/services/vector-search/vector-search-container.js +74 -0
  184. package/dist/services/vector-search/vector-search-container.js.map +1 -0
  185. package/dist/services/vector-search/vector-search-facade.d.ts +63 -0
  186. package/dist/services/vector-search/vector-search-facade.d.ts.map +1 -0
  187. package/dist/services/vector-search/vector-search-facade.js +91 -0
  188. package/dist/services/vector-search/vector-search-facade.js.map +1 -0
  189. package/dist/services/vector-search/vector-search-result-normalizer.d.ts +6 -0
  190. package/dist/services/vector-search/vector-search-result-normalizer.d.ts.map +1 -0
  191. package/dist/services/vector-search/vector-search-result-normalizer.js +65 -0
  192. package/dist/services/vector-search/vector-search-result-normalizer.js.map +1 -0
  193. package/dist/services/vector-search/vector-search.service.d.ts +33 -0
  194. package/dist/services/vector-search/vector-search.service.d.ts.map +1 -0
  195. package/dist/services/vector-search/vector-search.service.js +149 -0
  196. package/dist/services/vector-search/vector-search.service.js.map +1 -0
  197. package/dist/tools/forget-tool.js +14 -14
  198. package/dist/tools/pin-tool.js +14 -14
  199. package/dist/tools/unpin-tool.js +21 -21
  200. package/dist/types/alerts.types.d.ts +26 -0
  201. package/dist/types/alerts.types.d.ts.map +1 -0
  202. package/dist/types/alerts.types.js +2 -0
  203. package/dist/types/alerts.types.js.map +1 -0
  204. package/dist/types/embedding-provider-monitoring.types.d.ts +24 -0
  205. package/dist/types/embedding-provider-monitoring.types.d.ts.map +1 -0
  206. package/dist/types/embedding-provider-monitoring.types.js +2 -0
  207. package/dist/types/embedding-provider-monitoring.types.js.map +1 -0
  208. package/dist/types/embedding.types.d.ts +36 -1
  209. package/dist/types/embedding.types.d.ts.map +1 -1
  210. package/dist/types/migration.types.d.ts +131 -0
  211. package/dist/types/migration.types.d.ts.map +1 -0
  212. package/dist/types/migration.types.js +6 -0
  213. package/dist/types/migration.types.js.map +1 -0
  214. package/dist/types/spaced-repetition.types.d.ts +61 -0
  215. package/dist/types/spaced-repetition.types.d.ts.map +1 -0
  216. package/dist/types/spaced-repetition.types.js +6 -0
  217. package/dist/types/spaced-repetition.types.js.map +1 -0
  218. package/dist/types/vector-search.types.d.ts +96 -0
  219. package/dist/types/vector-search.types.d.ts.map +1 -0
  220. package/dist/types/vector-search.types.js +2 -0
  221. package/dist/types/vector-search.types.js.map +1 -0
  222. package/dist/utils/configuration-validator.d.ts +23 -0
  223. package/dist/utils/configuration-validator.d.ts.map +1 -0
  224. package/dist/utils/configuration-validator.js +102 -0
  225. package/dist/utils/configuration-validator.js.map +1 -0
  226. package/dist/utils/database.d.ts.map +1 -1
  227. package/dist/utils/database.js +101 -95
  228. package/dist/utils/database.js.map +1 -1
  229. package/dist/utils/environment-check.d.ts +8 -0
  230. package/dist/utils/environment-check.d.ts.map +1 -0
  231. package/dist/utils/environment-check.js +25 -0
  232. package/dist/utils/environment-check.js.map +1 -0
  233. package/dist/utils/logger.d.ts +8 -0
  234. package/dist/utils/logger.d.ts.map +1 -0
  235. package/dist/utils/logger.js +33 -0
  236. package/dist/utils/logger.js.map +1 -0
  237. package/package.json +139 -125
  238. package/scripts/auto-setup.js +233 -233
  239. package/scripts/backup-daily.bat +28 -28
  240. package/scripts/backup-embeddings.js +108 -108
  241. package/scripts/check-db-integrity.js +93 -93
  242. package/scripts/debug-embeddings.js +184 -184
  243. package/scripts/direct-sql-migration.sql +36 -36
  244. package/scripts/docker-migration.sh +105 -105
  245. package/scripts/fix-migration.js +93 -93
  246. package/scripts/fix-vector-dimensions.js +206 -206
  247. package/scripts/migrate-embedding-data.js +307 -307
  248. package/scripts/regenerate-embeddings.js +144 -144
  249. package/scripts/restore-legacy.ps1 +60 -60
  250. package/scripts/run-migration.js +122 -122
  251. package/scripts/safe-migration.js +150 -150
  252. package/scripts/simple-migrate.js +41 -41
  253. package/scripts/simple-update.js +123 -123
  254. package/src/database/schema.sql +234 -159
  255. package/.cursor/rules/cache-management.mdc +0 -171
  256. package/.cursor/rules/database-schema.mdc +0 -344
  257. package/.cursor/rules/deployment.mdc +0 -596
  258. package/.cursor/rules/error-logging.mdc +0 -298
  259. package/.cursor/rules/forgetting-algorithms.mdc +0 -426
  260. package/.cursor/rules/http-server.mdc +0 -432
  261. package/.cursor/rules/hybrid-search.mdc +0 -424
  262. package/.cursor/rules/implementation.mdc +0 -369
  263. package/.cursor/rules/lightweight-embedding.mdc +0 -178
  264. package/.cursor/rules/mcp-client-development.mdc +0 -0
  265. package/.cursor/rules/mcp-server-development.mdc +0 -0
  266. package/.cursor/rules/mcp-tools-architecture.mdc +0 -205
  267. package/.cursor/rules/memento-memory-rule.mdc +0 -8
  268. package/.cursor/rules/memento-project-overview.mdc +0 -0
  269. package/.cursor/rules/memory-algorithms.mdc +0 -502
  270. package/.cursor/rules/monitoring.mdc +0 -622
  271. package/.cursor/rules/performance-alerts.mdc +0 -537
  272. package/.cursor/rules/performance-monitoring.mdc +0 -345
  273. package/.cursor/rules/performance-optimization.mdc +0 -563
  274. package/.cursor/rules/project-structure.mdc +0 -310
  275. package/.cursor/rules/testing.mdc +0 -473
  276. package/.dockerignore +0 -15
  277. package/.eslintrc.json +0 -34
  278. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -51
  279. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -45
  280. package/.github/ISSUE_TEMPLATE/question.md +0 -31
  281. package/.github/PULL_REQUEST_TEMPLATE.md +0 -97
  282. package/AGENTS.md +0 -28
  283. package/CHANGELOG.md +0 -416
  284. package/CODE_OF_CONDUCT.md +0 -62
  285. package/CONTRIBUTING.md +0 -165
  286. package/DOCKER_SETUP_GUIDE.md +0 -84
  287. package/Dockerfile +0 -90
  288. package/backup/legacy-removal-20250930-201816/http-server-legacy.ts +0 -1068
  289. package/backup/legacy-removal-20250930-201816/rollback-to-legacy.ps1 +0 -46
  290. package/backup/legacy-removal-20250930-201816/rollback-to-legacy.sh +0 -48
  291. package/dist/server/index-backup.d.ts +0 -5
  292. package/dist/server/index-backup.d.ts.map +0 -1
  293. package/dist/server/index-backup.js +0 -793
  294. package/dist/server/index-backup.js.map +0 -1
  295. package/dist/server/index-refactored.d.ts +0 -6
  296. package/dist/server/index-refactored.d.ts.map +0 -1
  297. package/dist/server/index-refactored.js +0 -206
  298. package/dist/server/index-refactored.js.map +0 -1
  299. package/dist/services/performance-monitoring-integration.d.ts +0 -77
  300. package/dist/services/performance-monitoring-integration.d.ts.map +0 -1
  301. package/dist/services/performance-monitoring-integration.js +0 -177
  302. package/dist/services/performance-monitoring-integration.js.map +0 -1
  303. package/dist/test/debug-http-v2.d.ts +0 -5
  304. package/dist/test/debug-http-v2.d.ts.map +0 -1
  305. package/dist/test/debug-http-v2.js +0 -28
  306. package/dist/test/debug-http-v2.js.map +0 -1
  307. package/dist/test/performance-benchmark.d.ts +0 -57
  308. package/dist/test/performance-benchmark.d.ts.map +0 -1
  309. package/dist/test/performance-benchmark.js +0 -427
  310. package/dist/test/performance-benchmark.js.map +0 -1
  311. package/dist/test/test-alerts-direct.d.ts +0 -7
  312. package/dist/test/test-alerts-direct.d.ts.map +0 -1
  313. package/dist/test/test-alerts-direct.js +0 -101
  314. package/dist/test/test-alerts-direct.js.map +0 -1
  315. package/dist/test/test-batch-scheduler.d.ts +0 -2
  316. package/dist/test/test-batch-scheduler.d.ts.map +0 -1
  317. package/dist/test/test-batch-scheduler.js +0 -156
  318. package/dist/test/test-batch-scheduler.js.map +0 -1
  319. package/dist/test/test-client.d.ts +0 -5
  320. package/dist/test/test-client.d.ts.map +0 -1
  321. package/dist/test/test-client.js +0 -86
  322. package/dist/test/test-client.js.map +0 -1
  323. package/dist/test/test-embedding.d.ts +0 -6
  324. package/dist/test/test-embedding.d.ts.map +0 -1
  325. package/dist/test/test-embedding.js +0 -142
  326. package/dist/test/test-embedding.js.map +0 -1
  327. package/dist/test/test-error-logging.d.ts +0 -7
  328. package/dist/test/test-error-logging.d.ts.map +0 -1
  329. package/dist/test/test-error-logging.js +0 -105
  330. package/dist/test/test-error-logging.js.map +0 -1
  331. package/dist/test/test-forgetting.d.ts +0 -6
  332. package/dist/test/test-forgetting.d.ts.map +0 -1
  333. package/dist/test/test-forgetting.js +0 -154
  334. package/dist/test/test-forgetting.js.map +0 -1
  335. package/dist/test/test-gemini-embedding.d.ts +0 -7
  336. package/dist/test/test-gemini-embedding.d.ts.map +0 -1
  337. package/dist/test/test-gemini-embedding.js +0 -134
  338. package/dist/test/test-gemini-embedding.js.map +0 -1
  339. package/dist/test/test-http-server-v2-simple.d.ts +0 -6
  340. package/dist/test/test-http-server-v2-simple.d.ts.map +0 -1
  341. package/dist/test/test-http-server-v2-simple.js +0 -131
  342. package/dist/test/test-http-server-v2-simple.js.map +0 -1
  343. package/dist/test/test-http-server-v2.d.ts +0 -7
  344. package/dist/test/test-http-server-v2.d.ts.map +0 -1
  345. package/dist/test/test-http-server-v2.js +0 -529
  346. package/dist/test/test-http-server-v2.js.map +0 -1
  347. package/dist/test/test-lightweight-embedding.d.ts +0 -6
  348. package/dist/test/test-lightweight-embedding.d.ts.map +0 -1
  349. package/dist/test/test-lightweight-embedding.js +0 -189
  350. package/dist/test/test-lightweight-embedding.js.map +0 -1
  351. package/dist/test/test-m1-completion.d.ts +0 -7
  352. package/dist/test/test-m1-completion.d.ts.map +0 -1
  353. package/dist/test/test-m1-completion.js +0 -124
  354. package/dist/test/test-m1-completion.js.map +0 -1
  355. package/dist/test/test-memory-injection-prompt.d.ts +0 -2
  356. package/dist/test/test-memory-injection-prompt.d.ts.map +0 -1
  357. package/dist/test/test-memory-injection-prompt.js +0 -299
  358. package/dist/test/test-memory-injection-prompt.js.map +0 -1
  359. package/dist/test/test-performance-alerts.d.ts +0 -7
  360. package/dist/test/test-performance-alerts.d.ts.map +0 -1
  361. package/dist/test/test-performance-alerts.js +0 -109
  362. package/dist/test/test-performance-alerts.js.map +0 -1
  363. package/dist/test/test-performance-monitor.d.ts +0 -2
  364. package/dist/test/test-performance-monitor.d.ts.map +0 -1
  365. package/dist/test/test-performance-monitor.js +0 -182
  366. package/dist/test/test-performance-monitor.js.map +0 -1
  367. package/dist/test/test-performance-monitoring.d.ts +0 -6
  368. package/dist/test/test-performance-monitoring.d.ts.map +0 -1
  369. package/dist/test/test-performance-monitoring.js +0 -156
  370. package/dist/test/test-performance-monitoring.js.map +0 -1
  371. package/dist/test/test-search.d.ts +0 -5
  372. package/dist/test/test-search.d.ts.map +0 -1
  373. package/dist/test/test-search.js +0 -141
  374. package/dist/test/test-search.js.map +0 -1
  375. package/dist/test/test-simple-alerts.d.ts +0 -6
  376. package/dist/test/test-simple-alerts.d.ts.map +0 -1
  377. package/dist/test/test-simple-alerts.js +0 -106
  378. package/dist/test/test-simple-alerts.js.map +0 -1
  379. package/dist/test/test-vector-search-engine.d.ts +0 -2
  380. package/dist/test/test-vector-search-engine.d.ts.map +0 -1
  381. package/dist/test/test-vector-search-engine.js +0 -225
  382. package/dist/test/test-vector-search-engine.js.map +0 -1
  383. package/docker-compose.dev.yml +0 -50
  384. package/docker-compose.prod.yml +0 -77
  385. package/docker-compose.yml +0 -43
  386. package/docs/en/Memento-Goals.md +0 -217
  387. package/docs/en/Memento-M1-DetailSpecs.md +0 -130
  388. package/docs/en/Memento-Milestones.md +0 -135
  389. package/docs/en/Search-Ranking-Memory-Decay-Formulas.md +0 -177
  390. package/docs/en/api-reference.md +0 -658
  391. package/docs/en/architecture.md +0 -1302
  392. package/docs/en/developer-guide.md +0 -1005
  393. package/docs/en/user-manual.md +0 -595
  394. package/docs/ko/Memento-Goals.md +0 -217
  395. package/docs/ko/Memento-M1-DetailSpecs.md +0 -130
  396. package/docs/ko/Memento-Milestones.md +0 -134
  397. package/docs/ko/Search-Ranking-Memory-Decay-Formulas.md +0 -177
  398. package/docs/ko/api-reference.md +0 -658
  399. package/docs/ko/architecture.md +0 -1302
  400. package/docs/ko/developer-guide.md +0 -1006
  401. package/docs/ko/embedding-api-reference.md +0 -122
  402. package/docs/ko/embedding-configuration.md +0 -62
  403. package/docs/ko/embedding-performance-benchmark.md +0 -62
  404. package/docs/ko/embedding-service-guide.md +0 -314
  405. package/docs/ko/user-manual.md +0 -595
  406. package/env.example +0 -49
  407. package/install.sh +0 -191
  408. package/mcp-http-client.js +0 -218
  409. package/mcp.json +0 -0
  410. package/packages/mcp-client/docs/API-REFERENCE.md +0 -560
  411. package/packages/mcp-client/docs/BEST-PRACTICES.md +0 -564
  412. package/packages/mcp-client/docs/MIGRATION-GUIDE.md +0 -344
  413. package/packages/mcp-client/docs/PERFORMANCE-GUIDE.md +0 -476
  414. package/packages/mcp-client/docs/TROUBLESHOOTING.md +0 -564
  415. package/packages/mcp-client/package-lock.json +0 -907
  416. package/packages/mcp-client/package.json +0 -58
  417. package/packages/mcp-client/performance-optimizer.js +0 -428
  418. package/packages/mcp-client/test-basic.js +0 -65
  419. package/packages/mcp-client/test-integration.js +0 -366
  420. package/src/algorithms/forgetting-algorithm.spec.ts +0 -538
  421. package/src/algorithms/forgetting-algorithm.ts +0 -243
  422. package/src/algorithms/hybrid-search-engine.spec.ts +0 -484
  423. package/src/algorithms/hybrid-search-engine.ts +0 -489
  424. package/src/algorithms/search-engine.spec.ts +0 -429
  425. package/src/algorithms/search-engine.ts +0 -392
  426. package/src/algorithms/search-ranking.spec.ts +0 -293
  427. package/src/algorithms/search-ranking.ts +0 -407
  428. package/src/algorithms/spaced-repetition.spec.ts +0 -510
  429. package/src/algorithms/spaced-repetition.ts +0 -238
  430. package/src/algorithms/vector-search-engine.ts +0 -505
  431. package/src/client/index.spec.ts +0 -427
  432. package/src/client/index.ts +0 -222
  433. package/src/config/index.spec.ts +0 -339
  434. package/src/config/index.ts +0 -106
  435. package/src/database/init.spec.ts +0 -239
  436. package/src/database/init.ts +0 -130
  437. package/src/database/migrate.spec.ts +0 -293
  438. package/src/database/migrate.ts +0 -94
  439. package/src/database/migrations/001_add_embedding_metadata.sql +0 -29
  440. package/src/npm-client/context-injector.spec.ts +0 -335
  441. package/src/npm-client/context-injector.ts +0 -412
  442. package/src/npm-client/index.spec.ts +0 -108
  443. package/src/npm-client/index.ts +0 -96
  444. package/src/npm-client/memento-client.spec.ts +0 -549
  445. package/src/npm-client/memento-client.ts +0 -501
  446. package/src/npm-client/memory-manager.spec.ts +0 -374
  447. package/src/npm-client/memory-manager.ts +0 -414
  448. package/src/npm-client/types.spec.ts +0 -427
  449. package/src/npm-client/types.ts +0 -296
  450. package/src/npm-client/utils.spec.ts +0 -355
  451. package/src/npm-client/utils.ts +0 -423
  452. package/src/scripts/copy-assets.js +0 -37
  453. package/src/server/http-server.spec.ts +0 -648
  454. package/src/server/http-server.ts +0 -1030
  455. package/src/server/index-backup.ts +0 -875
  456. package/src/server/index-refactored.ts +0 -237
  457. package/src/server/index.spec.ts +0 -281
  458. package/src/server/index.ts +0 -347
  459. package/src/server/simple-mcp-server.spec.ts +0 -207
  460. package/src/server/simple-mcp-server.ts +0 -173
  461. package/src/services/async-optimizer.spec.ts +0 -569
  462. package/src/services/async-optimizer.ts +0 -484
  463. package/src/services/batch-scheduler.ts +0 -759
  464. package/src/services/cache-service.spec.ts +0 -372
  465. package/src/services/cache-service.ts +0 -434
  466. package/src/services/database-optimizer.spec.ts +0 -344
  467. package/src/services/database-optimizer.ts +0 -450
  468. package/src/services/embedding-provider-factory.ts +0 -173
  469. package/src/services/embedding-service.spec.ts +0 -342
  470. package/src/services/embedding-service.ts +0 -333
  471. package/src/services/error-logging-service.spec.ts +0 -416
  472. package/src/services/error-logging-service.ts +0 -383
  473. package/src/services/forgetting-policy-service.spec.ts +0 -140
  474. package/src/services/forgetting-policy-service.ts +0 -334
  475. package/src/services/gemini-embedding-service.spec.ts +0 -463
  476. package/src/services/gemini-embedding-service.ts +0 -283
  477. package/src/services/lightweight-embedding-service.spec.ts +0 -458
  478. package/src/services/lightweight-embedding-service.ts +0 -324
  479. package/src/services/memory-embedding-service.spec.ts +0 -417
  480. package/src/services/memory-embedding-service.ts +0 -289
  481. package/src/services/minilm-embedding-service.spec.ts +0 -104
  482. package/src/services/minilm-embedding-service.ts +0 -262
  483. package/src/services/performance-alert-service.spec.ts +0 -517
  484. package/src/services/performance-alert-service.ts +0 -477
  485. package/src/services/performance-monitor.spec.ts +0 -401
  486. package/src/services/performance-monitor.ts +0 -532
  487. package/src/services/performance-monitoring-integration.spec.ts +0 -478
  488. package/src/services/performance-monitoring-integration.ts.bak +0 -276
  489. package/src/services/unified-embedding-service.spec.ts +0 -224
  490. package/src/services/unified-embedding-service.ts +0 -255
  491. package/src/test/debug-http-v2.ts +0 -30
  492. package/src/test/embedding-integration-test.spec.ts +0 -295
  493. package/src/test/embedding-integration-test.ts +0 -295
  494. package/src/test/embedding-performance-benchmark.spec.ts +0 -354
  495. package/src/test/embedding-performance-benchmark.ts +0 -312
  496. package/src/test/performance-benchmark.ts +0 -565
  497. package/src/test/test-alerts-direct.ts +0 -136
  498. package/src/test/test-batch-scheduler-simple.spec.ts +0 -122
  499. package/src/test/test-batch-scheduler.spec.ts +0 -453
  500. package/src/test/test-batch-scheduler.ts +0 -182
  501. package/src/test/test-client.ts +0 -97
  502. package/src/test/test-embedding.ts +0 -153
  503. package/src/test/test-error-handling.spec.ts +0 -575
  504. package/src/test/test-error-logging.ts +0 -117
  505. package/src/test/test-forgetting.ts +0 -162
  506. package/src/test/test-gemini-embedding.ts +0 -159
  507. package/src/test/test-http-server-v2-simple.ts +0 -147
  508. package/src/test/test-http-server-v2.ts +0 -586
  509. package/src/test/test-hybrid-search-engine.spec.ts +0 -521
  510. package/src/test/test-integration-fixed.spec.ts +0 -612
  511. package/src/test/test-integration.spec.ts +0 -463
  512. package/src/test/test-lightweight-embedding.ts +0 -208
  513. package/src/test/test-m1-completion.spec.ts +0 -614
  514. package/src/test/test-m1-completion.ts +0 -141
  515. package/src/test/test-m1-integration.spec.ts +0 -514
  516. package/src/test/test-memory-injection-prompt.spec.ts +0 -650
  517. package/src/test/test-memory-injection-prompt.ts +0 -391
  518. package/src/test/test-performance-alerts.ts +0 -125
  519. package/src/test/test-performance-monitor-updates.spec.ts +0 -490
  520. package/src/test/test-performance-monitor.spec.ts +0 -284
  521. package/src/test/test-performance-monitor.ts +0 -228
  522. package/src/test/test-performance-monitoring.ts +0 -171
  523. package/src/test/test-search.ts +0 -151
  524. package/src/test/test-simple-alerts.ts +0 -136
  525. package/src/test/test-vector-search-engine.spec.ts +0 -408
  526. package/src/test/test-vector-search-engine.ts +0 -303
  527. package/src/tools/base-tool.ts +0 -189
  528. package/src/tools/cleanup-memory-tool.ts +0 -77
  529. package/src/tools/database-optimize-tool.ts +0 -79
  530. package/src/tools/error-stats.ts +0 -119
  531. package/src/tools/forget-tool.spec.ts +0 -613
  532. package/src/tools/forget-tool.ts +0 -454
  533. package/src/tools/forgetting-stats-tool.ts +0 -47
  534. package/src/tools/index.ts +0 -71
  535. package/src/tools/memory-injection-prompt.ts +0 -257
  536. package/src/tools/performance-alerts.ts +0 -226
  537. package/src/tools/performance-stats-tool.ts +0 -48
  538. package/src/tools/pin-tool.spec.ts +0 -497
  539. package/src/tools/pin-tool.ts +0 -277
  540. package/src/tools/recall-tool.spec.ts +0 -475
  541. package/src/tools/recall-tool.ts +0 -389
  542. package/src/tools/remember-tool.spec.ts +0 -469
  543. package/src/tools/remember-tool.ts +0 -112
  544. package/src/tools/resolve-error.ts +0 -69
  545. package/src/tools/tool-registry.ts +0 -417
  546. package/src/tools/types.ts +0 -63
  547. package/src/tools/unpin-tool.spec.ts +0 -549
  548. package/src/tools/unpin-tool.ts +0 -306
  549. package/src/types/embedding.types.ts +0 -78
  550. package/src/types/index.spec.ts +0 -420
  551. package/src/types/index.ts +0 -117
  552. package/src/utils/database.spec.ts +0 -77
  553. package/src/utils/database.ts +0 -458
  554. package/src/utils/stopwords.ts +0 -128
  555. package/start-docker-setup.bat +0 -38
  556. package/static/logo.png +0 -0
  557. package/static/memento_logo.svg +0 -2
  558. package/test-docker.js +0 -103
  559. package/tsconfig.json +0 -46
  560. package/vitest.config.ts +0 -23
package/README.en.md CHANGED
@@ -1,330 +1,331 @@
1
- # Memento MCP Server
2
-
3
- <div align="center">
4
- <img src="static/logo.png" alt="Memento Logo" width="200" height="200">
5
-
6
- [๐Ÿ‡ฐ๐Ÿ‡ท ํ•œ๊ตญ์–ด](README.md) | [๐Ÿ‡บ๐Ÿ‡ธ English](README.en.md)
7
- </div>
8
-
9
- AI Agent Memory Assistant MCP Server - Storage+Search+Summary+Forgetting mechanisms modeled after human memory structure
10
-
11
- ## ๐ŸŽฏ Project Overview
12
-
13
- Memento MCP Server is a Model Context Protocol (MCP) server that helps AI Agents store and manage long-term memory. It simulates human memory structure (working memory, episodic memory, semantic memory, procedural memory) to provide an efficient memory management system.
14
-
15
- ## โœจ Key Features
16
-
17
- ### ๐Ÿง  Core Memory Management (MCP Client)
18
- - **Memory Storage**: Store 4 types of memories (working, episodic, semantic, procedural)
19
- - **Memory Search**: Hybrid search (text + vector)
20
- - **Memory Pinning**: Pin/unpin important memories
21
- - **Memory Deletion**: Soft/hard deletion
22
-
23
- ### ๐Ÿ” Advanced Search
24
- - **FTS5 Text Search**: SQLite's Full-Text Search
25
- - **Vector Search**: OpenAI embedding-based semantic search
26
- - **Hybrid Search**: Combination of text and vector search
27
- - **Lightweight Embedding**: TF-IDF + keyword matching based fallback solution
28
- - **Tag-based Filtering**: Metadata-based search
29
-
30
- ### ๐Ÿงน Forgetting Policy
31
- - **Forgetting Algorithm**: Forgetting score calculation based on recency, usage, duplication ratio
32
- - **Spaced Repetition**: Review scheduling based on importance and usage
33
- - **TTL Management**: Type-specific lifespan management
34
- - **Auto Cleanup**: Automated soft/hard deletion
35
-
36
- ### ๐Ÿ“Š Performance Monitoring (HTTP Management API)
37
- - **Real-time Metrics**: Database, search, memory performance monitoring
38
- - **Real-time Alerts**: Automatic performance checks every 30 seconds with threshold-based alerts
39
- - **Error Logging**: Structured error logging and statistics collection
40
- - **Database Optimization**: Automatic index recommendation and creation
41
- - **Cache System**: LRU + TTL based caching
42
- - **Async Processing**: Worker pool based parallel processing
43
-
44
- ## ๐Ÿš€ Quick Start
45
-
46
- ### ๐Ÿฅ‡ **One-click Installation (Recommended)**
47
- ```bash
48
- # Run automatic installation script
49
- curl -sSL https://raw.githubusercontent.com/jee1/memento/main/install.sh | bash
50
- ```
51
-
52
- ### ๐Ÿฅˆ **npx Method (For Developers)**
53
- ```bash
54
- # Run immediately (without installation)
55
- npx memento-mcp-server@latest dev
56
-
57
- # Auto setup then run
58
- npx memento-mcp-server@latest setup
59
- npx memento-mcp-server@latest start
60
- ```
61
-
62
- ### ๐Ÿฅ‰ **Docker Method (For Production)**
63
- ```bash
64
- # Development environment
65
- docker-compose -f docker-compose.dev.yml up -d
66
-
67
- # Production environment
68
- docker-compose -f docker-compose.prod.yml up -d
69
- ```
70
-
71
- ### ๐Ÿ› ๏ธ **Source Code Method (For Developers)**
72
- ```bash
73
- # Clone repository
74
- git clone https://github.com/jee1/memento.git
75
- cd memento
76
-
77
- # One-click installation and run
78
- npm run quick-start
79
- ```
80
-
81
- ### ๐Ÿ“š **Detailed Installation Guide**
82
- For detailed installation methods, see [INSTALL.en.md](INSTALL.en.md).
83
-
84
- ## ๐Ÿ› ๏ธ Usage
85
-
86
- ### MCP Client Connection
87
-
88
- ```typescript
89
- import { Client } from "@modelcontextprotocol/sdk/client/index.js";
90
-
91
- const client = new Client({
92
- name: "memento-client",
93
- version: "0.1.0"
94
- }, {
95
- capabilities: {
96
- tools: {},
97
- resources: {},
98
- prompts: {}
99
- }
100
- });
101
-
102
- // stdio connection
103
- await client.connect({
104
- command: "node",
105
- args: ["dist/server/index.js"]
106
- });
107
-
108
- // WebSocket connection
109
- await client.connect({
110
- transport: {
111
- type: "websocket",
112
- url: "ws://localhost:8080/mcp"
113
- }
114
- });
115
- ```
116
-
117
- ### Memory Storage
118
-
119
- ```typescript
120
- // Store memory
121
- const result = await client.callTool({
122
- name: "remember",
123
- arguments: {
124
- content: "I learned about React Hooks. useState manages state and useEffect handles side effects.",
125
- type: "episodic",
126
- tags: ["react", "hooks", "javascript"],
127
- importance: 0.8
128
- }
129
- });
130
- ```
131
-
132
- ### Memory Search
133
-
134
- ```typescript
135
- // Search memory
136
- const results = await client.callTool({
137
- name: "recall",
138
- arguments: {
139
- query: "React Hook",
140
- filters: {
141
- type: ["episodic", "semantic"],
142
- tags: ["react"]
143
- },
144
- limit: 10
145
- }
146
- });
147
- ```
148
-
149
- ## ๐Ÿ“‹ API Documentation
150
-
151
- ### MCP Tools (Core 5 Only)
152
-
153
- > **Important**: MCP client only exposes 5 core memory management functions.
154
- > Management functions are separated into HTTP API endpoints.
155
-
156
- | Tool | Description | Parameters |
157
- |------|-------------|------------|
158
- | `remember` | Store memory | content, type, tags, importance, source, privacy_scope |
159
- | `recall` | Search memory | query, filters, limit |
160
- | `pin` | Pin memory | memory_id |
161
- | `unpin` | Unpin memory | memory_id |
162
- | `forget` | Delete memory | memory_id, hard |
163
-
164
- ### HTTP Management API
165
-
166
- | Endpoint | Description | Method |
167
- |----------|-------------|--------|
168
- | `/admin/memory/cleanup` | Memory cleanup | POST |
169
- | `/admin/stats/forgetting` | Forgetting statistics | GET |
170
- | `/admin/stats/performance` | Performance statistics | GET |
171
- | `/admin/stats/errors` | Error statistics | GET |
172
- | `/admin/errors/resolve` | Resolve errors | POST |
173
- | `/admin/alerts/performance` | Performance alerts | GET |
174
- | `/admin/database/optimize` | Database optimization | POST |
175
-
176
- ### Resources
177
-
178
- | Resource | Description |
179
- |----------|-------------|
180
- | `memory/{id}` | Single memory detail |
181
- | `memory/search?query=...` | Search result cache |
182
-
183
- ## ๐Ÿ”ง Configuration
184
-
185
- ### Environment Variables
186
-
187
- | Variable | Default | Description |
188
- |----------|---------|-------------|
189
- | `NODE_ENV` | development | Runtime environment |
190
- | `PORT` | 8080 | Server port |
191
- | `DB_PATH` | ./data/memory.db | Database path |
192
- | `LOG_LEVEL` | info | Log level |
193
- | `OPENAI_API_KEY` | - | OpenAI API key (optional) |
194
-
195
- ### Forgetting Policy Configuration
196
-
197
- ```bash
198
- # Forgetting thresholds
199
- FORGET_THRESHOLD=0.6
200
- SOFT_DELETE_THRESHOLD=0.6
201
- HARD_DELETE_THRESHOLD=0.8
202
-
203
- # TTL settings (in days)
204
- TTL_SOFT_WORKING=2
205
- TTL_SOFT_EPISODIC=30
206
- TTL_SOFT_SEMANTIC=180
207
- TTL_SOFT_PROCEDURAL=90
208
- ```
209
-
210
- ## ๐Ÿงช Testing
211
-
212
- ```bash
213
- # Run all tests (Vitest)
214
- npm run test
215
-
216
- # Run individual tests
217
- npm run test:client # Client tests
218
- npm run test:search # Search functionality tests
219
- npm run test:embedding # Embedding functionality tests
220
- npm run test:lightweight-embedding # Lightweight embedding tests
221
- npm run test:forgetting # Forgetting policy tests
222
- npm run test:performance # Performance benchmarks
223
- npm run test:monitoring # Performance monitoring tests
224
- npm run test:error-logging # Error logging tests
225
- npm run test:performance-alerts # Performance alert tests
226
-
227
- # Test watch mode
228
- npm run test -- --watch
229
-
230
- # Tests with coverage
231
- npm run test -- --coverage
232
- ```
233
-
234
- ## ๐Ÿ“š Developer Guidelines
235
-
236
- ### Repository Guidelines (`AGENTS.md`)
237
- - **Project Structure**: Module organization under `src/`
238
- - **Build/Test Commands**: `npm run dev`, `npm run build`, `npm run test`, etc.
239
- - **Coding Style**: Node.js โ‰ฅ 20, TypeScript ES modules, 2-space indentation
240
- - **Testing Guidelines**: Vitest based, `src/test/` or `*.spec.ts` files
241
- - **Commit/PR Guidelines**: Conventional Commits, Korean context included
242
- - **Environment/Database**: `.env` configuration, `data/` folder management
243
-
244
- ## ๐Ÿ“Š Performance Metrics
245
-
246
- ### Basic Performance
247
- - **Database Performance**: Average query time 0.16-0.22ms
248
- - **Search Performance**: 0.78-4.24ms (improved with cache effects)
249
- - **Memory Usage**: 11-15MB heap usage
250
- - **Concurrent Connections**: Supports up to 1000 connections
251
-
252
- ### Advanced Performance Optimization
253
- - **Cache Hit Rate**: 80%+ (search result caching)
254
- - **Embedding Caching**: 24-hour TTL for cost savings
255
- - **Async Processing**: Worker pool based parallel processing
256
- - **Database Optimization**: Automatic index recommendation and creation
257
- - **Real-time Monitoring**: Automatic performance checks every 30 seconds
258
- - **Error Logging**: Structured error tracking and statistics
259
- - **Performance Alerts**: Threshold-based automatic alert system
260
-
261
- ### Lightweight Embedding Performance
262
- - **TF-IDF Vectorization**: Fixed 512-dimensional vector generation
263
- - **Multilingual Support**: Korean/English stopword removal
264
- - **Local Processing**: Works without OpenAI API
265
- - **Cosine Similarity**: Fast vector search
266
-
267
- ## ๐Ÿ—๏ธ Architecture
268
-
269
- ### M1: Personal Use (Current Implementation)
270
- - **Storage**: better-sqlite3 embedded
271
- - **Index**: FTS5 + sqlite-vss
272
- - **Authentication**: None (local only)
273
- - **Operation**: Local execution
274
- - **MCP Client**: Only exposes 5 core tools
275
- - **Management Functions**: Separated into HTTP API
276
- - **Additional Features**: Lightweight embedding, performance monitoring, cache system
277
-
278
- ### M2: Team Collaboration (Planned)
279
- - **Storage**: SQLite server mode
280
- - **Authentication**: API Key
281
- - **Operation**: Docker single container
282
-
283
- ### M3: Organization Entry (Planned)
284
- - **Storage**: PostgreSQL + pgvector
285
- - **Authentication**: JWT
286
- - **Operation**: Docker Compose
287
-
288
- ## ๐Ÿค Contributing
289
-
290
- 1. Fork the Project
291
- 2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
292
- 3. Commit your Changes (`git commit -m 'feat: add some AmazingFeature'`)
293
- 4. Push to the Branch (`git push origin feature/AmazingFeature`)
294
- 5. Open a Pull Request
295
-
296
- ### Development Environment Setup
297
- ```bash
298
- # Fork and clone repository
299
- git clone https://github.com/your-username/memento.git
300
- cd memento
301
-
302
- # Install dependencies
303
- npm install
304
-
305
- # Start development server
306
- npm run dev
307
-
308
- # Run tests
309
- npm run test
310
- ```
311
-
312
- ## ๐Ÿ“„ License
313
-
314
- This project is distributed under the MIT License. See the `LICENSE` file for details.
315
-
316
- ## ๐Ÿ“ž Support
317
-
318
- - Issue Reports: [GitHub Issues](https://github.com/jee1/memento/issues)
319
- - Documentation: [Wiki](https://github.com/jee1/memento/wiki)
320
- - Developer Guide: [docs/en/developer-guide.md](docs/en/developer-guide.md)
321
- - API Reference: [docs/en/api-reference.md](docs/en/api-reference.md)
322
-
323
- ## ๐Ÿ™ Acknowledgments
324
-
325
- - [Model Context Protocol](https://modelcontextprotocol.io/) - MCP Protocol
326
- - [OpenAI](https://openai.com/) - Embedding Service
327
- - [better-sqlite3](https://github.com/WiseLibs/better-sqlite3) - High-performance SQLite driver
328
- - [Express](https://expressjs.com/) - Web framework
329
- - [Vitest](https://vitest.dev/) - Testing framework
330
- - [TypeScript](https://www.typescriptlang.org/) - Development language
1
+ # Memento MCP Server
2
+
3
+ <div align="center">
4
+ <img src="static/logo.png" alt="Memento Logo" width="200" height="200">
5
+
6
+ [๐Ÿ‡ฐ๐Ÿ‡ท ํ•œ๊ตญ์–ด](README.md) | [๐Ÿ‡บ๐Ÿ‡ธ English](README.en.md)
7
+ </div>
8
+
9
+ AI Agent Memory Assistant MCP Server - Storage+Search+Summary+Forgetting mechanisms modeled after human memory structure
10
+
11
+ ## ๐ŸŽฏ Project Overview
12
+
13
+ Memento MCP Server is a Model Context Protocol (MCP) server that helps AI Agents store and manage long-term memory. It simulates human memory structure (working memory, episodic memory, semantic memory, procedural memory) to provide an efficient memory management system.
14
+
15
+ ## โœจ Key Features
16
+
17
+ ### ๐Ÿง  Core Memory Management (MCP Client)
18
+ - **Memory Storage**: Store 4 types of memories (working, episodic, semantic, procedural)
19
+ - **Memory Search**: Hybrid search (text + vector)
20
+ - **Memory Pinning**: Pin/unpin important memories
21
+ - **Memory Deletion**: Soft/hard deletion
22
+
23
+ ### ๐Ÿ” Advanced Search
24
+ - **FTS5 Text Search**: SQLite's Full-Text Search
25
+ - **Vector Search**: OpenAI embedding-based semantic search (falls back to lightweight embeddings when unavailable)
26
+ - **Hybrid Search**: Combination of text and vector search
27
+ - **Multi-provider Support**: TF-IDF, MiniLM, OpenAI, Gemini with automatic selection
28
+ - **Lightweight Embedding**: TF-IDF + keyword matching fallback solution
29
+ - **Tag-based Filtering**: Metadata-based search
30
+
31
+ ### ๐Ÿงน Forgetting Policy
32
+ - **Forgetting Algorithm**: Forgetting score calculation based on recency, usage, duplication ratio
33
+ - **Spaced Repetition**: Review scheduling based on importance and usage
34
+ - **TTL Management**: Type-specific lifespan management
35
+ - **Auto Cleanup**: Automated soft/hard deletion
36
+
37
+ ### ๐Ÿ“Š Performance Monitoring (HTTP Management API)
38
+ - **Real-time Metrics**: Database, search, memory performance monitoring
39
+ - **Real-time Alerts**: Automatic performance checks every 30 seconds with threshold-based alerts
40
+ - **Error Logging**: Structured error logging and statistics collection
41
+ - **Database Optimization**: Automatic index recommendation and creation
42
+ - **Cache System**: LRU + TTL based caching
43
+ - **Async Processing**: Worker pool based parallel processing
44
+
45
+ ## ๐Ÿš€ Quick Start
46
+
47
+ ### ๐Ÿฅ‡ **One-click Installation (Recommended)**
48
+ ```bash
49
+ # Run automatic installation script
50
+ curl -sSL https://raw.githubusercontent.com/jee1/memento/main/install.sh | bash
51
+ ```
52
+
53
+ ### ๐Ÿฅˆ **npx Method (For Developers)**
54
+ ```bash
55
+ # Run immediately (without installation)
56
+ npx memento-mcp-server@latest dev
57
+
58
+ # Auto setup then run
59
+ npx memento-mcp-server@latest setup
60
+ npx memento-mcp-server@latest start
61
+ ```
62
+
63
+ ### ๐Ÿฅ‰ **Docker Method (For Production)**
64
+ ```bash
65
+ # Development environment
66
+ docker-compose -f docker-compose.dev.yml up -d
67
+
68
+ # Production environment
69
+ docker-compose -f docker-compose.prod.yml up -d
70
+ ```
71
+
72
+ ### ๐Ÿ› ๏ธ **Source Code Method (For Developers)**
73
+ ```bash
74
+ # Clone repository
75
+ git clone https://github.com/jee1/memento.git
76
+ cd memento
77
+
78
+ # One-click installation and run
79
+ npm run quick-start
80
+ ```
81
+
82
+ ### ๐Ÿ“š **Detailed Installation Guide**
83
+ For detailed installation methods, see [INSTALL.en.md](INSTALL.en.md).
84
+
85
+ ## ๐Ÿ› ๏ธ Usage
86
+
87
+ ### MCP Client Connection
88
+
89
+ ```typescript
90
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
91
+
92
+ const client = new Client({
93
+ name: "memento-client",
94
+ version: "0.1.0"
95
+ }, {
96
+ capabilities: {
97
+ tools: {},
98
+ resources: {},
99
+ prompts: {}
100
+ }
101
+ });
102
+
103
+ // stdio connection
104
+ await client.connect({
105
+ command: "node",
106
+ args: ["dist/server/index.js"]
107
+ });
108
+
109
+ // WebSocket connection
110
+ await client.connect({
111
+ transport: {
112
+ type: "websocket",
113
+ url: "ws://localhost:8080/mcp"
114
+ }
115
+ });
116
+ ```
117
+
118
+ ### Memory Storage
119
+
120
+ ```typescript
121
+ // Store memory
122
+ const result = await client.callTool({
123
+ name: "remember",
124
+ arguments: {
125
+ content: "I learned about React Hooks. useState manages state and useEffect handles side effects.",
126
+ type: "episodic",
127
+ tags: ["react", "hooks", "javascript"],
128
+ importance: 0.8
129
+ }
130
+ });
131
+ ```
132
+
133
+ ### Memory Search
134
+
135
+ ```typescript
136
+ // Search memory
137
+ const results = await client.callTool({
138
+ name: "recall",
139
+ arguments: {
140
+ query: "React Hook",
141
+ filters: {
142
+ type: ["episodic", "semantic"],
143
+ tags: ["react"]
144
+ },
145
+ limit: 10
146
+ }
147
+ });
148
+ ```
149
+
150
+ ## ๐Ÿ“‹ API Documentation
151
+
152
+ ### MCP Tools (Core 5 Only)
153
+
154
+ > **Important**: MCP client only exposes 5 core memory management functions.
155
+ > Management functions are separated into HTTP API endpoints.
156
+
157
+ | Tool | Description | Parameters |
158
+ |------|-------------|------------|
159
+ | `remember` | Store memory | content, type, tags, importance, source, privacy_scope |
160
+ | `recall` | Search memory | query, filters, limit |
161
+ | `pin` | Pin memory | memory_id |
162
+ | `unpin` | Unpin memory | memory_id |
163
+ | `forget` | Delete memory | memory_id, hard |
164
+
165
+ ### HTTP Management API
166
+
167
+ | Endpoint | Description | Method |
168
+ |----------|-------------|--------|
169
+ | `/admin/memory/cleanup` | Memory cleanup | POST |
170
+ | `/admin/stats/forgetting` | Forgetting statistics | GET |
171
+ | `/admin/stats/performance` | Performance statistics | GET |
172
+ | `/admin/stats/errors` | Error statistics | GET |
173
+ | `/admin/errors/resolve` | Resolve errors | POST |
174
+ | `/admin/alerts/performance` | Performance alerts | GET |
175
+ | `/admin/database/optimize` | Database optimization | POST |
176
+
177
+ ### Resources
178
+
179
+ | Resource | Description |
180
+ |----------|-------------|
181
+ | `memory/{id}` | Single memory detail |
182
+ | `memory/search?query=...` | Search result cache |
183
+
184
+ ## ๐Ÿ”ง Configuration
185
+
186
+ ### Environment Variables
187
+
188
+ | Variable | Default | Description |
189
+ |----------|---------|-------------|
190
+ | `NODE_ENV` | development | Runtime environment |
191
+ | `PORT` | 8080 | Server port |
192
+ | `DB_PATH` | ./data/memory.db | Database path |
193
+ | `LOG_LEVEL` | info | Log level |
194
+ | `OPENAI_API_KEY` | - | OpenAI API key (optional) |
195
+
196
+ ### Forgetting Policy Configuration
197
+
198
+ ```bash
199
+ # Forgetting thresholds
200
+ FORGET_THRESHOLD=0.6
201
+ SOFT_DELETE_THRESHOLD=0.6
202
+ HARD_DELETE_THRESHOLD=0.8
203
+
204
+ # TTL settings (in days)
205
+ TTL_SOFT_WORKING=2
206
+ TTL_SOFT_EPISODIC=30
207
+ TTL_SOFT_SEMANTIC=180
208
+ TTL_SOFT_PROCEDURAL=90
209
+ ```
210
+
211
+ ## ๐Ÿงช Testing
212
+
213
+ ```bash
214
+ # Run all tests (Vitest)
215
+ npm run test
216
+
217
+ # Run individual tests
218
+ npm run test:client # Client tests
219
+ npm run test:search # Search functionality tests
220
+ npm run test:embedding # Embedding functionality tests
221
+ npm run test:lightweight-embedding # Lightweight embedding tests
222
+ npm run test:forgetting # Forgetting policy tests
223
+ npm run test:performance # Performance benchmarks
224
+ npm run test:monitoring # Performance monitoring tests
225
+ npm run test:error-logging # Error logging tests
226
+ npm run test:performance-alerts # Performance alert tests
227
+
228
+ # Test watch mode
229
+ npm run test -- --watch
230
+
231
+ # Tests with coverage
232
+ npm run test -- --coverage
233
+ ```
234
+
235
+ ## ๐Ÿ“š Developer Guidelines
236
+
237
+ ### Repository Guidelines (`AGENTS.md`)
238
+ - **Project Structure**: Module organization under `src/`
239
+ - **Build/Test Commands**: `npm run dev`, `npm run build`, `npm run test`, etc.
240
+ - **Coding Style**: Node.js โ‰ฅ 20, TypeScript ES modules, 2-space indentation
241
+ - **Testing Guidelines**: Vitest based, `src/test/` or `*.spec.ts` files
242
+ - **Commit/PR Guidelines**: Conventional Commits, Korean context included
243
+ - **Environment/Database**: `.env` configuration, `data/` folder management
244
+
245
+ ## ๐Ÿ“Š Performance Metrics
246
+
247
+ ### Basic Performance
248
+ - **Database Performance**: Average query time 0.16-0.22ms
249
+ - **Search Performance**: 0.78-4.24ms (improved with cache effects)
250
+ - **Memory Usage**: 11-15MB heap usage
251
+ - **Concurrent Connections**: Supports up to 1000 connections
252
+
253
+ ### Advanced Performance Optimization
254
+ - **Cache Hit Rate**: 80%+ (search result caching)
255
+ - **Embedding Caching**: 24-hour TTL for cost savings
256
+ - **Async Processing**: Worker pool based parallel processing
257
+ - **Database Optimization**: Automatic index recommendation and creation
258
+ - **Real-time Monitoring**: Automatic performance checks every 30 seconds
259
+ - **Error Logging**: Structured error tracking and statistics
260
+ - **Performance Alerts**: Threshold-based automatic alert system
261
+
262
+ ### Lightweight Embedding Performance
263
+ - **TF-IDF Vectorization**: Fixed 512-dimensional vector generation
264
+ - **Multilingual Support**: Korean/English stopword removal
265
+ - **Local Processing**: Works without OpenAI API
266
+ - **Cosine Similarity**: Fast vector search
267
+
268
+ ## ๐Ÿ—๏ธ Architecture
269
+
270
+ ### M1: Personal Use (Current Implementation)
271
+ - **Storage**: better-sqlite3 embedded
272
+ - **Index**: FTS5 + sqlite-vss
273
+ - **Authentication**: None (local only)
274
+ - **Operation**: Local execution
275
+ - **MCP Client**: Only exposes 5 core tools
276
+ - **Management Functions**: Separated into HTTP API
277
+ - **Additional Features**: Lightweight embedding, performance monitoring, cache system
278
+
279
+ ### M2: Team Collaboration (Planned)
280
+ - **Storage**: SQLite server mode
281
+ - **Authentication**: API Key
282
+ - **Operation**: Docker single container
283
+
284
+ ### M3: Organization Entry (Planned)
285
+ - **Storage**: PostgreSQL + pgvector
286
+ - **Authentication**: JWT
287
+ - **Operation**: Docker Compose
288
+
289
+ ## ๐Ÿค Contributing
290
+
291
+ 1. Fork the Project
292
+ 2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
293
+ 3. Commit your Changes (`git commit -m 'feat: add some AmazingFeature'`)
294
+ 4. Push to the Branch (`git push origin feature/AmazingFeature`)
295
+ 5. Open a Pull Request
296
+
297
+ ### Development Environment Setup
298
+ ```bash
299
+ # Fork and clone repository
300
+ git clone https://github.com/your-username/memento.git
301
+ cd memento
302
+
303
+ # Install dependencies
304
+ npm install
305
+
306
+ # Start development server
307
+ npm run dev
308
+
309
+ # Run tests
310
+ npm run test
311
+ ```
312
+
313
+ ## ๐Ÿ“„ License
314
+
315
+ This project is distributed under the MIT License. See the `LICENSE` file for details.
316
+
317
+ ## ๐Ÿ“ž Support
318
+
319
+ - Issue Reports: [GitHub Issues](https://github.com/jee1/memento/issues)
320
+ - Documentation: [Wiki](https://github.com/jee1/memento/wiki)
321
+ - Developer Guide: [docs/en/developer-guide.md](docs/en/developer-guide.md)
322
+ - API Reference: [docs/en/api-reference.md](docs/en/api-reference.md)
323
+
324
+ ## ๐Ÿ™ Acknowledgments
325
+
326
+ - [Model Context Protocol](https://modelcontextprotocol.io/) - MCP Protocol
327
+ - [OpenAI](https://openai.com/) - Embedding Service
328
+ - [better-sqlite3](https://github.com/WiseLibs/better-sqlite3) - High-performance SQLite driver
329
+ - [Express](https://expressjs.com/) - Web framework
330
+ - [Vitest](https://vitest.dev/) - Testing framework
331
+ - [TypeScript](https://www.typescriptlang.org/) - Development language