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
@@ -1,10 +1,14 @@
1
1
  /**
2
2
  * Server instructions for Memory Journal MCP.
3
3
  *
4
+ * ⚠️ AUTO-GENERATED — DO NOT EDIT THIS FILE DIRECTLY
5
+ * Edit src/constants/server-instructions.md instead,
6
+ * then run: npm run generate:instructions
7
+ *
4
8
  * These instructions are automatically sent to MCP clients during initialization,
5
9
  * providing guidance for AI agents on tool usage.
6
10
  *
7
- * Unreleased: Optimized for token efficiency with tiered instruction levels.
11
+ * Optimized for token efficiency with tiered instruction levels.
8
12
  */
9
13
 
10
14
  import type { ToolGroup } from '../types/index.js'
@@ -52,23 +56,48 @@ export type InstructionLevel = 'essential' | 'standard' | 'full'
52
56
  const ESSENTIAL_INSTRUCTIONS = `# memory-journal-mcp
53
57
 
54
58
  ## Session Start
59
+
55
60
  1. Read \`memory://briefing\` for project context
61
+ - In Cursor, use \`FetchMcpResource(server: "user-memory-journal-mcp", uri: "memory://briefing")\`
56
62
  2. **Show the \`userMessage\` to the user** (it contains a formatted summary of project context)
57
63
  3. Proceed with the user's request
58
64
 
59
65
  ## Behaviors
66
+
60
67
  - **Create entries for**: implementations, decisions, bug fixes, milestones, user requests to "remember"
61
68
  - **Search before**: major decisions, referencing prior work, understanding project context
62
69
  - **Link entries**: implementation→spec, bugfix→issue, followup→prior work
63
70
 
71
+ ## Session End
72
+
73
+ When a conversation or task is wrapping up (user says "thanks," final deliverable complete, no more work planned):
74
+
75
+ 1. Create a journal entry summarizing the session:
76
+ - **What was accomplished** (key changes, decisions, files modified)
77
+ - **What's unfinished or blocked** (pending items, open questions)
78
+ - **Context for next session** (relevant entry IDs, branch names, PR numbers)
79
+ 2. Use \`entry_type: "retrospective"\` and tag with \`session-summary\`
80
+ 3. This is opt-out — ALWAYS create the entry, even for short/trivial sessions, unless the user explicitly says to skip it
81
+
82
+ > If your client has hooks configured for session-end journaling (e.g., Cursor \`sessionEnd\` hook), this is handled automatically. Otherwise, follow the steps above.
83
+
84
+ ## Rule & Skill Suggestions
85
+
86
+ When you notice the user consistently applies patterns, preferences, or workflows that could be codified:
87
+
88
+ - **Offer to create a rule or skill** — always ask the user first, never create silently
89
+ - Examples: coding conventions, testing patterns, deployment steps, project-specific commands
90
+ - Frame it as: "I noticed you always [pattern]. Would you like me to save this as a rule/skill so future agents follow it automatically?"
91
+
64
92
  ## Quick Access
65
- | Purpose | Action |
66
- |---------|--------|
67
- | Session context | \`memory://briefing\` |
68
- | Recent entries | \`memory://recent\` |
69
- | Health/time | \`memory://health\` |
70
- | Semantic search | \`semantic_search(query)\` |
71
- | Full context | \`get-context-bundle\` prompt |
93
+
94
+ | Purpose | Action |
95
+ | --------------- | --------------------------- |
96
+ | Session context | \`memory://briefing\` |
97
+ | Recent entries | \`memory://recent\` |
98
+ | Health/time | \`memory://health\` |
99
+ | Semantic search | \`semantic_search(query)\` |
100
+ | Full context | \`get-context-bundle\` prompt |
72
101
  `
73
102
 
74
103
  /**
@@ -76,6 +105,7 @@ const ESSENTIAL_INSTRUCTIONS = `# memory-journal-mcp
76
105
  */
77
106
  const GITHUB_INSTRUCTIONS = `
78
107
  ## GitHub Integration
108
+
79
109
  - Include \`issue_number\`/\`pr_number\` in \`create_entry\` to auto-link
80
110
  - After closing issue/merging PR → create summary entry with learnings
81
111
  - CI failures → \`actions-failure-digest\` prompt or \`memory://actions/recent\`
@@ -91,26 +121,34 @@ const SERVER_ACCESS_INSTRUCTIONS = `
91
121
  ## How to Access This Server
92
122
 
