memory-journal-mcp 3.1.4 → 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.
- package/.github/workflows/docker-publish.yml +8 -8
- package/.github/workflows/security-update.yml +15 -2
- package/.scout-ignore +4 -4
- package/.trivyignore +4 -9
- package/DOCKER_README.md +108 -92
- package/Dockerfile +4 -6
- package/README.md +124 -189
- package/VERSION +1 -1
- package/dist/cli.js +3 -1
- package/dist/cli.js.map +1 -1
- package/dist/constants/ServerInstructions.d.ts +27 -3
- package/dist/constants/ServerInstructions.d.ts.map +1 -1
- package/dist/constants/ServerInstructions.js +83 -34
- package/dist/constants/ServerInstructions.js.map +1 -1
- package/dist/filtering/ToolFilter.d.ts +1 -1
- package/dist/filtering/ToolFilter.d.ts.map +1 -1
- package/dist/filtering/ToolFilter.js +5 -1
- package/dist/filtering/ToolFilter.js.map +1 -1
- package/dist/github/GitHubIntegration.d.ts +24 -0
- package/dist/github/GitHubIntegration.d.ts.map +1 -1
- package/dist/github/GitHubIntegration.js +120 -0
- package/dist/github/GitHubIntegration.js.map +1 -1
- package/dist/handlers/prompts/index.js +59 -3
- package/dist/handlers/prompts/index.js.map +1 -1
- package/dist/handlers/resources/index.d.ts +16 -2
- package/dist/handlers/resources/index.d.ts.map +1 -1
- package/dist/handlers/resources/index.js +435 -23
- package/dist/handlers/resources/index.js.map +1 -1
- package/dist/handlers/tools/index.d.ts +6 -2
- package/dist/handlers/tools/index.d.ts.map +1 -1
- package/dist/handlers/tools/index.js +342 -10
- package/dist/handlers/tools/index.js.map +1 -1
- package/dist/server/McpServer.d.ts +1 -0
- package/dist/server/McpServer.d.ts.map +1 -1
- package/dist/server/McpServer.js +42 -9
- package/dist/server/McpServer.js.map +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/vector/VectorSearchManager.d.ts +1 -0
- package/dist/vector/VectorSearchManager.d.ts.map +1 -1
- package/dist/vector/VectorSearchManager.js +9 -2
- package/dist/vector/VectorSearchManager.js.map +1 -1
- package/mcp-config-example.json +8 -7
- package/package.json +4 -4
- package/releases/v3.1.5.md +40 -0
- package/releases/v4.0.0.md +69 -0
- package/server.json +3 -3
- package/src/cli.ts +4 -1
- package/src/constants/ServerInstructions.ts +110 -37
- package/src/filtering/ToolFilter.ts +5 -1
- package/src/github/GitHubIntegration.ts +148 -0
- package/src/handlers/prompts/index.ts +62 -3
- package/src/handlers/resources/index.ts +485 -26
- package/src/handlers/tools/index.ts +404 -10
- package/src/server/McpServer.ts +51 -10
- package/src/types/index.ts +6 -0
- 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
|
|
@@ -186,8 +186,8 @@ jobs:
|
|
|
186
186
|
|
|
187
187
|
# Define CVEs to ignore (upstream issues with NO fix available)
|
|
188
188
|
# CVE-2026-22184: Alpine zlib - no fix version released yet
|
|
189
|
-
# CVE-
|
|
190
|
-
IGNORE_CVES="CVE-2026-22184|CVE-
|
|
189
|
+
# CVE-2025-60876: Alpine busybox wget - patch not in release yet
|
|
190
|
+
IGNORE_CVES="CVE-2026-22184|CVE-2025-60876"
|
|
191
191
|
|
|
192
192
|
echo "⏱️ Running Docker Scout scan (max 8 minutes)..."
|
|
193
193
|
if timeout 480 docker scout cves local-scan:latest > scout_output.txt 2>&1; then
|
|
@@ -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=
|
|
277
|
+
latest=false
|
|
278
278
|
tags: |
|
|
279
279
|
type=semver,pattern=v{{version}}
|
|
280
|
-
type=raw,value=v${{ steps.version.outputs.version }},enable
|
|
281
|
-
type=raw,value=latest,enable
|
|
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: "
|
|
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@
|
|
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@
|
|
70
|
+
uses: aquasecurity/trivy-action@0.29.1
|
|
58
71
|
with:
|
|
59
72
|
image-ref: security-test:latest
|
|
60
73
|
format: 'table'
|
package/.scout-ignore
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
# Only include CVEs with NO upstream fix available
|
|
5
5
|
|
|
6
6
|
# Alpine zlib - Critical severity, but NO FIX VERSION RELEASED by Alpine yet
|
|
7
|
-
#
|
|
7
|
+
# zlib 1.3.1.3 contains the fix but Alpine hasn't packaged it
|
|
8
8
|
CVE-2026-22184
|
|
9
9
|
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
CVE-
|
|
10
|
+
# Alpine busybox - wget CRLF injection (MEDIUM)
|
|
11
|
+
# Patch submitted to busybox upstream but not in a release yet
|
|
12
|
+
CVE-2025-60876
|
package/.trivyignore
CHANGED
|
@@ -6,14 +6,9 @@
|
|
|
6
6
|
# ============================================================================
|
|
7
7
|
|
|
8
8
|
# CVE-2026-22184: zlib vulnerability (CRITICAL)
|
|
9
|
-
# No fix version released by Alpine yet -
|
|
9
|
+
# No fix version released by Alpine yet - zlib 1.3.1.3 not packaged
|
|
10
10
|
CVE-2026-22184
|
|
11
11
|
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
|
|
15
|
-
# ============================================================================
|
|
16
|
-
|
|
17
|
-
# CVE-2019-10790: taffydb prototype pollution (HIGH)
|
|
18
|
-
# No fix version exists - package is abandoned
|
|
19
|
-
CVE-2019-10790
|
|
12
|
+
# CVE-2025-60876: busybox wget CRLF injection (MEDIUM)
|
|
13
|
+
# Patch submitted to busybox upstream but not in a release yet
|
|
14
|
+
CVE-2025-60876
|
package/DOCKER_README.md
CHANGED
|
@@ -1,81 +1,86 @@
|
|
|
1
1
|
# Memory Journal MCP Server
|
|
2
2
|
|
|
3
|
-
Last Updated January
|
|
3
|
+
Last Updated January 16, 2026 - v4.0.0
|
|
4
4
|
|
|
5
5
|
[](https://github.com/neverinfamous/memory-journal-mcp)
|
|
6
6
|
[](https://hub.docker.com/r/writenotenow/memory-journal-mcp)
|
|
7
7
|
[](https://opensource.org/licenses/MIT)
|
|
8
|
-

|
|
9
9
|

|
|
10
10
|
[](https://www.npmjs.com/package/memory-journal-mcp)
|
|
11
11
|
[](https://github.com/neverinfamous/memory-journal-mcp/blob/main/SECURITY.md)
|
|
12
12
|
[](https://github.com/neverinfamous/memory-journal-mcp)
|
|
13
13
|
[](https://github.com/neverinfamous/memory-journal-mcp)
|
|
14
14
|
|
|
15
|
-
**Project
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
|
|
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
|
-
- **
|
|
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
|
-
###
|
|
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
|
-
**
|
|
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
|
-
### 🛠️
|
|
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` |
|
|
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
|
-
### 🎯
|
|
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
|
-
### 📡
|
|
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
|
|
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
|
-
- `
|
|
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
|
@@ -21,11 +21,9 @@ COPY package*.json .npmrc ./
|
|
|
21
21
|
# The .npmrc has legacy-peer-deps=true to handle zod peer conflicts
|
|
22
22
|
RUN npm ci
|
|
23
23
|
|
|
24
|
-
#
|
|
25
|
-
#
|
|
26
|
-
RUN rm -rf node_modules/protobufjs/cli
|
|
27
|
-
node_modules/protobufjs/cli/node_modules/tmp && \
|
|
28
|
-
npm dedupe
|
|
24
|
+
# Remove protobufjs CLI entirely - not needed at runtime
|
|
25
|
+
# Eliminates CVE-2019-10790 (taffydb), CVE-2025-54798 (tmp), CVE-2025-5889 (brace-expansion)
|
|
26
|
+
RUN rm -rf node_modules/protobufjs/cli
|
|
29
27
|
|
|
30
28
|
# Copy source code
|
|
31
29
|
COPY tsconfig.json ./
|
|
@@ -78,6 +76,6 @@ CMD ["node", "dist/cli.js"]
|
|
|
78
76
|
# Labels for Docker Hub
|
|
79
77
|
LABEL maintainer="Adamic.tech"
|
|
80
78
|
LABEL description="Memory Journal MCP Server - Project context management for AI-assisted development"
|
|
81
|
-
LABEL version="
|
|
79
|
+
LABEL version="4.0.0"
|
|
82
80
|
LABEL org.opencontainers.image.source="https://github.com/neverinfamous/memory-journal-mcp"
|
|
83
81
|
LABEL io.modelcontextprotocol.server.name="io.github.neverinfamous/memory-journal-mcp"
|