memory-journal-mcp 3.1.5 → 4.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 (55) hide show
  1. package/.github/workflows/docker-publish.yml +6 -6
  2. package/.github/workflows/security-update.yml +15 -2
  3. package/DOCKER_README.md +108 -92
  4. package/Dockerfile +1 -1
  5. package/README.md +124 -189
  6. package/VERSION +1 -1
  7. package/dist/cli.js +3 -1
  8. package/dist/cli.js.map +1 -1
  9. package/dist/constants/ServerInstructions.d.ts +27 -3
  10. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  11. package/dist/constants/ServerInstructions.js +83 -34
  12. package/dist/constants/ServerInstructions.js.map +1 -1
  13. package/dist/filtering/ToolFilter.d.ts +1 -1
  14. package/dist/filtering/ToolFilter.d.ts.map +1 -1
  15. package/dist/filtering/ToolFilter.js +5 -1
  16. package/dist/filtering/ToolFilter.js.map +1 -1
  17. package/dist/github/GitHubIntegration.d.ts +24 -0
  18. package/dist/github/GitHubIntegration.d.ts.map +1 -1
  19. package/dist/github/GitHubIntegration.js +120 -0
  20. package/dist/github/GitHubIntegration.js.map +1 -1
  21. package/dist/handlers/prompts/index.js +59 -3
  22. package/dist/handlers/prompts/index.js.map +1 -1
  23. package/dist/handlers/resources/index.d.ts +16 -2
  24. package/dist/handlers/resources/index.d.ts.map +1 -1
  25. package/dist/handlers/resources/index.js +435 -23
  26. package/dist/handlers/resources/index.js.map +1 -1
  27. package/dist/handlers/tools/index.d.ts +6 -2
  28. package/dist/handlers/tools/index.d.ts.map +1 -1
  29. package/dist/handlers/tools/index.js +342 -10
  30. package/dist/handlers/tools/index.js.map +1 -1
  31. package/dist/server/McpServer.d.ts +1 -0
  32. package/dist/server/McpServer.d.ts.map +1 -1
  33. package/dist/server/McpServer.js +42 -9
  34. package/dist/server/McpServer.js.map +1 -1
  35. package/dist/types/index.d.ts +4 -0
  36. package/dist/types/index.d.ts.map +1 -1
  37. package/dist/types/index.js.map +1 -1
  38. package/dist/vector/VectorSearchManager.d.ts +1 -0
  39. package/dist/vector/VectorSearchManager.d.ts.map +1 -1
  40. package/dist/vector/VectorSearchManager.js +9 -2
  41. package/dist/vector/VectorSearchManager.js.map +1 -1
  42. package/mcp-config-example.json +8 -7
  43. package/package.json +4 -4
  44. package/releases/v4.0.0.md +69 -0
  45. package/server.json +3 -3
  46. package/src/cli.ts +4 -1
  47. package/src/constants/ServerInstructions.ts +110 -37
  48. package/src/filtering/ToolFilter.ts +5 -1
  49. package/src/github/GitHubIntegration.ts +148 -0
  50. package/src/handlers/prompts/index.ts +62 -3
  51. package/src/handlers/resources/index.ts +485 -26
  52. package/src/handlers/tools/index.ts +404 -10
  53. package/src/server/McpServer.ts +51 -10
  54. package/src/types/index.ts +6 -0
  55. package/src/vector/VectorSearchManager.ts +10 -2
@@ -154,7 +154,7 @@ jobs:
154
154
  security-scan:
155
155
  runs-on: ubuntu-latest
156
156
  needs: build-platform
157
- if: github.event_name != 'pull_request'
157
+ if: always() && needs.build-platform.result == 'success' && github.event_name != 'pull_request'
158
158
  permissions:
159
159
  contents: read
160
160
  security-events: write
@@ -221,7 +221,7 @@ jobs:
221
221
  merge-and-push:
222
222
  runs-on: ubuntu-latest
223
223
  needs: [build-platform, security-scan]