93
123
  ### Calling Tools
124
+
94
125
  Use \`CallMcpTool\` with server name \`user-memory-journal-mcp\`:
126
+
95
127
  \`\`\`
96
128
  CallMcpTool(server: "user-memory-journal-mcp", toolName: "create_entry", arguments: {...})
97
129
  \`\`\`
98
130
 
99
131
  ### Listing Resources
132
+
100
133
  Use \`ListMcpResources\` with server name:
134
+
101
135
  \`\`\`
102
136
  ListMcpResources(server: "user-memory-journal-mcp")
103
137
  \`\`\`
138
+
104
139
  Do NOT try to browse filesystem paths for MCP tool/resource definitions - use the MCP protocol directly.
105
140
 
106
141
  ### Fetching Resources
142
+
107
143
  Use \`FetchMcpResource\` with server name and \`memory://\` URI:
144
+
108
145
  \`\`\`
109
146
  FetchMcpResource(server: "user-memory-journal-mcp", uri: "memory://recent")
110
147
  FetchMcpResource(server: "user-memory-journal-mcp", uri: "memory://kanban/1")
111
148
  \`\`\`
112
149
 
113
150
  ## Quick Health Check
151
+
114
152
  Fetch \`memory://health\` to verify server status, database stats, and tool availability.
115
153
  `
116
154
 
