memory-journal-mcp 4.3.0 → 4.4.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/.dockerignore +131 -122
- package/.gitattributes +29 -0
- package/.github/workflows/docker-publish.yml +1 -1
- package/.github/workflows/lint-and-test.yml +1 -2
- package/.github/workflows/secrets-scanning.yml +0 -1
- package/.github/workflows/security-update.yml +6 -6
- package/.vscode/settings.json +17 -15
- package/CHANGELOG.md +1065 -11
- package/DOCKER_README.md +51 -33
- package/Dockerfile +14 -12
- package/README.md +68 -33
- package/SECURITY.md +225 -220
- package/dist/cli.js +7 -0
- package/dist/cli.js.map +1 -1
- package/dist/constants/ServerInstructions.d.ts +1 -1
- package/dist/constants/ServerInstructions.d.ts.map +1 -1
- package/dist/constants/ServerInstructions.js +70 -26
- package/dist/constants/ServerInstructions.js.map +1 -1
- package/dist/constants/icons.d.ts +2 -0
- package/dist/constants/icons.d.ts.map +1 -1
- package/dist/constants/icons.js +6 -0
- package/dist/constants/icons.js.map +1 -1
- package/dist/database/SqliteAdapter.d.ts +51 -10
- package/dist/database/SqliteAdapter.d.ts.map +1 -1
- package/dist/database/SqliteAdapter.js +143 -43
- package/dist/database/SqliteAdapter.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 +7 -1
- package/dist/filtering/ToolFilter.js.map +1 -1
- package/dist/github/GitHubIntegration.d.ts +74 -2
- package/dist/github/GitHubIntegration.d.ts.map +1 -1
- package/dist/github/GitHubIntegration.js +508 -7
- package/dist/github/GitHubIntegration.js.map +1 -1
- package/dist/handlers/prompts/index.js +1 -0
- package/dist/handlers/prompts/index.js.map +1 -1
- package/dist/handlers/resources/index.d.ts.map +1 -1
- package/dist/handlers/resources/index.js +257 -13
- package/dist/handlers/resources/index.js.map +1 -1
- package/dist/handlers/tools/index.d.ts.map +1 -1
- package/dist/handlers/tools/index.js +595 -8
- package/dist/handlers/tools/index.js.map +1 -1
- package/dist/server/McpServer.d.ts +2 -0
- package/dist/server/McpServer.d.ts.map +1 -1
- package/dist/server/McpServer.js +69 -26
- package/dist/server/McpServer.js.map +1 -1
- package/dist/types/index.d.ts +97 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +8 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/progress-utils.d.ts +18 -3
- package/dist/utils/progress-utils.d.ts.map +1 -1
- package/dist/utils/progress-utils.js.map +1 -1
- package/dist/utils/security-utils.d.ts +91 -0
- package/dist/utils/security-utils.d.ts.map +1 -0
- package/dist/utils/security-utils.js +184 -0
- package/dist/utils/security-utils.js.map +1 -0
- package/dist/vector/VectorSearchManager.d.ts +2 -1
- package/dist/vector/VectorSearchManager.d.ts.map +1 -1
- package/dist/vector/VectorSearchManager.js +100 -34
- package/dist/vector/VectorSearchManager.js.map +1 -1
- package/docker-compose.yml +46 -37
- package/mcp-config-example.json +0 -2
- package/package.json +21 -14
- package/releases/v4.3.1.md +69 -0
- package/releases/v4.4.0.md +120 -0
- package/server.json +3 -3
- package/src/cli.ts +11 -0
- package/src/constants/ServerInstructions.ts +70 -26
- package/src/constants/icons.ts +7 -0
- package/src/database/SqliteAdapter.ts +165 -44
- package/src/filtering/ToolFilter.ts +7 -1
- package/src/github/GitHubIntegration.ts +588 -8
- package/src/handlers/prompts/index.ts +1 -0
- package/src/handlers/resources/index.ts +318 -12
- package/src/handlers/tools/index.ts +686 -13
- package/src/server/McpServer.ts +79 -37
- package/src/types/index.ts +98 -0
- package/src/utils/logger.ts +10 -1
- package/src/utils/progress-utils.ts +17 -6
- package/src/utils/security-utils.ts +205 -0
- package/src/vector/VectorSearchManager.ts +110 -39
- package/tests/constants/icons.test.ts +102 -0
- package/tests/constants/server-instructions.test.ts +549 -0
- package/tests/database/sqlite-adapter.bench.ts +63 -0
- package/tests/database/sqlite-adapter.test.ts +555 -0
- package/tests/filtering/tool-filter.test.ts +266 -0
- package/tests/github/github-integration.test.ts +1024 -0
- package/tests/handlers/github-resource-handlers.test.ts +473 -0
- package/tests/handlers/github-tool-handlers.test.ts +556 -0
- package/tests/handlers/prompt-handlers.test.ts +91 -0
- package/tests/handlers/resource-handlers.test.ts +339 -0
- package/tests/handlers/tool-handlers.test.ts +497 -0
- package/tests/handlers/vector-tool-handlers.test.ts +238 -0
- package/tests/security/sql-injection.test.ts +347 -0
- package/tests/server/mcp-server.bench.ts +55 -0
- package/tests/server/mcp-server.test.ts +675 -0
- package/tests/utils/logger.test.ts +180 -0
- package/tests/utils/mcp-logger.test.ts +212 -0
- package/tests/utils/progress-utils.test.ts +156 -0
- package/tests/utils/security-utils.test.ts +82 -0
- package/tests/vector/vector-search-manager.test.ts +335 -0
- package/tests/vector/vector-search.bench.ts +53 -0
- package/vitest.config.ts +15 -0
- package/.github/workflows/DOCKER_DEPLOYMENT_SETUP.md +0 -387
- package/.github/workflows/dependabot-auto-merge.yml +0 -42
package/DOCKER_README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Memory Journal MCP Server
|
|
2
2
|
|
|
3
|
-
Last Updated
|
|
3
|
+
**Last Updated February 27, 2026**
|
|
4
4
|
|
|
5
5
|
[](https://github.com/neverinfamous/memory-journal-mcp)
|
|
6
6
|
[](https://hub.docker.com/r/writenotenow/memory-journal-mcp)
|
|
@@ -10,8 +10,10 @@ Last Updated January 18, 2026
|
|
|
10
10
|
[](https://github.com/neverinfamous/memory-journal-mcp/blob/main/SECURITY.md)
|
|
11
11
|
[](https://github.com/neverinfamous/memory-journal-mcp)
|
|
12
12
|
[](https://github.com/neverinfamous/memory-journal-mcp)
|
|
13
|
+

|
|
14
|
+

|
|
13
15
|
|
|
14
|
-
🎯 **AI Context + Project Intelligence:** Bridge disconnected AI sessions with persistent project memory, while integrating your complete GitHub workflow — Issues, PRs, Actions, Kanban boards, and
|
|
16
|
+
🎯 **AI Context + Project Intelligence:** Bridge disconnected AI sessions with persistent project memory, while integrating your complete GitHub workflow — Issues, PRs, Actions, Kanban boards, Milestones, Repository Insights, and Knowledge Graphs into every conversation.
|
|
15
17
|
|
|
16
18
|
**[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)**
|
|
17
19
|
|
|
@@ -20,10 +22,11 @@ Last Updated January 18, 2026
|
|
|
20
22
|
### Key Benefits
|
|
21
23
|
|
|
22
24
|
- 🧠 **Dynamic Context Management** - AI agents automatically query your project history and create entries at the right moments
|
|
23
|
-
- 📝 **Auto-capture Git/GitHub context** (commits, branches, issues, PRs, projects)
|
|
25
|
+
- 📝 **Auto-capture Git/GitHub context** (commits, branches, issues, milestones, PRs, projects)
|
|
24
26
|
- 🔗 **Build knowledge graphs** linking specs → implementations → tests → PRs
|
|
25
27
|
- 🔍 **Triple search** (full-text, semantic, date range)
|
|
26
28
|
- 📊 **Generate reports** (standups, retrospectives, PR summaries, status)
|
|
29
|
+
- 📈 **Track repository insights** — stars, forks, clones, views, top referrers, and popular paths (14-day rolling)
|
|
27
30
|
- 🗄️ **Backup & restore** your journal data with one command
|
|
28
31
|
|
|
29
32
|
### Deployment Options
|
|
@@ -78,10 +81,10 @@ Last Updated January 18, 2026
|
|
|
78
81
|
|
|
79
82
|
### 📈 **Current Capabilities**
|
|
80
83
|
|
|
81
|
-
- **
|
|
84
|
+
- **39 MCP tools** - Complete development workflow + backup/restore + Kanban + Milestones + Insights + issue management
|
|
82
85
|
- **15 workflow prompts** - Standups, retrospectives, PR workflows, CI/CD failure analysis, session acknowledgment
|
|
83
|
-
- **
|
|
84
|
-
- **GitHub Integration** - Projects, Issues, Pull Requests, Actions, **Kanban boards**
|
|
86
|
+
- **21 MCP resources** - 14 static + 7 template (require parameters)
|
|
87
|
+
- **GitHub Integration** - Projects, Issues, Pull Requests, Actions, **Kanban boards**, **Milestones**
|
|
85
88
|
- **8 tool groups** - `core`, `search`, `analytics`, `relationships`, `export`, `admin`, `github`, `backup`
|
|
86
89
|
- **Knowledge graphs** - 8 relationship types, Mermaid visualization
|
|
87
90
|
- **Semantic search** - AI-powered conceptual search via `@xenova/transformers`
|
|
@@ -165,6 +168,7 @@ To enable GitHub tools (`get_github_issues`, `get_github_prs`, etc.), add enviro
|
|
|
165
168
|
| `GITHUB_REPO_PATH` | Path to git repo inside container (mount your repo) |
|
|
166
169
|
| `DEFAULT_PROJECT_NUMBER` | Default GitHub Project number for auto-assignment when creating issues |
|
|
167
170
|
| `AUTO_REBUILD_INDEX` | Set to `true` to rebuild vector index on server startup |
|
|
171
|
+
| `MCP_HOST` | Server bind host (`0.0.0.0` for containers, default: `localhost`) |
|
|
168
172
|
|
|
169
173
|
**Without `GITHUB_REPO_PATH`**: Explicitly provide `owner` and `repo` when calling GitHub tools.
|
|
170
174
|
|
|
@@ -186,6 +190,8 @@ When GitHub tools cannot auto-detect repository information:
|
|
|
186
190
|
|
|
187
191
|
**Google AntiGravity IDE:**
|
|
188
192
|
|
|
193
|
+
- **AntiGravity Users:** Server instructions are automatically sent to MCP clients during initialization. However, AntiGravity does not currently support MCP server instructions. For optimal usage in AntiGravity, manually provide the contents of [`src/constants/ServerInstructions.ts`](src/constants/ServerInstructions.ts) to the agent in your prompt or user rules.
|
|
194
|
+
|
|
189
195
|
- **Session start**: Add to your user rules: "At session start, read `memory://briefing` from memory-journal-mcp."
|
|
190
196
|
|
|
191
197
|
- **Full guidance**: If behaviors missing, read `memory://instructions` for complete Dynamic Context Management patterns.
|
|
@@ -202,7 +208,7 @@ For remote access, web-based clients, or HTTP-compatible MCP hosts:
|
|
|
202
208
|
docker run --rm -p 3000:3000 \
|
|
203
209
|
-v ./data:/app/data \
|
|
204
210
|
writenotenow/memory-journal-mcp:latest \
|
|
205
|
-
--transport http --port 3000
|
|
211
|
+
--transport http --port 3000 --server-host 0.0.0.0
|
|
206
212
|
```
|
|
207
213
|
|
|
208
214
|
**Stateless Mode (serverless):**
|
|
@@ -211,7 +217,7 @@ docker run --rm -p 3000:3000 \
|
|
|
211
217
|
docker run --rm -p 3000:3000 \
|
|
212
218
|
-v ./data:/app/data \
|
|
213
219
|
writenotenow/memory-journal-mcp:latest \
|
|
214
|
-
--transport http --port 3000 --stateless
|
|
220
|
+
--transport http --port 3000 --server-host 0.0.0.0 --stateless
|
|
215
221
|
```
|
|
216
222
|
|
|
217
223
|
**Endpoints:**
|
|
@@ -300,18 +306,18 @@ docker pull writenotenow/memory-journal-mcp@sha256:<manifest-digest>
|
|
|
300
306
|
|
|
301
307
|
## ⚡ Core Features
|
|
302
308
|
|
|
303
|
-
### 🛠️
|
|
309
|
+
### 🛠️ 39 MCP Tools (8 Groups)
|
|
304
310
|
|
|
305
|
-
| Group | Tools | Description
|
|
306
|
-
| --------------- | ----- |
|
|
307
|
-
| `core` | 6 | Entry CRUD, tags, test
|
|
308
|
-
| `search` | 4 | Text search, date range, semantic, vector stats
|
|
309
|
-
| `analytics` | 2 | Statistics, cross-project insights
|
|
310
|
-
| `relationships` | 2 | Link entries, visualize graphs
|
|
311
|
-
| `export` | 1 | JSON/Markdown export
|
|
312
|
-
| `admin` | 5 | Update, delete, vector index
|
|
313
|
-
| `github` |
|
|
314
|
-
| `backup` | 4 | Backup, list, restore, cleanup
|
|
311
|
+
| Group | Tools | Description |
|
|
312
|
+
| --------------- | ----- | ------------------------------------------------------------------------------- |
|
|
313
|
+
| `core` | 6 | Entry CRUD, tags, test |
|
|
314
|
+
| `search` | 4 | Text search, date range, semantic, vector stats |
|
|
315
|
+
| `analytics` | 2 | Statistics, cross-project insights |
|
|
316
|
+
| `relationships` | 2 | Link entries, visualize graphs |
|
|
317
|
+
| `export` | 1 | JSON/Markdown export |
|
|
318
|
+
| `admin` | 5 | Update, delete, rebuild/add to vector index, merge tags |
|
|
319
|
+
| `github` | 15 | Issues, PRs, context, Kanban, **Milestones**, **Insights**, **issue lifecycle** |
|
|
320
|
+
| `backup` | 4 | Backup, list, restore, cleanup |
|
|
315
321
|
|
|
316
322
|
**[Complete tools documentation →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Tools)**
|
|
317
323
|
|
|
@@ -320,9 +326,9 @@ docker pull writenotenow/memory-journal-mcp@sha256:<manifest-digest>
|
|
|
320
326
|
Standups • Retrospectives • Weekly digests • PR summaries • Code review prep • Goal tracking
|
|
321
327
|
**[Complete prompts guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Prompts)**
|
|
322
328
|
|
|
323
|
-
### 📡
|
|
329
|
+
### 📡 21 Resources (14 Static + 7 Template)
|
|
324
330
|
|
|
325
|
-
Including `memory://briefing` for session initialization, `memory://instructions` for behavioral guidance, `memory://health` for diagnostics,
|
|
331
|
+
Including `memory://briefing` for session initialization, `memory://instructions` for behavioral guidance, `memory://health` for diagnostics, `memory://kanban/{n}` for Kanban boards, `memory://github/milestones` for milestone tracking, and `memory://github/insights` for repository traffic analytics. Template resources require parameters and are accessed directly by URI.
|
|
326
332
|
**[Resources documentation →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Resources)**
|
|
327
333
|
|
|
328
334
|
---
|
|
@@ -345,34 +351,38 @@ Including `memory://briefing` for session initialization, `memory://instructions
|
|
|
345
351
|
```bash
|
|
346
352
|
# GitHub integration (optional - enables Projects/Issues/PRs)
|
|
347
353
|
-e GITHUB_TOKEN=your_token
|
|
348
|
-
-e GITHUB_ORG_TOKEN=your_org_token # For org projects
|
|
349
|
-
-e DEFAULT_ORG=your-org-name
|
|
350
354
|
|
|
351
355
|
# Tool filtering (optional - control which tools are exposed)
|
|
352
356
|
-e MEMORY_JOURNAL_MCP_TOOL_FILTER="-github"
|
|
353
357
|
|
|
358
|
+
# Server bind host (required for containers, default: localhost)
|
|
359
|
+
-e MCP_HOST=0.0.0.0
|
|
360
|
+
|
|
354
361
|
# Database location
|
|
355
362
|
-e DB_PATH=/app/data/custom.db
|
|
356
363
|
```
|
|
357
364
|
|
|
358
|
-
**Token Scopes:** `repo`, `project`, `read:org` (org
|
|
365
|
+
**Token Scopes:** `repo`, `project`, `read:org` (org-level project discovery only)
|
|
359
366
|
**[Full configuration guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Installation#configuration)**
|
|
360
367
|
|
|
361
368
|
### GitHub Management Capabilities
|
|
362
369
|
|
|
363
370
|
Memory Journal provides a **hybrid approach** to GitHub management:
|
|
364
371
|
|
|
365
|
-
| Capability Source | Purpose
|
|
366
|
-
| ------------------ |
|
|
367
|
-
| **MCP Server** | Specialized features: Kanban visualization, journal linking, project timelines |
|
|
368
|
-
| **Agent (gh CLI)** | Full GitHub mutations: create/close issues, create/merge PRs, manage releases
|
|
372
|
+
| Capability Source | Purpose |
|
|
373
|
+
| ------------------ | ------------------------------------------------------------------------------------------ |
|
|
374
|
+
| **MCP Server** | Specialized features: Kanban visualization, Milestones, journal linking, project timelines |
|
|
375
|
+
| **Agent (gh CLI)** | Full GitHub mutations: create/close issues, create/merge PRs, manage releases |
|
|
369
376
|
|
|
370
|
-
**MCP Server Tools (Read + Kanban + Issue Lifecycle):**
|
|
377
|
+
**MCP Server Tools (Read + Kanban + Milestones + Issue Lifecycle):**
|
|
371
378
|
|
|
372
379
|
- `get_github_issues` / `get_github_issue` - Query issues
|
|
373
380
|
- `get_github_prs` / `get_github_pr` - Query pull requests
|
|
374
381
|
- `get_github_context` - Full repository context
|
|
375
382
|
- `get_kanban_board` / `move_kanban_item` - **Kanban management**
|
|
383
|
+
- `get_github_milestones` / `get_github_milestone` - **Milestone tracking with completion %**
|
|
384
|
+
- `create_github_milestone` / `update_github_milestone` / `delete_github_milestone` - **Milestone CRUD**
|
|
385
|
+
- `get_repo_insights` - **Repository traffic & analytics** (stars, clones, views, referrers, popular paths)
|
|
376
386
|
- `create_github_issue_with_entry` / `close_github_issue_with_entry` - **Issue lifecycle with journal linking**
|
|
377
387
|
|
|
378
388
|
**Agent Operations (via gh CLI):**
|
|
@@ -387,7 +397,7 @@ gh pr create --fill
|
|
|
387
397
|
gh pr merge 123
|
|
388
398
|
```
|
|
389
399
|
|
|
390
|
-
> **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.
|
|
400
|
+
> **Why this design?** The MCP server focuses on value-added features that integrate journal entries with GitHub (Kanban views, Milestones, timeline resources, context linking). Standard GitHub mutations are handled by `gh` CLI, which agents can invoke directly.
|
|
391
401
|
|
|
392
402
|
**[Complete GitHub integration guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Git-Integration)**
|
|
393
403
|
|
|
@@ -438,6 +448,14 @@ docker run -i --rm \
|
|
|
438
448
|
- **Instant Startup** - Lazy loading of ML models
|
|
439
449
|
- **Production/Stable** - Comprehensive error handling and automatic migrations
|
|
440
450
|
|
|
451
|
+
**Performance Benchmarks:**
|
|
452
|
+
|
|
453
|
+
Memory Journal is designed for extremely low overhead during AI task execution.
|
|
454
|
+
|
|
455
|
+
- **Database Reads**: Operations execute in fractions of a millisecond. `calculateImportance` is ~55x faster than retrieving 50 recent entries.
|
|
456
|
+
- **Vector Search Engine**: Semantic searches via `vectra` perform significantly faster than parallel entry indexing (>190x faster locally).
|
|
457
|
+
- **Core MCP Routines**: Complex operations exhibit negligible latency when executed through standard MCP tools. Calling tools natively adds ~1.4x overhead compared to direct function execution.
|
|
458
|
+
|
|
441
459
|
**Automated Deployment:**
|
|
442
460
|
|
|
443
461
|
- ⚡ **Always Fresh** - Images built within minutes of commits
|
|
@@ -448,9 +466,9 @@ docker run -i --rm \
|
|
|
448
466
|
|
|
449
467
|
**Available Tags:**
|
|
450
468
|
|
|
451
|
-
- `4.
|
|
452
|
-
- `
|
|
453
|
-
- `
|
|
469
|
+
- `4.4.0` - Specific version (recommended for production)
|
|
470
|
+
- `4.4` - Latest patch in 4.4.x series
|
|
471
|
+
- `4` - Latest minor in 4.x series
|
|
454
472
|
- `latest` - Always the newest version
|
|
455
473
|
- `sha256-<digest>` - SHA-pinned for maximum security
|
|
456
474
|
|
package/Dockerfile
CHANGED
|
@@ -23,13 +23,13 @@ RUN cd /usr/local/lib/node_modules/npm && \
|
|
|
23
23
|
mv package node_modules/diff && \
|
|
24
24
|
rm diff-8.0.3.tgz
|
|
25
25
|
|
|
26
|
-
# Fix CVE-2026-
|
|
26
|
+
# Fix CVE-2026-23950, CVE-2026-24842, CVE-2026-26960: Manually update npm's bundled tar to 7.5.8
|
|
27
27
|
RUN cd /usr/local/lib/node_modules/npm && \
|
|
28
|
-
npm pack tar@7.5.
|
|
28
|
+
npm pack tar@7.5.8 && \
|
|
29
29
|
rm -rf node_modules/tar && \
|
|
30
|
-
tar -xzf tar-7.5.
|
|
30
|
+
tar -xzf tar-7.5.8.tgz && \
|
|
31
31
|
mv package node_modules/tar && \
|
|
32
|
-
rm tar-7.5.
|
|
32
|
+
rm tar-7.5.8.tgz
|
|
33
33
|
|
|
34
34
|
# Copy package files first for better layer caching
|
|
35
35
|
COPY package*.json .npmrc ./
|
|
@@ -56,8 +56,9 @@ WORKDIR /app
|
|
|
56
56
|
|
|
57
57
|
# Install runtime dependencies with security fixes
|
|
58
58
|
# Use Alpine edge for curl with CVE fixes
|
|
59
|
+
# Explicit libexpat upgrade for CVE-2026-24515 (CRITICAL) and CVE-2026-25210 (MEDIUM)
|
|
59
60
|
RUN apk add --no-cache git ca-certificates && \
|
|
60
|
-
apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/edge/main curl && \
|
|
61
|
+
apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/edge/main curl libexpat && \
|
|
61
62
|
apk upgrade --no-cache && \
|
|
62
63
|
npm install -g npm@latest --force && npm cache clean --force
|
|
63
64
|
|
|
@@ -69,13 +70,13 @@ RUN cd /usr/local/lib/node_modules/npm && \
|
|
|
69
70
|
mv package node_modules/diff && \
|
|
70
71
|
rm diff-8.0.3.tgz
|
|
71
72
|
|
|
72
|
-
# Fix CVE-2026-
|
|
73
|
+
# Fix CVE-2026-23950, CVE-2026-24842, CVE-2026-26960: Manually update npm's bundled tar to 7.5.8
|
|
73
74
|
RUN cd /usr/local/lib/node_modules/npm && \
|
|
74
|
-
npm pack tar@7.5.
|
|
75
|
+
npm pack tar@7.5.8 && \
|
|
75
76
|
rm -rf node_modules/tar && \
|
|
76
|
-
tar -xzf tar-7.5.
|
|
77
|
+
tar -xzf tar-7.5.8.tgz && \
|
|
77
78
|
mv package node_modules/tar && \
|
|
78
|
-
rm tar-7.5.
|
|
79
|
+
rm tar-7.5.8.tgz
|
|
79
80
|
|
|
80
81
|
# Copy built artifacts and production dependencies
|
|
81
82
|
COPY --from=builder /app/dist ./dist
|
|
@@ -98,9 +99,10 @@ ENV DB_PATH=/app/data/memory_journal.db
|
|
|
98
99
|
# Switch to non-root user
|
|
99
100
|
USER appuser
|
|
100
101
|
|
|
101
|
-
# Health check
|
|
102
|
+
# Health check - validates Node.js is responsive
|
|
103
|
+
# For HTTP mode, override with: HEALTHCHECK CMD curl -f http://localhost:3000/mcp || exit 1
|
|
102
104
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
|
103
|
-
CMD node -e "
|
|
105
|
+
CMD node -e "process.exit(0)" || exit 1
|
|
104
106
|
|
|
105
107
|
# Run the MCP server
|
|
106
108
|
CMD ["node", "dist/cli.js"]
|
|
@@ -108,6 +110,6 @@ CMD ["node", "dist/cli.js"]
|
|
|
108
110
|
# Labels for Docker Hub
|
|
109
111
|
LABEL maintainer="Adamic.tech"
|
|
110
112
|
LABEL description="Memory Journal MCP Server - Project context management for AI-assisted development"
|
|
111
|
-
LABEL version="4.
|
|
113
|
+
LABEL version="4.4.0"
|
|
112
114
|
LABEL org.opencontainers.image.source="https://github.com/neverinfamous/memory-journal-mcp"
|
|
113
115
|
LABEL io.modelcontextprotocol.server.name="io.github.neverinfamous/memory-journal-mcp"
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Memory Journal MCP Server
|
|
2
2
|
|
|
3
|
-
Last Updated
|
|
3
|
+
**Last Updated February 27, 2026**
|
|
4
4
|
|
|
5
5
|
<!-- mcp-name: io.github.neverinfamous/memory-journal-mcp -->
|
|
6
6
|
|
|
@@ -12,8 +12,10 @@ Last Updated January 18, 2026
|
|
|
12
12
|
[](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.neverinfamous/memory-journal-mcp)
|
|
13
13
|
[](SECURITY.md)
|
|
14
14
|
[](https://github.com/neverinfamous/memory-journal-mcp)
|
|
15
|
+

|
|
16
|
+

|
|
15
17
|
|
|
16
|
-
🎯 **AI Context + Project Intelligence:** Bridge disconnected AI sessions with persistent project memory, while integrating your complete GitHub workflow — Issues, PRs, Actions, Kanban boards, and
|
|
18
|
+
🎯 **AI Context + Project Intelligence:** Bridge disconnected AI sessions with persistent project memory, while integrating your complete GitHub workflow — Issues, PRs, Actions, Kanban boards, Milestones, Repository Insights, and Knowledge Graphs — into every conversation.
|
|
17
19
|
|
|
18
20
|
**[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)**
|
|
19
21
|
|
|
@@ -27,10 +29,11 @@ Last Updated January 18, 2026
|
|
|
27
29
|
### Key Benefits
|
|
28
30
|
|
|
29
31
|
- 🧠 **Dynamic Context Management** - AI agents automatically query your project history and create entries at the right moments
|
|
30
|
-
- 📝 **Auto-capture Git/GitHub context** (commits, branches, issues, PRs, projects)
|
|
32
|
+
- 📝 **Auto-capture Git/GitHub context** (commits, branches, issues, milestones, PRs, projects)
|
|
31
33
|
- 🔗 **Build knowledge graphs** linking specs → implementations → tests → PRs
|
|
32
34
|
- 🔍 **Triple search** (full-text, semantic, date range)
|
|
33
35
|
- 📊 **Generate reports** (standups, retrospectives, PR summaries, status)
|
|
36
|
+
- 📈 **Track repository insights** — stars, forks, clones, views, top referrers, and popular paths (14-day rolling)
|
|
34
37
|
- 🗄️ **Backup & restore** your journal data with one command
|
|
35
38
|
|
|
36
39
|
```mermaid
|
|
@@ -73,10 +76,10 @@ flowchart TB
|
|
|
73
76
|
|
|
74
77
|
### 📈 **Current Capabilities**
|
|
75
78
|
|
|
76
|
-
- **
|
|
79
|
+
- **39 MCP tools** - Complete development workflow + backup/restore + Kanban + Milestones + Insights + issue management
|
|
77
80
|
- **15 workflow prompts** - Standups, retrospectives, PR workflows, CI/CD failure analysis, session acknowledgment
|
|
78
|
-
- **
|
|
79
|
-
- **GitHub Integration** - Projects, Issues, Pull Requests, Actions, **Kanban boards**
|
|
81
|
+
- **21 MCP resources** - 14 static + 7 template (require parameters)
|
|
82
|
+
- **GitHub Integration** - Projects, Issues, Pull Requests, Actions, **Kanban boards**, **Milestones**
|
|
80
83
|
- **8 tool groups** - `core`, `search`, `analytics`, `relationships`, `export`, `admin`, `github`, `backup`
|
|
81
84
|
- **Knowledge graphs** - 8 relationship types, Mermaid visualization
|
|
82
85
|
- **Semantic search** - AI-powered conceptual search via `@xenova/transformers`
|
|
@@ -182,6 +185,12 @@ For remote access or web-based clients, run the server in HTTP mode:
|
|
|
182
185
|
memory-journal-mcp --transport http --port 3000
|
|
183
186
|
```
|
|
184
187
|
|
|
188
|
+
To bind to all interfaces (required for containers):
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
memory-journal-mcp --transport http --port 3000 --server-host 0.0.0.0
|
|
192
|
+
```
|
|
193
|
+
|
|
185
194
|
**Endpoints:**
|
|
186
195
|
|
|
187
196
|
- `POST /mcp` — JSON-RPC requests (initialize, tools/call, etc.)
|
|
@@ -247,6 +256,7 @@ The GitHub tools (`get_github_issues`, `get_github_prs`, etc.) can auto-detect t
|
|
|
247
256
|
| `GITHUB_REPO_PATH` | Path to the git repository for auto-detecting owner/repo |
|
|
248
257
|
| `DEFAULT_PROJECT_NUMBER` | Default GitHub Project number for auto-assignment when creating issues |
|
|
249
258
|
| `AUTO_REBUILD_INDEX` | Set to `true` to rebuild vector index on server startup |
|
|
259
|
+
| `MCP_HOST` | Server bind host (`0.0.0.0` for containers, default: `localhost`) |
|
|
250
260
|
|
|
251
261
|
**Without `GITHUB_REPO_PATH`**: You'll need to explicitly provide `owner` and `repo` parameters when calling GitHub tools.
|
|
252
262
|
|
|
@@ -276,6 +286,8 @@ When GitHub tools cannot auto-detect repository information:
|
|
|
276
286
|
|
|
277
287
|
**Google AntiGravity IDE:**
|
|
278
288
|
|
|
289
|
+
- **AntiGravity Users:** Server instructions are automatically sent to MCP clients during initialization. However, AntiGravity does not currently support MCP server instructions. For optimal usage in AntiGravity, manually provide the contents of [`src/constants/ServerInstructions.ts`](src/constants/ServerInstructions.ts) to the agent in your prompt or user rules.
|
|
290
|
+
|
|
279
291
|
- **Session start**: Add to your user rules: "At session start, read `memory://briefing` from memory-journal-mcp."
|
|
280
292
|
|
|
281
293
|
- **Full guidance**: If behaviors missing, read `memory://instructions` for complete Dynamic Context Management patterns.
|
|
@@ -286,18 +298,18 @@ When GitHub tools cannot auto-detect repository information:
|
|
|
286
298
|
|
|
287
299
|
## 📋 Core Capabilities
|
|
288
300
|
|
|
289
|
-
### 🛠️ **
|
|
301
|
+
### 🛠️ **39 MCP Tools** (8 Groups)
|
|
290
302
|
|
|
291
|
-
| Group | Tools | Description
|
|
292
|
-
| --------------- | ----- |
|
|
293
|
-
| `core` | 6 | Entry CRUD, tags, test
|
|
294
|
-
| `search` | 4 | Text search, date range, semantic, vector stats
|
|
295
|
-
| `analytics` | 2 | Statistics, cross-project insights
|
|
296
|
-
| `relationships` | 2 | Link entries, visualize graphs
|
|
297
|
-
| `export` | 1 | JSON/Markdown export
|
|
298
|
-
| `admin` | 5 | Update, delete, rebuild/add to vector index, merge tags
|
|
299
|
-
| `github` |
|
|
300
|
-
| `backup` | 4 | Backup, list, restore, cleanup
|
|
303
|
+
| Group | Tools | Description |
|
|
304
|
+
| --------------- | ----- | ------------------------------------------------------------------------------- |
|
|
305
|
+
| `core` | 6 | Entry CRUD, tags, test |
|
|
306
|
+
| `search` | 4 | Text search, date range, semantic, vector stats |
|
|
307
|
+
| `analytics` | 2 | Statistics, cross-project insights |
|
|
308
|
+
| `relationships` | 2 | Link entries, visualize graphs |
|
|
309
|
+
| `export` | 1 | JSON/Markdown export |
|
|
310
|
+
| `admin` | 5 | Update, delete, rebuild/add to vector index, merge tags |
|
|
311
|
+
| `github` | 15 | Issues, PRs, context, Kanban, **Milestones**, **Insights**, **issue lifecycle** |
|
|
312
|
+
| `backup` | 4 | Backup, list, restore, cleanup |
|
|
301
313
|
|
|
302
314
|
**[Complete tools reference →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Tools)**
|
|
303
315
|
|
|
@@ -310,20 +322,23 @@ When GitHub tools cannot auto-detect repository information:
|
|
|
310
322
|
- `analyze-period` - Deep period analysis with insights
|
|
311
323
|
- `goal-tracker` - Milestone and achievement tracking
|
|
312
324
|
- `get-context-bundle` - Project context with Git/GitHub/Kanban
|
|
325
|
+
- `get-recent-entries` - Formatted recent entries
|
|
326
|
+
- `project-status-summary` - GitHub Project status reports
|
|
313
327
|
- `pr-summary` - Pull request journal activity summary
|
|
314
328
|
- `code-review-prep` - Comprehensive PR review preparation
|
|
315
329
|
- `pr-retrospective` - Completed PR analysis with learnings
|
|
316
330
|
- `actions-failure-digest` - CI/CD failure analysis
|
|
317
|
-
- `
|
|
331
|
+
- `project-milestone-tracker` - Milestone progress tracking
|
|
332
|
+
- `confirm-briefing` - Acknowledge session context to user
|
|
318
333
|
|
|
319
334
|
**[Complete prompts guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Prompts)**
|
|
320
335
|
|
|
321
|
-
### 📡 **
|
|
336
|
+
### 📡 **21 Resources** (14 Static + 7 Template)
|
|
322
337
|
|
|
323
338
|
**Static Resources** (appear in resource lists):
|
|
324
339
|
|
|
325
340
|
- `memory://briefing` - **Session initialization**: compact context for AI agents (~300 tokens)
|
|
326
|
-
- `memory://instructions` - **Behavioral guidance**: complete server instructions
|
|
341
|
+
- `memory://instructions` - **Behavioral guidance**: complete server instructions for AI agents
|
|
327
342
|
- `memory://recent` - 10 most recent entries
|
|
328
343
|
- `memory://significant` - Significant milestones and breakthroughs
|
|
329
344
|
- `memory://graph/recent` - Live Mermaid diagram of recent relationships
|
|
@@ -334,6 +349,8 @@ When GitHub tools cannot auto-detect repository information:
|
|
|
334
349
|
- `memory://tags` - All tags with usage counts
|
|
335
350
|
- `memory://statistics` - Journal statistics
|
|
336
351
|
- `memory://github/status` - GitHub repository status overview
|
|
352
|
+
- `memory://github/insights` - Repository stars, forks, and 14-day traffic summary
|
|
353
|
+
- `memory://github/milestones` - Open milestones with completion percentages
|
|
337
354
|
|
|
338
355
|
**Template Resources** (require parameters, fetch directly by URI):
|
|
339
356
|
|
|
@@ -343,6 +360,7 @@ When GitHub tools cannot auto-detect repository information:
|
|
|
343
360
|
- `memory://prs/{pr_number}/timeline` - Combined PR + journal timeline
|
|
344
361
|
- `memory://kanban/{project_number}` - GitHub Project Kanban board
|
|
345
362
|
- `memory://kanban/{project_number}/diagram` - Kanban Mermaid visualization
|
|
363
|
+
- `memory://milestones/{number}` - Milestone detail with completion progress
|
|
346
364
|
|
|
347
365
|
---
|
|
348
366
|
|
|
@@ -352,27 +370,28 @@ When GitHub tools cannot auto-detect repository information:
|
|
|
352
370
|
|
|
353
371
|
```bash
|
|
354
372
|
export GITHUB_TOKEN="your_token" # For Projects/Issues/PRs
|
|
355
|
-
export GITHUB_ORG_TOKEN="your_org_token" # Optional: org projects
|
|
356
|
-
export DEFAULT_ORG="your-org-name" # Optional: default org
|
|
357
373
|
```
|
|
358
374
|
|
|
359
|
-
**Scopes:** `repo`, `project`, `read:org` (org only)
|
|
375
|
+
**Scopes:** `repo`, `project`, `read:org` (org-level project discovery only)
|
|
360
376
|
|
|
361
377
|
### GitHub Management Capabilities
|
|
362
378
|
|
|
363
379
|
Memory Journal provides a **hybrid approach** to GitHub management:
|
|
364
380
|
|
|
365
|
-
| Capability Source | Purpose
|
|
366
|
-
| ------------------ |
|
|
367
|
-
| **MCP Server** | Specialized features: Kanban visualization, journal linking, project timelines |
|
|
368
|
-
| **Agent (gh CLI)** | Full GitHub mutations: create/close issues, create/merge PRs, manage releases
|
|
381
|
+
| Capability Source | Purpose |
|
|
382
|
+
| ------------------ | ------------------------------------------------------------------------------------------ |
|
|
383
|
+
| **MCP Server** | Specialized features: Kanban visualization, Milestones, journal linking, project timelines |
|
|
384
|
+
| **Agent (gh CLI)** | Full GitHub mutations: create/close issues, create/merge PRs, manage releases |
|
|
369
385
|
|
|
370
|
-
**MCP Server Tools (Read + Kanban + Issue Lifecycle):**
|
|
386
|
+
**MCP Server Tools (Read + Kanban + Milestones + Issue Lifecycle):**
|
|
371
387
|
|
|
372
388
|
- `get_github_issues` / `get_github_issue` - Query issues
|
|
373
389
|
- `get_github_prs` / `get_github_pr` - Query pull requests
|
|
374
390
|
- `get_github_context` - Full repository context
|
|
375
391
|
- `get_kanban_board` / `move_kanban_item` - **Kanban management**
|
|
392
|
+
- `get_github_milestones` / `get_github_milestone` - **Milestone tracking with completion %**
|
|
393
|
+
- `create_github_milestone` / `update_github_milestone` / `delete_github_milestone` - **Milestone CRUD**
|
|
394
|
+
- `get_repo_insights` - **Repository traffic & analytics** (stars, clones, views, referrers, popular paths)
|
|
376
395
|
- `create_github_issue_with_entry` / `close_github_issue_with_entry` - **Issue lifecycle with journal linking**
|
|
377
396
|
|
|
378
397
|
**Agent Operations (via gh CLI):**
|
|
@@ -432,8 +451,8 @@ export MEMORY_JOURNAL_MCP_TOOL_FILTER="-analytics,-github"
|
|
|
432
451
|
| -------------- | ------------- | ----- |
|
|
433
452
|
| Starter | `starter` | ~10 |
|
|
434
453
|
| Essential | `essential` | ~6 |
|
|
435
|
-
| Full (default) | `full` |
|
|
436
|
-
| Read-only | `readonly` | ~
|
|
454
|
+
| Full (default) | `full` | 39 |
|
|
455
|
+
| Read-only | `readonly` | ~15 |
|
|
437
456
|
|
|
438
457
|
**[Complete tool filtering guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Tool-Filtering)**
|
|
439
458
|
|
|
@@ -448,8 +467,8 @@ flowchart TB
|
|
|
448
467
|
AI["🤖 AI Agent<br/>(Cursor, Windsurf, Claude)"]
|
|
449
468
|
|
|
450
469
|
subgraph MCP["Memory Journal MCP Server"]
|
|
451
|
-
Tools["🛠️
|
|
452
|
-
Resources["📡
|
|
470
|
+
Tools["🛠️ 39 Tools"]
|
|
471
|
+
Resources["📡 21 Resources"]
|
|
453
472
|
Prompts["💬 15 Prompts"]
|
|
454
473
|
end
|
|
455
474
|
|
|
@@ -477,7 +496,7 @@ flowchart TB
|
|
|
477
496
|
┌─────────────────────────────────────────────────────────────┐
|
|
478
497
|
│ MCP Server Layer (TypeScript) │
|
|
479
498
|
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────┐ │
|
|
480
|
-
│ │ Tools (
|
|
499
|
+
│ │ Tools (39) │ │ Resources (21) │ │ Prompts (15)│ │
|
|
481
500
|
│ │ with Annotations│ │ with Annotations│ │ │ │
|
|
482
501
|
│ └─────────────────┘ └─────────────────┘ └─────────────┘ │
|
|
483
502
|
├─────────────────────────────────────────────────────────────┤
|
|
@@ -506,12 +525,28 @@ flowchart TB
|
|
|
506
525
|
- **@xenova/transformers** - ML embeddings in JavaScript
|
|
507
526
|
- **Lazy loading** - ML models load on first use, not startup
|
|
508
527
|
|
|
528
|
+
### Performance Benchmarks
|
|
529
|
+
|
|
530
|
+
Memory Journal is designed for extremely low overhead during AI task execution. We include a `vitest bench` suite to maintain these baseline guarantees:
|
|
531
|
+
|
|
532
|
+
- **Database Reads**: Operations execute in fractions of a millisecond. `calculateImportance` is ~55x faster than retrieving 50 recent entries.
|
|
533
|
+
- **Vector Search Engine**: Semantic searches via `vectra` perform significantly faster than parallel entry indexing (>190x faster locally).
|
|
534
|
+
- **Core MCP Routines**: Complex operations exhibit negligible latency when executed through standard MCP tools. Calling tools natively adds ~1.4x overhead compared to direct function execution.
|
|
535
|
+
|
|
536
|
+
To run the benchmarking suite locally:
|
|
537
|
+
|
|
538
|
+
```bash
|
|
539
|
+
npm run bench
|
|
540
|
+
```
|
|
541
|
+
|
|
509
542
|
### Security
|
|
510
543
|
|
|
511
544
|
- **Local-first** - All data stored locally, no external API calls (except optional GitHub)
|
|
512
545
|
- **Input validation** - Zod schemas, content size limits, SQL injection prevention
|
|
513
546
|
- **Path traversal protection** - Backup filenames validated
|
|
514
547
|
- **MCP 2025-11-25 annotations** - Behavioral hints (`readOnlyHint`, `destructiveHint`, etc.)
|
|
548
|
+
- **HTTP transport hardening** - Configurable CORS, 1MB body limit, security headers, 30-min session timeout
|
|
549
|
+
- **Token scrubbing** - GitHub tokens and credentials automatically redacted from error logs
|
|
515
550
|
|
|
516
551
|
### Data & Privacy
|
|
517
552
|
|