224
- if: github.event_name != 'pull_request'
224
+ if: always() && needs.build-platform.result == 'success' && needs.security-scan.result == 'success' && github.event_name != 'pull_request'
225
225
  permissions:
226
226
  contents: read
227
227
  packages: write
@@ -274,11 +274,11 @@ jobs:
274
274
  with:
275
275
  images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
276
276
  flavor: |
277
- latest=auto
277
+ latest=false
278
278
  tags: |
279
279
  type=semver,pattern=v{{version}}
280
- type=raw,value=v${{ steps.version.outputs.version }},enable={{is_default_branch}}
281
- type=raw,value=latest,enable={{is_default_branch}}
280
+ type=raw,value=v${{ steps.version.outputs.version }},enable=${{ github.ref == 'refs/heads/main' || github.event.workflow_run.head_branch == 'main' || startsWith(github.ref, 'refs/tags/v') }}
281
+ type=raw,value=latest,enable=${{ github.ref == 'refs/heads/main' || github.event.workflow_run.head_branch == 'main' || startsWith(github.ref, 'refs/tags/v') }}
282
282
  type=sha,prefix=sha-,format=short
283
283
 
284
284
  - name: Create and push manifest
@@ -302,7 +302,7 @@ jobs:
302
302
  password: ${{ secrets.DOCKER_PASSWORD }}
303
303
  repository: ${{ env.IMAGE_NAME }}
304
304
  readme-filepath: ./DOCKER_README.md
305
- short-description: "MCP server for Git-aware project memory, capturing code context, GitHub issues, PRs, and Actions."
305
+ short-description: "Persistent AI Project Memory w/Triple Search, Knowledge Graphs, GitHub Integration & Tool Filtering."
306
306
 
307
307
  - name: Deployment Summary
308
308
  if: github.ref == 'refs/heads/main'
@@ -4,6 +4,19 @@ on:
4
4
  schedule:
5
5
  # Run weekly on Sundays at 2 AM UTC
6
6
  - cron: '0 2 * * 0'
7
+ push:
8
+ branches: [main]
9
+ paths:
10
+ - 'Dockerfile'
11
+ - 'package.json'
12
+ - 'package-lock.json'
13
+ - '.trivyignore'
14
+ pull_request:
15
+ branches: [main]
16
+ paths:
17
+ - 'Dockerfile'
18
+ - 'package.json'
19
+ - 'package-lock.json'
7
20
  workflow_dispatch:
8
21
 
9
22
  permissions:
@@ -35,7 +48,7 @@ jobs:
35
48
 
36
49
  # Run SARIF scan first (non-blocking) to always generate the file
37
50
  - name: Run Trivy scanner for SARIF output
38
- uses: aquasecurity/trivy-action@master
51
+ uses: aquasecurity/trivy-action@0.29.1
39
52
  with:
40
53
  image-ref: security-test:latest
41
54
  format: 'sarif'
@@ -54,7 +67,7 @@ jobs:
54
67
 
55
68
  # Run table scan (blocking) after SARIF is uploaded
56
69
  - name: Run Trivy vulnerability scanner
57
- uses: aquasecurity/trivy-action@master
70
+ uses: aquasecurity/trivy-action@0.29.1
58
71
  with:
59
72
  image-ref: security-test:latest
60
73
  format: 'table'
package/DOCKER_README.md CHANGED
@@ -1,81 +1,86 @@
1
1
  # Memory Journal MCP Server
2
2
 
3
- Last Updated January 11, 2026 - v3.1.5
3
+ Last Updated January 16, 2026 - v4.0.0
4
4
 
