memory-journal-mcp 3.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 (107) hide show
  1. package/.dockerignore +88 -0
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +76 -0
  3. package/.github/ISSUE_TEMPLATE/config.yml +11 -0
  4. package/.github/ISSUE_TEMPLATE/feature_request.md +89 -0
  5. package/.github/ISSUE_TEMPLATE/question.md +63 -0
  6. package/.github/dependabot.yml +110 -0
  7. package/.github/pull_request_template.md +110 -0
  8. package/.github/workflows/DOCKER_DEPLOYMENT_SETUP.md +346 -0
  9. package/.github/workflows/codeql.yml +45 -0
  10. package/.github/workflows/dependabot-auto-merge.yml +42 -0
  11. package/.github/workflows/docker-publish.yml +277 -0
  12. package/.github/workflows/lint-and-test.yml +58 -0
  13. package/.github/workflows/publish-npm.yml +75 -0
  14. package/.github/workflows/secrets-scanning.yml +32 -0
  15. package/.github/workflows/security-update.yml +99 -0
  16. package/.memory-journal-team.db +0 -0
  17. package/.trivyignore +18 -0
  18. package/CHANGELOG.md +19 -0
  19. package/CODE_OF_CONDUCT.md +128 -0
  20. package/CONTRIBUTING.md +209 -0
  21. package/DOCKER_README.md +377 -0
  22. package/Dockerfile +64 -0
  23. package/LICENSE +21 -0
  24. package/README.md +461 -0
  25. package/SECURITY.md +200 -0
  26. package/VERSION +1 -0
  27. package/dist/cli.d.ts +5 -0
  28. package/dist/cli.d.ts.map +1 -0
  29. package/dist/cli.js +42 -0
  30. package/dist/cli.js.map +1 -0
  31. package/dist/constants/ServerInstructions.d.ts +8 -0
  32. package/dist/constants/ServerInstructions.d.ts.map +1 -0
  33. package/dist/constants/ServerInstructions.js +26 -0
  34. package/dist/constants/ServerInstructions.js.map +1 -0
  35. package/dist/database/SqliteAdapter.d.ts +198 -0
  36. package/dist/database/SqliteAdapter.d.ts.map +1 -0
  37. package/dist/database/SqliteAdapter.js +736 -0
  38. package/dist/database/SqliteAdapter.js.map +1 -0
  39. package/dist/filtering/ToolFilter.d.ts +63 -0
  40. package/dist/filtering/ToolFilter.d.ts.map +1 -0
  41. package/dist/filtering/ToolFilter.js +242 -0
  42. package/dist/filtering/ToolFilter.js.map +1 -0
  43. package/dist/github/GitHubIntegration.d.ts +91 -0
  44. package/dist/github/GitHubIntegration.d.ts.map +1 -0
  45. package/dist/github/GitHubIntegration.js +317 -0
  46. package/dist/github/GitHubIntegration.js.map +1 -0
  47. package/dist/handlers/prompts/index.d.ts +28 -0
  48. package/dist/handlers/prompts/index.d.ts.map +1 -0
  49. package/dist/handlers/prompts/index.js +366 -0
  50. package/dist/handlers/prompts/index.js.map +1 -0
  51. package/dist/handlers/resources/index.d.ts +27 -0
  52. package/dist/handlers/resources/index.d.ts.map +1 -0
  53. package/dist/handlers/resources/index.js +453 -0
  54. package/dist/handlers/resources/index.js.map +1 -0
  55. package/dist/handlers/tools/index.d.ts +26 -0
  56. package/dist/handlers/tools/index.d.ts.map +1 -0
  57. package/dist/handlers/tools/index.js +982 -0
  58. package/dist/handlers/tools/index.js.map +1 -0
  59. package/dist/index.d.ts +11 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +13 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/server/McpServer.d.ts +18 -0
  64. package/dist/server/McpServer.d.ts.map +1 -0
  65. package/dist/server/McpServer.js +171 -0
  66. package/dist/server/McpServer.js.map +1 -0
  67. package/dist/types/index.d.ts +300 -0
  68. package/dist/types/index.d.ts.map +1 -0
  69. package/dist/types/index.js +15 -0
  70. package/dist/types/index.js.map +1 -0
  71. package/dist/utils/McpLogger.d.ts +61 -0
  72. package/dist/utils/McpLogger.d.ts.map +1 -0
  73. package/dist/utils/McpLogger.js +113 -0
  74. package/dist/utils/McpLogger.js.map +1 -0
  75. package/dist/utils/logger.d.ts +30 -0
  76. package/dist/utils/logger.d.ts.map +1 -0
  77. package/dist/utils/logger.js +70 -0
  78. package/dist/utils/logger.js.map +1 -0
  79. package/dist/vector/VectorSearchManager.d.ts +63 -0
  80. package/dist/vector/VectorSearchManager.d.ts.map +1 -0
  81. package/dist/vector/VectorSearchManager.js +235 -0
  82. package/dist/vector/VectorSearchManager.js.map +1 -0
  83. package/docker-compose.yml +37 -0
  84. package/eslint.config.js +86 -0
  85. package/mcp-config-example.json +21 -0
  86. package/package.json +71 -0
  87. package/releases/release-notes-v2.2.0.md +165 -0
  88. package/releases/release-notes.md +214 -0
  89. package/releases/v3.0.0.md +236 -0
  90. package/server.json +42 -0
  91. package/src/cli.ts +52 -0
  92. package/src/constants/ServerInstructions.ts +25 -0
  93. package/src/database/SqliteAdapter.ts +952 -0
  94. package/src/filtering/ToolFilter.ts +271 -0
  95. package/src/github/GitHubIntegration.ts +409 -0
  96. package/src/handlers/prompts/index.ts +420 -0
  97. package/src/handlers/resources/index.ts +529 -0
  98. package/src/handlers/tools/index.ts +1081 -0
  99. package/src/index.ts +53 -0
  100. package/src/server/McpServer.ts +230 -0
  101. package/src/types/index.ts +435 -0
  102. package/src/types/sql.js.d.ts +34 -0
  103. package/src/utils/McpLogger.ts +155 -0
  104. package/src/utils/logger.ts +98 -0
  105. package/src/vector/VectorSearchManager.ts +277 -0
  106. package/tools.json +300 -0
  107. package/tsconfig.json +51 -0