@@ -121,57 +159,64 @@ const TOOL_PARAMETER_REFERENCE = `
121
159
  ## Tool Parameter Reference
122
160
 
123
161
  ### Entry Operations
124
- | Tool | Required Parameters | Optional Parameters |
125
- |------|---------------------|---------------------|
126
- | \`create_entry\` | \`content\` (string) | \`entry_type\`, \`tags\` (array), \`is_personal\`, \`significance_type\`, \`share_with_team\`, \`auto_context\`, \`issue_number\`, \`issue_url\`, \`pr_number\`, \`pr_url\`, \`pr_status\`, \`project_number\`, \`project_owner\`, \`workflow_run_id\`, \`workflow_name\`, \`workflow_status\` |
127
- | \`create_entry_minimal\` | \`content\` (string) | none |
128
- | \`get_entry_by_id\` | \`entry_id\` (number) | \`include_relationships\` (bool, default true) |
129
- | \`get_recent_entries\` | none | \`limit\` (default 5), \`is_personal\` (bool) |
130
- | \`update_entry\` | \`entry_id\` (number) | \`content\`, \`tags\`, \`entry_type\`, \`is_personal\` |
131
- | \`delete_entry\` | \`entry_id\` (number) | \`permanent\` (bool, default false) |
132
- | \`list_tags\` | none | none |
162
+
163
+ | Tool | Required Parameters | Optional Parameters |
164
+ | ---------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
165
+ | \`create_entry\` | \`content\` (string) | \`entry_type\`, \`tags\` (array), \`is_personal\`, \`significance_type\`, \`auto_context\`, \`issue_number\`, \`issue_url\`, \`pr_number\`, \`pr_url\`, \`pr_status\`, \`project_number\`, \`project_owner\`, \`workflow_run_id\`, \`workflow_name\`, \`workflow_status\` |
166
+ | \`create_entry_minimal\` | \`content\` (string) | none |
167
+ | \`get_entry_by_id\` | \`entry_id\` (number) | \`include_relationships\` (bool, default true) |
168
+ | \`get_recent_entries\` | none | \`limit\` (default 5), \`is_personal\` (bool) |
169
+ | \`update_entry\` | \`entry_id\` (number) | \`content\`, \`tags\`, \`entry_type\`, \`is_personal\` |
170
+ | \`delete_entry\` | \`entry_id\` (number) | \`permanent\` (bool, default false) |
171
+ | \`list_tags\` | none | none |
133
172
 
134
173
  ### Search Tools
135
- | Tool | Required Parameters | Optional Parameters |
136
- |------|---------------------|---------------------|
137
- | \`search_entries\` | none | \`query\`, \`limit\`, \`is_personal\`, \`issue_number\`, \`pr_number\`, \`pr_status\`, \`project_number\`, \`workflow_run_id\` |
138
- | \`search_by_date_range\` | \`start_date\`, \`end_date\` (YYYY-MM-DD) | \`tags\`, \`entry_type\`, \`is_personal\`, \`issue_number\`, \`pr_number\`, \`project_number\`, \`workflow_run_id\` |
139
- | \`semantic_search\` | \`query\` (string) | \`limit\`, \`similarity_threshold\` (default 0.25), \`is_personal\`, \`hint_on_empty\` (bool, default true) |
140
- | \`get_vector_index_stats\` | none | none |
174
+
175
+ | Tool | Required Parameters | Optional Parameters |
176
+ | ------------------------ | ------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
177
+ | \`search_entries\` | none | \`query\`, \`limit\`, \`is_personal\`, \`issue_number\`, \`pr_number\`, \`pr_status\`, \`project_number\`, \`workflow_run_id\` |
178
+ | \`search_by_date_range\` | \`start_date\`, \`end_date\` (YYYY-MM-DD) | \`tags\`, \`entry_type\`, \`is_personal\`, \`issue_number\`, \`pr_number\`, \`project_number\`, \`workflow_run_id\` |
179
+ | \`semantic_search\` | \`query\` (string) | \`limit\`, \`similarity_threshold\` (default 0.25), \`is_personal\`, \`hint_on_empty\` (bool, default true) |
180
+ | \`get_vector_index_stats\` | none | none |
141
181
 
142
182
  ### Relationship Tools
143
- | Tool | Required Parameters | Notes |
144
- |------|---------------------|-------|
145
- | \`link_entries\` | \`from_entry_id\`, \`to_entry_id\` (numbers) | Types: \`evolves_from\`, \`references\`, \`implements\`, \`clarifies\`, \`response_to\`, \`blocked_by\`, \`resolved\`, \`caused\`. Optional \`description\`. |
146
- | \`visualize_relationships\` | none | Optional \`entry_id\`, \`tags\` (array), \`depth\` (1-3, default 2), \`limit\` (default 20). Returns Mermaid diagram. |
183
+
184
+ | Tool | Required Parameters | Notes |
185
+ | ------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
186
+ | \`link_entries\` | \`from_entry_id\`, \`to_entry_id\` (numbers) | Types: \`evolves_from\`, \`references\`, \`implements\`, \`clarifies\`, \`response_to\`, \`blocked_by\`, \`resolved\`, \`caused\`. Optional \`description\`. |
187
+ | \`visualize_relationships\` | none | Optional \`entry_id\`, \`tags\` (array), \`depth\` (1-3, default 2), \`limit\` (default 20). Returns Mermaid diagram. |
147
188
 
148
189
  ### GitHub Tools
149
- | Tool | Required Parameters | Notes |
150
- |------|---------------------|-------|
151
- | \`get_github_context\` | none | Returns repo info, open issues/PRs. Only counts OPEN items. |
152
- | \`get_github_issues\` | none | Optional \`state\` (open/closed/all), \`limit\`, \`owner\`, \`repo\` |
153
- | \`get_github_prs\` | none | Optional \`state\`, \`limit\`, \`owner\`, \`repo\` |
154
- | \`get_github_issue\` | \`issue_number\` (number) | Optional \`owner\`, \`repo\`. Fetches single issue details. |
155
- | \`get_github_pr\` | \`pr_number\` (number) | Optional \`owner\`, \`repo\`. Fetches single PR details. |
156
- | \`get_repo_insights\` | none | Optional \`sections\` (stars/traffic/referrers/paths/all, default "stars"), \`owner\`, \`repo\`. Requires push access for traffic. |
190
+
191
+ | Tool | Required Parameters | Notes |
192
+ | -------------------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
193
+ | \`get_github_context\` | none | Returns repo info, open issues/PRs. Only counts OPEN items. |
194
+ | \`get_github_issues\` | none | Optional \`state\` (open/closed/all), \`limit\`, \`owner\`, \`repo\` |
195
+ | \`get_github_prs\` | none | Optional \`state\`, \`limit\`, \`owner\`, \`repo\` |
196
+ | \`get_github_issue\` | \`issue_number\` (number) | Optional \`owner\`, \`repo\`. Fetches single issue details. |
197
+ | \`get_github_pr\` | \`pr_number\` (number) | Optional \`owner\`, \`repo\`. Fetches single PR details. |
198
+ | \`get_repo_insights\` | none | Optional \`sections\` (stars/traffic/referrers/paths/all, default "stars"), \`owner\`, \`repo\`. Requires push access for traffic. |
157
199
 
158
200
  GitHub tools auto-detect owner/repo from GITHUB_REPO_PATH. If \`detectedOwner\`/\`detectedRepo\` are null in response, specify \`owner\` and \`repo\` parameters explicitly.
159
201
 
160
202
  ### Issue Lifecycle Tools
161
- | Tool | Required Parameters | Notes |
162
- |------|---------------------|-------|
163
- | \`create_github_issue_with_entry\` | \`title\` (string) | Optional \`body\`, \`labels\` (array), \`assignees\` (array), \`project_number\`, \`initial_status\`, \`milestone_number\`, \`entry_content\`, \`tags\`, \`owner\`, \`repo\` |
164
- | \`close_github_issue_with_entry\` | \`issue_number\` (number) | Optional \`comment\`, \`resolution_notes\`, \`tags\`, \`move_to_done\` (bool), \`project_number\`, \`owner\`, \`repo\` |
203
+
204
+ | Tool | Required Parameters | Notes |
205
+ | -------------------------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
206
+ | \`create_github_issue_with_entry\` | \`title\` (string) | Optional \`body\`, \`labels\` (array), \`assignees\` (array), \`project_number\`, \`initial_status\`, \`milestone_number\`, \`entry_content\`, \`tags\`, \`owner\`, \`repo\` |
207
+ | \`close_github_issue_with_entry\` | \`issue_number\` (number) | Optional \`comment\`, \`resolution_notes\`, \`tags\`, \`move_to_done\` (bool), \`project_number\`, \`owner\`, \`repo\` |
165
208
 
166
209
  ### Kanban Tools (GitHub Projects v2)
167
- | Tool | Required Parameters | Notes |
168
- |------|---------------------|-------|
169
- | \`get_kanban_board\` | \`project_number\` (number) | Optional \`owner\`. Returns columns with items grouped by Status |
210
+
211
+ | Tool | Required Parameters | Notes |
212
+ | ------------------ | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
213
+ | \`get_kanban_board\` | \`project_number\` (number) | Optional \`owner\`. Returns columns with items grouped by Status |
170
214
  | \`move_kanban_item\` | \`project_number\`, \`item_id\` (string), \`target_status\` (string) | Optional \`owner\`. \`item_id\` is the GraphQL node ID from board items. Status matching is case-insensitive. |
171
215
 
172
216
  **Finding the right project**: User may have multiple projects. Use \`get_kanban_board\` with different project numbers (1, 2, 3...) to find the correct one by checking \`projectTitle\`.
173
217
 
174
218
  **Default Status columns** (typical GitHub Projects v2):
219
+
175
220
  - \`Backlog\` - Items not yet started
176
221
  - \`Ready\` - Ready to be picked up
177
222
  - \`In progress\` - Actively being worked on
@@ -181,39 +226,46 @@ GitHub tools auto-detect owner/repo from GITHUB_REPO_PATH. If \`detectedOwner\`/
181
226
  Note: Status columns are dynamic per project. The \`statusOptions\` in the response shows available statuses for that specific project.
182
227
 
183
228
  Kanban resources:
229
+
184
230
  - \`memory://kanban/{project_number}\` - JSON board data
185
231
  - \`memory://kanban/{project_number}/diagram\` - Mermaid visualization
186
232
 
187
233
  ### Milestone Tools
188
- | Tool | Required Parameters | Notes |
189
- |------|---------------------|-------|
190
- | \`get_github_milestones\` | none | Optional \`state\` (open/closed/all), \`limit\`, \`owner\`, \`repo\` |
191
- | \`get_github_milestone\` | \`milestone_number\` (number) | Optional \`owner\`, \`repo\`. Single milestone with completion %. |
192
- | \`create_github_milestone\` | \`title\` (string) | Optional \`description\`, \`due_on\` (YYYY-MM-DD), \`owner\`, \`repo\` |
193
- | \`update_github_milestone\` | \`milestone_number\` (number) | Optional \`title\`, \`description\`, \`due_on\`, \`state\` (open/closed), \`owner\`, \`repo\` |
194
- | \`delete_github_milestone\` | \`milestone_number\`, \`confirm: true\` | Optional \`owner\`, \`repo\`. Permanent deletion. |
234
+
235
+ | Tool | Required Parameters | Notes |
236
+ | ------------------------- | ----------------------------------- | --------------------------------------------------------------------------------- |
237
+ | \`get_github_milestones\` | none | Optional \`state\` (open/closed/all), \`limit\`, \`owner\`, \`repo\` |
238
+ | \`get_github_milestone\` | \`milestone_number\` (number) | Optional \`owner\`, \`repo\`. Single milestone with completion %. |
239
+ | \`create_github_milestone\` | \`title\` (string) | Optional \`description\`, \`due_on\` (YYYY-MM-DD), \`owner\`, \`repo\` |
240
+ | \`update_github_milestone\` | \`milestone_number\` (number) | Optional \`title\`, \`description\`, \`due_on\`, \`state\` (open/closed), \`owner\`, \`repo\` |
241
+ | \`delete_github_milestone\` | \`milestone_number\`, \`confirm: true\` | Optional \`owner\`, \`repo\`. Permanent deletion. |
195
242
 
196
243
  Milestone resources:
244
+
197
245
  - \`memory://github/milestones\` - Open milestones with completion %
198
246
  - \`memory://milestones/{number}\` - Single milestone detail
199
247
 
200
248
  ### Admin Tools
201
- | Tool | Required Parameters | Notes |
202
- |------|---------------------|-------|
203
- | \`backup_journal\` | none | Optional \`name\` (custom backup name) |
204
- | \`list_backups\` | none | Returns available backup files |
205
- | \`cleanup_backups\` | none | Optional \`keep_count\` (default 5). Deletes old backups, keeps N most recent. |
206
- | \`restore_backup\` | \`filename\`, \`confirm: true\` | Creates auto-backup before restore |
207
- | \`add_to_vector_index\` | \`entry_id\` (single number) | Indexes one entry for semantic search |
208
- | \`rebuild_vector_index\` | none | Re-indexes all entries |
249
+
250
+ | Tool | Required Parameters | Notes |
251
+ | ---------------------- | --------------------------- | ---------------------------------------------------------------------------- |
252
+ | \`backup_journal\` | none | Optional \`name\` (custom backup name) |
253
+ | \`list_backups\` | none | Returns available backup files |
254
+ | \`cleanup_backups\` | none | Optional \`keep_count\` (default 5). Deletes old backups, keeps N most recent. |
255
+ | \`restore_backup\` | \`filename\`, \`confirm: true\` | Creates auto-backup before restore |
256
+ | \`add_to_vector_index\` | \`entry_id\` (single number) | Indexes one entry for semantic search |
257
+ | \`rebuild_vector_index\` | none | Re-indexes all entries |
209
258
 
210
259
  ### Export Tools
211
- | Tool | Required Parameters | Notes |
212
- |------|---------------------|-------|
213
- | \`export_entries\` | none | Optional \`format\` (json/markdown), \`limit\` (default 100), \`tags\`, \`start_date\`, \`end_date\`, \`entry_types\` |
260
+
261
+ | Tool | Required Parameters | Notes |
262
+ | ---------------- | ------------------- | --------------------------------------------------------------------------------------------------------- |
263
+ | \`export_entries\` | none | Optional \`format\` (json/markdown), \`limit\` (default 100), \`tags\`, \`start_date\`, \`end_date\`, \`entry_types\` |
214
264
 
215
265
  ## Entry Types
266
+
216
267
  Valid values for \`entry_type\` parameter:
268
+
217
269
  - \`personal_reflection\` (default) - Personal thoughts and notes
218
270
  - \`project_decision\` - Architectural and team decisions
219
271
  - \`technical_achievement\` - Milestones and breakthroughs
@@ -226,9 +278,16 @@ Valid values for \`entry_type\` parameter:
226
278
  - \`planning\` - Planning sessions and roadmaps (\`create_github_issue_with_entry\` uses this type)
227
279
  - \`retrospective\` - Sprint and project retrospectives
228
280
  - \`standup\` - Daily standup notes
281
+ - \`technical_note\` - Technical notes and observations
282
+ - \`development_note\` - Development process notes
283
+ - \`enhancement\` - Enhancement tracking
284
+ - \`milestone\` - Milestone documentation
285
+ - \`system_integration_test\` - Integration test records
286
+ - \`test_entry\` - Test and scratch entries
229
287
  - \`other\` - Miscellaneous
230
288
 
231
289
  ## Field Notes
290
+
232
291
  - **\`autoContext\`**: Reserved for future automatic context capture. Currently always \`null\`.
233
292
  - **\`memory://tags\` vs \`list_tags\`**: Resource includes \`id\`, \`name\`, \`count\`; tool returns only \`name\`, \`count\`. Neither returns orphan tags with zero usage.
234
293
  - **Tag naming**: Use lowercase with dashes (e.g., \`bug-fix\`, \`phase-2\`). Use \`merge_tags\` to consolidate duplicates (e.g., merge \`phase2\` into \`phase-2\`).
@@ -245,19 +304,20 @@ Valid values for \`entry_type\` parameter:
245
304
  - **\`delete_entry\` on soft-deleted**: \`delete_entry(id, permanent: true)\` works on previously soft-deleted entries. Returns \`success: false\` for nonexistent entries.
246
305
 
247
306
  ## Key Resources
248
- | URI | Description |
249
- |-----|-------------|
250
- | \`memory://health\` | Server health, DB stats, tool filter status |
251
- | \`memory://briefing\` | Session context with userMessage to show user |
252
- | \`memory://instructions\` | Full server instructions and tool reference |
253
- | \`memory://statistics\` | Entry counts by type and period |
254
- | \`memory://recent\` | 10 most recent entries |
255
- | \`memory://tags\` | All tags with usage counts |
256
- | \`memory://significant\` | Entries sorted by importance score |
257
- | \`memory://graph/recent\` | Mermaid diagram of recent relationships |
258
- | \`memory://graph/actions\` | CI/CD narrative graph |
259
- | \`memory://actions/recent\` | Recent workflow runs |
260
- | \`memory://team/recent\` | Team-shared entries |
307
+
308
+ | URI | Description |
309
+ | ------------------------- | --------------------------------------------- |
310
+ | \`memory://health\` | Server health, DB stats, tool filter status |
311
+ | \`memory://briefing\` | Session context with userMessage to show user |
312
+ | \`memory://instructions\` | Full server instructions and tool reference |
313
+ | \`memory://statistics\` | Entry counts by type and period |
314
+ | \`memory://recent\` | 10 most recent entries |
315
+ | \`memory://tags\` | All tags with usage counts |
316
+ | \`memory://significant\` | Entries sorted by importance score |
317
+ | \`memory://graph/recent\` | Mermaid diagram of recent relationships |
318
+ | \`memory://graph/actions\` | CI/CD narrative graph |
319
+ | \`memory://actions/recent\` | Recent workflow runs |
320
+
261
321
  | \`memory://github/status\` | GitHub repo overview (CI, issues, PRs, milestones) |
262
322
  | \`memory://github/milestones\` | Open milestones with completion % |
263
323
  | \`memory://github/insights\` | Stars, forks, and 14-day traffic summary |
@@ -69,6 +69,13 @@ export const ICON_BACKUP: McpIcon = {
69
69
  sizes: ['24x24'],
70
70
  }
71
71
 
72
+ /** Users group for team collaboration */
73
+ export const ICON_TEAM: McpIcon = {
74
+ src: 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"%3E%3Cpath d="M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2"/%3E%3Ccircle cx="9" cy="7" r="4"/%3E%3Cpath d="M23 21v-2a4 4 0 00-3-3.87"/%3E%3Cpath d="M16 3.13a4 4 0 010 7.75"/%3E%3C/svg%3E',
75
+ mimeType: 'image/svg+xml',
76
+ sizes: ['24x24'],
77
+ }
78
+
72
79
  // ============================================================================
73
80
  // Resource Icons
74
81
  // ============================================================================
@@ -122,13 +129,6 @@ export const ICON_TAG: McpIcon = {
122
129
  sizes: ['24x24'],
123
130
  }
124
131
 
125
- /** Users for team resources */
126
- export const ICON_TEAM: McpIcon = {
127
- src: 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"%3E%3Cpath d="M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2"/%3E%3Ccircle cx="9" cy="7" r="4"/%3E%3Cpath d="M23 21v-2a4 4 0 00-3-3.87"/%3E%3Cpath d="M16 3.13a4 4 0 010 7.75"/%3E%3C/svg%3E',
128
- mimeType: 'image/svg+xml',
129
- sizes: ['24x24'],
130
- }
131
-
132
132
  /** Issue icon for GitHub issues */
133
133
  export const ICON_ISSUE: McpIcon = {
134
134
  src: 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"%3E%3Ccircle cx="12" cy="12" r="10"/%3E%3Cline x1="12" y1="8" x2="12" y2="12"/%3E%3Cline x1="12" y1="16" x2="12.01" y2="16"/%3E%3C/svg%3E',
@@ -171,6 +171,7 @@ export const TOOL_GROUP_ICONS: Record<string, McpIcon> = {
171
171
  admin: ICON_ADMIN,
172
172
  github: ICON_GITHUB,
173
173
  backup: ICON_BACKUP,
174
+ team: ICON_TEAM,
174
175
  }
175
176
 
176
177
  /**