5
5
  [![GitHub](https://img.shields.io/badge/GitHub-neverinfamous/memory--journal--mcp-blue?logo=github)](https://github.com/neverinfamous/memory-journal-mcp)
6
6
  [![Docker Pulls](https://img.shields.io/docker/pulls/writenotenow/memory-journal-mcp)](https://hub.docker.com/r/writenotenow/memory-journal-mcp)
7
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
8
- ![Version](https://img.shields.io/badge/version-v3.1.5-green)
8
+ ![Version](https://img.shields.io/badge/version-v4.0.0-green)
9
9
  ![Status](https://img.shields.io/badge/status-Production%2FStable-brightgreen)
10
10
  [![npm](https://img.shields.io/npm/v/memory-journal-mcp)](https://www.npmjs.com/package/memory-journal-mcp)
11
11
  [![Security](https://img.shields.io/badge/Security-Enhanced-green.svg)](https://github.com/neverinfamous/memory-journal-mcp/blob/main/SECURITY.md)
12
12
  [![GitHub Stars](https://img.shields.io/github/stars/neverinfamous/memory-journal-mcp?style=social)](https://github.com/neverinfamous/memory-journal-mcp)
13
13
  [![TypeScript](https://img.shields.io/badge/TypeScript-Strict-blue.svg)](https://github.com/neverinfamous/memory-journal-mcp)
14
14
 
15
- **Project context management for AI-assisted development - Maintain continuity across fragmented AI threads with persistent knowledge graphs and intelligent context recall**
16
-
17
- 🎯 **Solve the AI Context Problem:** Bridge the gap between disconnected AI sessions. Memory Journal provides persistent project memory, enabling AI to access your complete development history, past decisions, and work patterns across any thread or timeframe.
15
+ 🎯 **AI Context + Project Intelligence:** Bridge disconnected AI sessions with persistent project memory, while integrating your complete GitHub workflow — Issues, PRs, Actions, Kanban boards, and knowledge graphs into every conversation.
18
16
 
19
17
  **[GitHub](https://github.com/neverinfamous/memory-journal-mcp)** • **[Wiki](https://github.com/neverinfamous/memory-journal-mcp/wiki)** • **[Changelog](https://github.com/neverinfamous/memory-journal-mcp/wiki/CHANGELOG)** • **[Release Article](https://adamic.tech/articles/memory-journal-mcp-server)**
20
18
 
21
- **🚀 Multiple Deployment Options:**
22
- - **[Docker Hub](https://hub.docker.com/r/writenotenow/memory-journal-mcp)** - Node.js Alpine-based multi-platform support
23
- - **[npm Package](https://www.npmjs.com/package/memory-journal-mcp)** - Simple `npm install -g` for local deployment
24
- - **[MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.neverinfamous/memory-journal-mcp)**
25
-
26
- ---
27
-
28
19
  ## 🎯 What This Does
29
20
 
30
- **Solve the AI Context Problem:** When working with AI across multiple threads, context is lost. Memory Journal provides persistent project memory - every AI conversation can access your complete development history, past decisions, and work patterns.
31
-
32
21
  ### Key Benefits
22
+ - 🧠 **Dynamic Context Management** - AI agents automatically query your project history and create entries at the right moments
33
23
  - 📝 **Auto-capture Git/GitHub context** (commits, branches, issues, PRs, projects)
34
24
  - 🔗 **Build knowledge graphs** linking specs → implementations → tests → PRs
35
25
  - 🔍 **Triple search** (full-text, semantic, date range)
36
26
  - 📊 **Generate reports** (standups, retrospectives, PR summaries, status)
37
27
  - 🗄️ **Backup & restore** your journal data with one command
38
28
 
39
- ```mermaid
40
- flowchart LR
41
- subgraph Problem["❌ Without Memory Journal"]
42
- direction TB
43
- A1["Session 1<br/>Context Lost"] --> A2["Session 2<br/>Start Over"]
44
- end
45
-
46
- subgraph Solution["✅ With Memory Journal"]
47
- direction TB
48
- B1["Session 1"] --> MJ[("📚 Memory<br/>Journal")]
49
- B2["Session 2"] --> MJ
50
- MJ --> |"Recall"| B1
51
- MJ --> |"Search"| B2
52
- end
53
-
54
- Problem -.->|"Solve with"| Solution
55
- ```
56
-
57
- ---
58
-
59
- ## ✨ v3.0.0 Highlights (December 28, 2025)
60
-
61
- ### **🚀 Complete TypeScript Rewrite**
62
- - **Pure JS Stack** - No native compilation required (`sql.js` + `vectra` + `@xenova/transformers`)
63
- - **Cross-Platform** - Works on AMD64 and ARM64 without architecture-specific builds
64
- - **Strict Type Safety** - 100% TypeScript strict mode compliance
65
- - **MCP 2025-11-25 Compliance** - Full spec with behavioral annotations
66
-
67
- ### **🗄️ New: Backup & Restore Tools**
68
- - `backup_journal` - Create timestamped database backups
69
- - `list_backups` - List all available backup files
70
- - `restore_backup` - Restore from any backup (with auto-backup before restore)
71
-
72
- ### **📊 New: Server Health Resource**
73
- - `memory://health` - Database stats, backup info, vector index status, tool filter config
29
+ ### Deployment Options
30
+ - **[Docker Hub](https://hub.docker.com/r/writenotenow/memory-journal-mcp)** - Node.js Alpine-based multi-platform support
31
+ - **[npm Package](https://www.npmjs.com/package/memory-journal-mcp)** - Simple `npm install -g` for local deployment
32
+ - **[MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.neverinfamous/memory-journal-mcp)**
74
33
 
75
- ### **29 MCP Tools • 14 Workflow Prompts • 16 Resources**
34
+ +---------------------------+
35
+ | 🤖 AI Session Start |
36
+ |---------------------------|
37
+ | 📋 Read Briefing |
38
+ | (memory://briefing) |
39
+ +-------------+-------------+
40
+ |
41
+ v
42
+ +---------------------------+
43
+ | 📝 Journal Operations |
44
+ |---------------------------|
45
+ | - Create Entry |
46
+ | - Retrieve & Search |
47
+ | - Link Entries |
48
+ +------+------+------+------+
49
+ | | |
50
+ | | |
51
+ v | v
52
+ +--------------+ +---------------------------+
53
+ | 🔍 Triple |<->| 🐙 GitHub Integration |
54
+ | Search | |---------------------------|
55
+ |--------------| | - Issues & Milestones |
56
+ | - Full-Text | | - Pull Requests |
57
+ | (FTS5) | | - GitHub Actions |
58
+ | - Semantic | | - Kanban Boards |
59
+ | (Vector) | +-------------+-------------+
60
+ | - Date | |
61
+ | Range | |
62
+ +------+-------+ |
63
+ | |
64
+ v v
65
+ +-----------+-------------+
66
+ |
67
+ v
68
+ +---------------------------+
69
+ | 📊 Outputs |
70
+ |---------------------------|
71
+ | - Standups & Retros |
72
+ | - Knowledge Graphs |
73
+ | - Project Timelines |
74
+ +---------------------------+
75
+
76
+ ### 📈 **Current Capabilities**
77
+
78
+ - **31 MCP tools** - Complete development workflow + backup/restore + Kanban + issue management
79
+ - **15 workflow prompts** - Standups, retrospectives, PR workflows, CI/CD failure analysis, session acknowledgment
80
+ - **18 MCP resources** - 12 static + 6 template (require parameters)
81
+ - **GitHub Integration** - Projects, Issues, Pull Requests, Actions, **Kanban boards**
76
82
  - **8 tool groups** - `core`, `search`, `analytics`, `relationships`, `export`, `admin`, `github`, `backup`
77
- - **GitHub Kanban** - View and manage GitHub Project boards directly
78
- - **Knowledge graphs** - 5 relationship types, Mermaid diagram visualization
83
+ - **Knowledge graphs** - 5 relationship types, Mermaid visualization
79
84
  - **Semantic search** - AI-powered conceptual search via `@xenova/transformers`
80
85
 
81
86
  ---
@@ -146,12 +151,23 @@ To enable GitHub tools (`get_github_issues`, `get_github_prs`, etc.), add enviro
146
151
  |---------------------|-------------|
147
152
  | `GITHUB_TOKEN` | GitHub personal access token for API access |
148
153
  | `GITHUB_REPO_PATH` | Path to git repo inside container (mount your repo) |
154
+ | `DEFAULT_PROJECT_NUMBER` | Default GitHub Project number for auto-assignment when creating issues |
149
155
 
150
156
  **Without `GITHUB_REPO_PATH`**: Explicitly provide `owner` and `repo` when calling GitHub tools.
151
157
 
152
- ### Cursor Known Issues
158
+ ### Client-Specific Notes
159
+
160
+ **Cursor IDE:**
161
+
162
+ - **Listing MCP Resources**: If the agent has trouble listing resources, instruct it to call `ListMcpResources()` without specifying a server parameter, or with `server: "user-memory-journal-mcp"` (Cursor prefixes server names with `user-`).
163
+
164
+ **Google AntiGravity IDE:**
153
165
 
154
- **Listing MCP Resources**: If the agent has trouble listing resources, instruct it to call `list_mcp_resources()` without specifying a server parameter. Using `server="memory-journal-mcp"` may return nothing (Cursor bug).
166
+ - **Session start**: Add to your user rules: "At session start, read `memory://briefing` from memory-journal-mcp."
167
+
168
+ - **Full guidance**: If behaviors missing, read `memory://instructions` for complete Dynamic Context Management patterns.
169
+
170
+ - **Prompts not available**: AntiGravity does not currently support MCP prompts. The 15 workflow prompts are not accessible.
155
171
 
156
172
  ---
157
173
 
@@ -203,7 +219,7 @@ docker pull writenotenow/memory-journal-mcp@sha256:<manifest-digest>
203
219
 
204
220
  ## ⚡ Core Features
205
221
 
206
- ### 🛠️ 29 MCP Tools (8 Groups)
222
+ ### 🛠️ 31 MCP Tools (8 Groups)
207
223
  | Group | Tools | Description |
208
224
  |-------|-------|-------------|
209
225
  | `core` | 6 | Entry CRUD, tags, test |
@@ -212,52 +228,21 @@ docker pull writenotenow/memory-journal-mcp@sha256:<manifest-digest>
212
228
  | `relationships` | 2 | Link entries, visualize graphs |
213
229
  | `export` | 1 | JSON/Markdown export |
214
230
  | `admin` | 4 | Update, delete, vector index management |
215
- | `github` | 7 | Issues, PRs, context, **Kanban board** |
231
+ | `github` | 9 | Issues, PRs, context, Kanban, **issue lifecycle** |
216
232
  | `backup` | 3 | Backup, list, restore |
217
233
 
218
234
  **[Complete tools documentation →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Tools)**
219
235
 
220
- ### 🎯 14 Workflow Prompts
236
+ ### 🎯 15 Workflow Prompts
221
237
  Standups • Retrospectives • Weekly digests • PR summaries • Code review prep • Goal tracking
222
238
  **[Complete prompts guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Prompts)**
223
239
 
224
- ### 📡 16 Resources
225
- Including `memory://health` for diagnostics and `memory://kanban/{n}` for Kanban boards
240
+ ### 📡 18 Resources (12 Static + 6 Template)
241
+ Including `memory://briefing` for session initialization, `memory://instructions` for behavioral guidance, `memory://health` for diagnostics, and `memory://kanban/{n}` for Kanban boards. Template resources require parameters and are accessed directly by URI.
226
242
  **[Resources documentation →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Resources)**
227
243
 
228
244
  ---
229
245
 
230
- ## 📖 Quick Examples
231
-
232
- ```javascript
233
- // Create entry with auto-context
234
- create_entry({
235
- content: "Implemented lazy ML loading",
236
- tags: ["performance"]
237
- })
238
-
239
- // Create a backup before major changes
240
- backup_journal({ name: "pre_refactor" })
241
-
242
- // Check server health
243
- // Fetch memory://health resource
244
-
245
- // Search entries
246
- search_entries({ query: "performance" })
247
-
248
- // View Kanban board
249
- get_kanban_board({ project_number: 5 })
250
-
251
- // Move item on Kanban
252
- move_kanban_item({ project_number: 5, item_id: "PVTI_...", target_status: "Done" })
253
-
254
- // Access MCP resources
255
- memory://recent // Recent entries
256
- memory://health // Server diagnostics
257
- memory://kanban/5 // Kanban board view
258
- memory://projects/1/timeline // Project timeline
259
- ```
260
-
261
246
  **Ask Cursor AI naturally:**
262
247
  - "Show me my recent journal entries"
263
248
  - "Create a backup of my journal"
@@ -288,6 +273,37 @@ memory://projects/1/timeline // Project timeline
288
273
  **Token Scopes:** `repo`, `project`, `read:org` (org projects only)
289
274
  **[Full configuration guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Installation#configuration)**
290
275
 
276
+ ### GitHub Management Capabilities
277
+
278
+ Memory Journal provides a **hybrid approach** to GitHub management:
279
+
280
+ | Capability Source | Purpose |
281
+ |-------------------|---------|
282
+ | **MCP Server** | Specialized features: Kanban visualization, journal linking, project timelines |
283
+ | **Agent (gh CLI)** | Full GitHub mutations: create/close issues, create/merge PRs, manage releases |
284
+
285
+ **MCP Server Tools (Read + Kanban + Issue Lifecycle):**
286
+ - `get_github_issues` / `get_github_issue` - Query issues
287
+ - `get_github_prs` / `get_github_pr` - Query pull requests
288
+ - `get_github_context` - Full repository context
289
+ - `get_kanban_board` / `move_kanban_item` - **Kanban management**
290
+ - `create_github_issue_with_entry` / `close_github_issue_with_entry` - **Issue lifecycle with journal linking**
291
+
292
+ **Agent Operations (via gh CLI):**
293
+ ```bash
294
+ # Issues
295
+ gh issue create --title "Bug fix" --body "Description"
296
+ gh issue close 42
297
+
298
+ # Pull Requests
299
+ gh pr create --fill
300
+ gh pr merge 123
301
+ ```
302
+
303
+ > **Why this design?** The MCP server focuses on value-added features that integrate journal entries with GitHub (Kanban views, timeline resources, context linking). Standard GitHub mutations are handled by `gh` CLI, which agents can invoke directly.
304
+
305
+ **[Complete GitHub integration guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Git-Integration)**
306
+
291
307
  ### Tool Filtering
292
308
 
293
309
  Control which tools are exposed using `MEMORY_JOURNAL_MCP_TOOL_FILTER`:
@@ -325,7 +341,7 @@ docker run -i --rm \
325
341
  | **AMD64** (x86_64) | Complete: all tools, semantic search, Git context |
326
342
  | **ARM64** (Apple Silicon) | Complete: all tools, semantic search, Git context |
327
343
 
328
- **TypeScript v3.0 Image Benefits:**
344
+ **TypeScript Image Benefits:**
329
345
  - **Node.js 24 on Alpine Linux** - Minimal footprint (~150MB compressed)
330
346
  - **Pure JS Stack** - No native compilation, identical features on all platforms
331
347
  - **sql.js** - SQLite in pure JavaScript
@@ -342,7 +358,7 @@ docker run -i --rm \
342
358
  - 📋 **SBOM Available** - Complete software bill of materials
343
359
 
344
360
  **Available Tags:**
345
- - `3.1.5` - Specific version (recommended for production)
361
+ - `4.0.0` - Specific version (recommended for production)
346
362
  - `3.0` - Latest patch in 3.0.x series
347
363
  - `3` - Latest minor in 3.x series
348
364
  - `latest` - Always the newest version
package/Dockerfile CHANGED
@@ -76,6 +76,6 @@ CMD ["node", "dist/cli.js"]
76
76
  # Labels for Docker Hub
77
77
  LABEL maintainer="Adamic.tech"
78
78
  LABEL description="Memory Journal MCP Server - Project context management for AI-assisted development"
79
- LABEL version="3.1.5"
79
+ LABEL version="4.0.0"
80
80
  LABEL org.opencontainers.image.source="https://github.com/neverinfamous/memory-journal-mcp"
81
81
  LABEL io.modelcontextprotocol.server.name="io.github.neverinfamous/memory-journal-mcp"