package/tools.json ADDED
@@ -0,0 +1,300 @@
1
+ [
2
+ {
3
+ "name": "create_entry",
4
+ "description": "Create a new journal entry with optional context, tags, and significance classification",
5
+ "arguments": [
6
+ {
7
+ "name": "content",
8
+ "type": "string",
9
+ "desc": "The journal entry content (required)"
10
+ },
11
+ {
12
+ "name": "entry_type",
13
+ "type": "string",
14
+ "desc": "Type of entry (personal_reflection, technical_achievement, milestone, etc.)"
15
+ },
16
+ {
17
+ "name": "is_personal",
18
+ "type": "boolean",
19
+ "desc": "Whether this is a personal vs project entry"
20
+ },
21
+ {
22
+ "name": "tags",
23
+ "type": "array",
24
+ "desc": "Array of tags to associate with the entry"
25
+ },
26
+ {
27
+ "name": "significance_type",
28
+ "type": "string",
29
+ "desc": "Mark entry significance (technical_breakthrough, milestone, etc.)"
30
+ },
31
+ {
32
+ "name": "auto_context",
33
+ "type": "boolean",
34
+ "desc": "Automatically capture Git/GitHub context"
35
+ }
36
+ ]
37
+ },
38
+ {
39
+ "name": "update_entry",
40
+ "description": "Update an existing journal entry (content, type, tags, or personal flag)",
41
+ "arguments": [
42
+ {
43
+ "name": "entry_id",
44
+ "type": "number",
45
+ "desc": "ID of the entry to update (required)"
46
+ },
47
+ {
48
+ "name": "content",
49
+ "type": "string",
50
+ "desc": "New content for the entry"
51
+ },
52
+ {
53
+ "name": "entry_type",
54
+ "type": "string",
55
+ "desc": "Update entry type"
56
+ },
57
+ {
58
+ "name": "tags",
59
+ "type": "array",
60
+ "desc": "Replace tags with new list"
61
+ },
62
+ {
63
+ "name": "is_personal",
64
+ "type": "boolean",
65
+ "desc": "Update personal flag"
66
+ }
67
+ ]
68
+ },
69
+ {
70
+ "name": "delete_entry",
71
+ "description": "Delete a journal entry (soft delete by default, or permanent deletion)",
72
+ "arguments": [
73
+ {
74
+ "name": "entry_id",
75
+ "type": "number",
76
+ "desc": "ID of the entry to delete (required)"
77
+ },
78
+ {
79
+ "name": "permanent",
80
+ "type": "boolean",
81
+ "desc": "Permanently delete (true) or soft delete (false, default)"
82
+ }
83
+ ]
84
+ },
85
+ {
86
+ "name": "get_entry_by_id",
87
+ "description": "Get a specific journal entry by ID with full details including tags, significance, and relationships",
88
+ "arguments": [
89
+ {
90
+ "name": "entry_id",
91
+ "type": "number",
92
+ "desc": "ID of the entry to retrieve (required)"
93
+ },
94
+ {
95
+ "name": "include_relationships",
96
+ "type": "boolean",
97
+ "desc": "Include related entries (default: true)"
98
+ }
99
+ ]
100
+ },
101
+ {
102
+ "name": "search_entries",
103
+ "description": "Search journal entries using full-text search with highlighting",
104
+ "arguments": [
105
+ {
106
+ "name": "query",
107
+ "type": "string",
108
+ "desc": "Search terms to find in entries"
109
+ },
110
+ {
111
+ "name": "limit",
112
+ "type": "number",
113
+ "desc": "Maximum number of results to return"
114
+ },
115
+ {
116
+ "name": "is_personal",
117
+ "type": "boolean",
118
+ "desc": "Filter by personal vs project entries"
119
+ }
120
+ ]
121
+ },
122
+ {
123
+ "name": "search_by_date_range",
124
+ "description": "Search journal entries within a specific date range with optional filters",
125
+ "arguments": [
126
+ {
127
+ "name": "start_date",
128
+ "type": "string",
129
+ "desc": "Start date in YYYY-MM-DD format (required)"
130
+ },
131
+ {
132
+ "name": "end_date",
133
+ "type": "string",
134
+ "desc": "End date in YYYY-MM-DD format (required)"
135
+ },
136
+ {
137
+ "name": "is_personal",
138
+ "type": "boolean",
139
+ "desc": "Filter by personal vs project entries"
140
+ },
141
+ {
142
+ "name": "entry_type",
143
+ "type": "string",
144
+ "desc": "Filter by specific entry type"
145
+ },
146
+ {
147
+ "name": "tags",
148
+ "type": "array",
149
+ "desc": "Filter by specific tags"
150
+ }
151
+ ]
152
+ },
153
+ {
154
+ "name": "semantic_search",
155
+ "description": "Vector similarity search using sentence transformers and FAISS (requires ML dependencies)",
156
+ "arguments": [
157
+ {
158
+ "name": "query",
159
+ "type": "string",
160
+ "desc": "Search query for semantic similarity matching (required)"
161
+ },
162
+ {
163
+ "name": "limit",
164
+ "type": "number",
165
+ "desc": "Maximum number of results to return (default: 10)"
166
+ },
167
+ {
168
+ "name": "similarity_threshold",
169
+ "type": "number",
170
+ "desc": "Minimum similarity score 0.0-1.0 (default: 0.3)"
171
+ },
172
+ {
173
+ "name": "is_personal",
174
+ "type": "boolean",
175
+ "desc": "Filter by personal vs project entries"
176
+ }
177
+ ]
178
+ },
179
+ {
180
+ "name": "get_recent_entries",
181
+ "description": "Retrieve the most recent journal entries",
182
+ "arguments": [
183
+ {
184
+ "name": "limit",
185
+ "type": "number",
186
+ "desc": "Number of recent entries to retrieve (default: 5)"
187
+ },
188
+ {
189
+ "name": "is_personal",
190
+ "type": "boolean",
191
+ "desc": "Filter by personal vs project entries"
192
+ }
193
+ ]
194
+ },
195
+ {
196
+ "name": "link_entries",
197
+ "description": "Create a typed relationship between two journal entries",
198
+ "arguments": [
199
+ {
200
+ "name": "from_entry_id",
201
+ "type": "number",
202
+ "desc": "Source entry ID (required)"
203
+ },
204
+ {
205
+ "name": "to_entry_id",
206
+ "type": "number",
207
+ "desc": "Target entry ID (required)"
208
+ },
209
+ {
210
+ "name": "relationship_type",
211
+ "type": "string",
212
+ "desc": "Type: evolves_from, references, implements, clarifies, response_to (default: references)"
213
+ },
214
+ {
215
+ "name": "description",
216
+ "type": "string",
217
+ "desc": "Optional description of the relationship"
218
+ }
219
+ ]
220
+ },
221
+ {
222
+ "name": "get_statistics",
223
+ "description": "Get journal statistics and analytics including entry counts, tags, and activity patterns",
224
+ "arguments": [
225
+ {
226
+ "name": "start_date",
227
+ "type": "string",
228
+ "desc": "Optional start date (YYYY-MM-DD)"
229
+ },
230
+ {
231
+ "name": "end_date",
232
+ "type": "string",
233
+ "desc": "Optional end date (YYYY-MM-DD)"
234
+ },
235
+ {
236
+ "name": "group_by",
237
+ "type": "string",
238
+ "desc": "Group by period: day, week, or month (default: week)"
239
+ }
240
+ ]
241
+ },
242
+ {
243
+ "name": "export_entries",
244
+ "description": "Export journal entries to JSON or Markdown format with optional filtering",
245
+ "arguments": [
246
+ {
247
+ "name": "format",
248
+ "type": "string",
249
+ "desc": "Export format: json or markdown (default: json)"
250
+ },
251
+ {
252
+ "name": "start_date",
253
+ "type": "string",
254
+ "desc": "Optional start date (YYYY-MM-DD)"
255
+ },
256
+ {
257
+ "name": "end_date",
258
+ "type": "string",
259
+ "desc": "Optional end date (YYYY-MM-DD)"
260
+ },
261
+ {
262
+ "name": "tags",
263
+ "type": "array",
264
+ "desc": "Filter by specific tags"
265
+ },
266
+ {
267
+ "name": "entry_types",
268
+ "type": "array",
269
+ "desc": "Filter by specific entry types"
270
+ }
271
+ ]
272
+ },
273
+ {
274
+ "name": "list_tags",
275
+ "description": "List all tags with usage statistics",
276
+ "arguments": []
277
+ },
278
+ {
279
+ "name": "test_simple",
280
+ "description": "Simple connectivity test for debugging",
281
+ "arguments": [
282
+ {
283
+ "name": "message",
284
+ "type": "string",
285
+ "desc": "Test message to echo back"
286
+ }
287
+ ]
288
+ },
289
+ {
290
+ "name": "create_entry_minimal",
291
+ "description": "Minimal entry creation for debugging purposes (no context or tags)",
292
+ "arguments": [
293
+ {
294
+ "name": "content",
295
+ "type": "string",
296
+ "desc": "The journal entry content (required)"
297
+ }
298
+ ]
299
+ }
300
+ ]
package/tsconfig.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "lib": [
7
+ "ES2022"
8
+ ],
9
+ "outDir": "./dist",
10
+ "rootDir": "./src",
11
+ "skipLibCheck": true,
12
+ /* Strict Type-Checking Options */
13
+ "strict": true,
14
+ "noImplicitAny": true,
15
+ "strictNullChecks": true,
16
+ "strictFunctionTypes": true,
17
+ "strictBindCallApply": true,
18
+ "strictPropertyInitialization": true,
19
+ "noImplicitThis": true,
20
+ "useUnknownInCatchVariables": true,
21
+ "alwaysStrict": true,
22
+ "exactOptionalPropertyTypes": false,
23
+ /* Additional Checks */
24
+ "noUnusedLocals": true,
25
+ "noUnusedParameters": true,
26
+ "noImplicitReturns": true,
27
+ "noFallthroughCasesInSwitch": true,
28
+ "noUncheckedIndexedAccess": true,
29
+ "noImplicitOverride": true,
30
+ "noPropertyAccessFromIndexSignature": true,
31
+ "allowUnusedLabels": false,
32
+ "allowUnreachableCode": false,
33
+ "noUncheckedSideEffectImports": true,
34
+ /* Module Resolution */
35
+ "forceConsistentCasingInFileNames": true,
36
+ "resolveJsonModule": true,
37
+ "esModuleInterop": true,
38
+ "declaration": true,
39
+ "declarationMap": true,
40
+ "sourceMap": true
41
+ },
42
+ "include": [
43
+ "src/**/*"
44
+ ],
45
+ "exclude": [
46
+ "node_modules",
47
+ "dist",
48
+ "**/*.test.ts",
49
+ "**/*.spec.ts"
50
+ ]
51
+ }