memory-journal-mcp 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dockerignore +88 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +76 -0
- package/.github/ISSUE_TEMPLATE/config.yml +11 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +89 -0
- package/.github/ISSUE_TEMPLATE/question.md +63 -0
- package/.github/dependabot.yml +110 -0
- package/.github/pull_request_template.md +110 -0
- package/.github/workflows/DOCKER_DEPLOYMENT_SETUP.md +346 -0
- package/.github/workflows/codeql.yml +45 -0
- package/.github/workflows/dependabot-auto-merge.yml +42 -0
- package/.github/workflows/docker-publish.yml +277 -0
- package/.github/workflows/lint-and-test.yml +58 -0
- package/.github/workflows/publish-npm.yml +75 -0
- package/.github/workflows/secrets-scanning.yml +32 -0
- package/.github/workflows/security-update.yml +99 -0
- package/.memory-journal-team.db +0 -0
- package/.trivyignore +18 -0
- package/CHANGELOG.md +19 -0
- package/CODE_OF_CONDUCT.md +128 -0
- package/CONTRIBUTING.md +209 -0
- package/DOCKER_README.md +377 -0
- package/Dockerfile +64 -0
- package/LICENSE +21 -0
- package/README.md +461 -0
- package/SECURITY.md +200 -0
- package/VERSION +1 -0
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +42 -0
- package/dist/cli.js.map +1 -0
- package/dist/constants/ServerInstructions.d.ts +8 -0
- package/dist/constants/ServerInstructions.d.ts.map +1 -0
- package/dist/constants/ServerInstructions.js +26 -0
- package/dist/constants/ServerInstructions.js.map +1 -0
- package/dist/database/SqliteAdapter.d.ts +198 -0
- package/dist/database/SqliteAdapter.d.ts.map +1 -0
- package/dist/database/SqliteAdapter.js +736 -0
- package/dist/database/SqliteAdapter.js.map +1 -0
- package/dist/filtering/ToolFilter.d.ts +63 -0
- package/dist/filtering/ToolFilter.d.ts.map +1 -0
- package/dist/filtering/ToolFilter.js +242 -0
- package/dist/filtering/ToolFilter.js.map +1 -0
- package/dist/github/GitHubIntegration.d.ts +91 -0
- package/dist/github/GitHubIntegration.d.ts.map +1 -0
- package/dist/github/GitHubIntegration.js +317 -0
- package/dist/github/GitHubIntegration.js.map +1 -0
- package/dist/handlers/prompts/index.d.ts +28 -0
- package/dist/handlers/prompts/index.d.ts.map +1 -0
- package/dist/handlers/prompts/index.js +366 -0
- package/dist/handlers/prompts/index.js.map +1 -0
- package/dist/handlers/resources/index.d.ts +27 -0
- package/dist/handlers/resources/index.d.ts.map +1 -0
- package/dist/handlers/resources/index.js +453 -0
- package/dist/handlers/resources/index.js.map +1 -0
- package/dist/handlers/tools/index.d.ts +26 -0
- package/dist/handlers/tools/index.d.ts.map +1 -0
- package/dist/handlers/tools/index.js +982 -0
- package/dist/handlers/tools/index.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/server/McpServer.d.ts +18 -0
- package/dist/server/McpServer.d.ts.map +1 -0
- package/dist/server/McpServer.js +171 -0
- package/dist/server/McpServer.js.map +1 -0
- package/dist/types/index.d.ts +300 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +15 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/McpLogger.d.ts +61 -0
- package/dist/utils/McpLogger.d.ts.map +1 -0
- package/dist/utils/McpLogger.js +113 -0
- package/dist/utils/McpLogger.js.map +1 -0
- package/dist/utils/logger.d.ts +30 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +70 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/vector/VectorSearchManager.d.ts +63 -0
- package/dist/vector/VectorSearchManager.d.ts.map +1 -0
- package/dist/vector/VectorSearchManager.js +235 -0
- package/dist/vector/VectorSearchManager.js.map +1 -0
- package/docker-compose.yml +37 -0
- package/eslint.config.js +86 -0
- package/mcp-config-example.json +21 -0
- package/package.json +71 -0
- package/releases/release-notes-v2.2.0.md +165 -0
- package/releases/release-notes.md +214 -0
- package/releases/v3.0.0.md +236 -0
- package/server.json +42 -0
- package/src/cli.ts +52 -0
- package/src/constants/ServerInstructions.ts +25 -0
- package/src/database/SqliteAdapter.ts +952 -0
- package/src/filtering/ToolFilter.ts +271 -0
- package/src/github/GitHubIntegration.ts +409 -0
- package/src/handlers/prompts/index.ts +420 -0
- package/src/handlers/resources/index.ts +529 -0
- package/src/handlers/tools/index.ts +1081 -0
- package/src/index.ts +53 -0
- package/src/server/McpServer.ts +230 -0
- package/src/types/index.ts +435 -0
- package/src/types/sql.js.d.ts +34 -0
- package/src/utils/McpLogger.ts +155 -0
- package/src/utils/logger.ts +98 -0
- package/src/vector/VectorSearchManager.ts +277 -0
- package/tools.json +300 -0
- package/tsconfig.json +51 -0
package/DOCKER_README.md
ADDED
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
# Memory Journal MCP Server
|
|
2
|
+
|
|
3
|
+
Last Updated December 28, 2025 - v3.0.0
|
|
4
|
+
|
|
5
|
+
[](https://github.com/neverinfamous/memory-journal-mcp)
|
|
6
|
+
[](https://hub.docker.com/r/writenotenow/memory-journal-mcp)
|
|
7
|
+
[](https://opensource.org/licenses/MIT)
|
|
8
|
+

|
|
9
|
+

|
|
10
|
+
[](https://www.npmjs.com/package/memory-journal-mcp)
|
|
11
|
+
[](https://github.com/neverinfamous/memory-journal-mcp/blob/main/SECURITY.md)
|
|
12
|
+
[](https://github.com/neverinfamous/memory-journal-mcp)
|
|
13
|
+
[](https://github.com/neverinfamous/memory-journal-mcp)
|
|
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.
|
|
18
|
+
|
|
19
|
+
**[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
|
+
|
|
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
|
+
## 🎯 What This Does
|
|
29
|
+
|
|
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
|
+
### Key Benefits
|
|
33
|
+
- 📝 **Auto-capture Git/GitHub context** (commits, branches, issues, PRs, projects)
|
|
34
|
+
- 🔗 **Build knowledge graphs** linking specs → implementations → tests → PRs
|
|
35
|
+
- 🔍 **Triple search** (full-text, semantic, date range)
|
|
36
|
+
- 📊 **Generate reports** (standups, retrospectives, PR summaries, status)
|
|
37
|
+
- 🗄️ **Backup & restore** your journal data with one command
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## ✨ v3.0.0 Highlights (December 28, 2025)
|
|
42
|
+
|
|
43
|
+
### **🚀 Complete TypeScript Rewrite**
|
|
44
|
+
- **Pure JS Stack** - No native compilation required (`sql.js` + `vectra` + `@xenova/transformers`)
|
|
45
|
+
- **Cross-Platform** - Works on AMD64 and ARM64 without architecture-specific builds
|
|
46
|
+
- **Strict Type Safety** - 100% TypeScript strict mode compliance
|
|
47
|
+
- **MCP 2025-11-25 Compliance** - Full spec with behavioral annotations
|
|
48
|
+
|
|
49
|
+
### **🗄️ New: Backup & Restore Tools**
|
|
50
|
+
- `backup_journal` - Create timestamped database backups
|
|
51
|
+
- `list_backups` - List all available backup files
|
|
52
|
+
- `restore_backup` - Restore from any backup (with auto-backup before restore)
|
|
53
|
+
|
|
54
|
+
### **📊 New: Server Health Resource**
|
|
55
|
+
- `memory://health` - Database stats, backup info, vector index status, tool filter config
|
|
56
|
+
|
|
57
|
+
### **27 MCP Tools • 14 Workflow Prompts • 14 Resources**
|
|
58
|
+
- **8 tool groups** - `core`, `search`, `analytics`, `relationships`, `export`, `admin`, `github`, `backup`
|
|
59
|
+
- **Knowledge graphs** - 5 relationship types, Mermaid diagram visualization
|
|
60
|
+
- **Semantic search** - AI-powered conceptual search via `@xenova/transformers`
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 🚀 Quick Start (2 Minutes)
|
|
65
|
+
|
|
66
|
+
### 1. Pull the Image
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
docker pull writenotenow/memory-journal-mcp:latest
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 2. Create Data Directory
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
mkdir data
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 3. Add to MCP Config
|
|
79
|
+
|
|
80
|
+
Add this to your `~/.cursor/mcp.json`:
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"mcpServers": {
|
|
85
|
+
"memory-journal-mcp": {
|
|
86
|
+
"command": "docker",
|
|
87
|
+
"args": [
|
|
88
|
+
"run", "--rm", "-i",
|
|
89
|
+
"-v", "./data:/app/data",
|
|
90
|
+
"writenotenow/memory-journal-mcp:latest"
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 4. Restart & Journal!
|
|
98
|
+
|
|
99
|
+
Restart Cursor or your MCP client and start journaling!
|
|
100
|
+
|
|
101
|
+
### GitHub Integration (Optional)
|
|
102
|
+
|
|
103
|
+
To enable GitHub tools (`get_github_issues`, `get_github_prs`, etc.), add environment variables:
|
|
104
|
+
|
|
105
|
+
```json
|
|
106
|
+
{
|
|
107
|
+
"mcpServers": {
|
|
108
|
+
"memory-journal-mcp": {
|
|
109
|
+
"command": "docker",
|
|
110
|
+
"args": [
|
|
111
|
+
"run", "--rm", "-i",
|
|
112
|
+
"-v", "./data:/app/data",
|
|
113
|
+
"-e", "GITHUB_TOKEN",
|
|
114
|
+
"-e", "GITHUB_REPO_PATH=/app/repo",
|
|
115
|
+
"-v", "/path/to/your/repo:/app/repo:ro",
|
|
116
|
+
"writenotenow/memory-journal-mcp:latest"
|
|
117
|
+
],
|
|
118
|
+
"env": {
|
|
119
|
+
"GITHUB_TOKEN": "ghp_your_token_here"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
| Environment Variable | Description |
|
|
127
|
+
|---------------------|-------------|
|
|
128
|
+
| `GITHUB_TOKEN` | GitHub personal access token for API access |
|
|
129
|
+
| `GITHUB_REPO_PATH` | Path to git repo inside container (mount your repo) |
|
|
130
|
+
|
|
131
|
+
**Without `GITHUB_REPO_PATH`**: Explicitly provide `owner` and `repo` when calling GitHub tools.
|
|
132
|
+
|
|
133
|
+
### Cursor Known Issues
|
|
134
|
+
|
|
135
|
+
**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).
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## ⚡ **Install to Cursor IDE**
|
|
140
|
+
|
|
141
|
+
### **One-Click Installation**
|
|
142
|
+
|
|
143
|
+
Click the button below to install directly into Cursor:
|
|
144
|
+
|
|
145
|
+
[](cursor://anysphere.cursor-deeplink/mcp/install?name=Memory%20Journal%20MCP&config=eyJtZW1vcnktam91cm5hbC1tY3AiOnsiYXJncyI6WyJydW4iLCItLXJtIiwiLWkiLCItdiIsIi4vZGF0YTovYXBwL2RhdGEiLCJ3cml0ZW5vdGVub3cvbWVtb3J5LWpvdXJuYWwtbWNwOmxhdGVzdCJdLCJjb21tYW5kIjoiZG9ja2VyIn19)
|
|
146
|
+
|
|
147
|
+
Or copy this deep link:
|
|
148
|
+
```
|
|
149
|
+
cursor://anysphere.cursor-deeplink/mcp/install?name=Memory%20Journal%20MCP&config=eyJtZW1vcnktam91cm5hbC1tY3AiOnsiYXJncyI6WyJydW4iLCItLXJtIiwiLWkiLCItdiIsIi4vZGF0YTovYXBwL2RhdGEiLCJ3cml0ZW5vdGVub3cvbWVtb3J5LWpvdXJuYWwtbWNwOmxhdGVzdCJdLCJjb21tYW5kIjoiZG9ja2VyIn19
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### **Prerequisites**
|
|
153
|
+
- ✅ Docker installed and running
|
|
154
|
+
- ✅ ~300MB disk space available
|
|
155
|
+
|
|
156
|
+
**📖 [See Full Installation Guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Installation)**
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 🛡️ Supply Chain Security
|
|
161
|
+
|
|
162
|
+
For enhanced security and reproducible builds, use SHA-pinned images:
|
|
163
|
+
|
|
164
|
+
**Find SHA tags:** https://hub.docker.com/r/writenotenow/memory-journal-mcp/tags
|
|
165
|
+
|
|
166
|
+
**Option 1: Multi-arch manifest (recommended)**
|
|
167
|
+
```bash
|
|
168
|
+
docker pull writenotenow/memory-journal-mcp:sha256-<manifest-digest>
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**Option 2: Direct digest (maximum security)**
|
|
172
|
+
```bash
|
|
173
|
+
docker pull writenotenow/memory-journal-mcp@sha256:<manifest-digest>
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Security Features:**
|
|
177
|
+
- ✅ **Build Provenance** - Cryptographic proof of build process
|
|
178
|
+
- ✅ **SBOM Available** - Complete software bill of materials
|
|
179
|
+
- ✅ **Supply Chain Attestations** - Verifiable build integrity
|
|
180
|
+
- ✅ **Non-root Execution** - Minimal attack surface
|
|
181
|
+
- ✅ **No Native Dependencies** - Pure JS stack reduces attack surface
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## ⚡ Core Features
|
|
186
|
+
|
|
187
|
+
### 🛠️ 27 MCP Tools (8 Groups)
|
|
188
|
+
| Group | Tools | Description |
|
|
189
|
+
|-------|-------|-------------|
|
|
190
|
+
| `core` | 6 | Entry CRUD, tags, test |
|
|
191
|
+
| `search` | 4 | Text search, date range, semantic, vector stats |
|
|
192
|
+
| `analytics` | 2 | Statistics, cross-project insights |
|
|
193
|
+
| `relationships` | 2 | Link entries, visualize graphs |
|
|
194
|
+
| `export` | 1 | JSON/Markdown export |
|
|
195
|
+
| `admin` | 4 | Update, delete, vector index management |
|
|
196
|
+
| `github` | 5 | Issues, PRs, context integration |
|
|
197
|
+
| `backup` | 3 | **NEW** Backup, list, restore |
|
|
198
|
+
|
|
199
|
+
**[Complete tools documentation →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Tools)**
|
|
200
|
+
|
|
201
|
+
### 🎯 14 Workflow Prompts
|
|
202
|
+
Standups • Retrospectives • Weekly digests • PR summaries • Code review prep • Goal tracking
|
|
203
|
+
**[Complete prompts guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Prompts)**
|
|
204
|
+
|
|
205
|
+
### 📡 14 Resources
|
|
206
|
+
Including new `memory://health` for server diagnostics
|
|
207
|
+
**[Resources documentation →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Resources)**
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 📖 Quick Examples
|
|
212
|
+
|
|
213
|
+
```javascript
|
|
214
|
+
// Create entry with auto-context
|
|
215
|
+
create_entry({
|
|
216
|
+
content: "Implemented lazy ML loading",
|
|
217
|
+
tags: ["performance"]
|
|
218
|
+
})
|
|
219
|
+
|
|
220
|
+
// Create a backup before major changes
|
|
221
|
+
backup_journal({ name: "pre_refactor" })
|
|
222
|
+
|
|
223
|
+
// Check server health
|
|
224
|
+
// Fetch memory://health resource
|
|
225
|
+
|
|
226
|
+
// Search entries
|
|
227
|
+
search_entries({ query: "performance" })
|
|
228
|
+
|
|
229
|
+
// Access MCP resources
|
|
230
|
+
memory://recent // Recent entries
|
|
231
|
+
memory://health // Server diagnostics
|
|
232
|
+
memory://projects/1/timeline // Project timeline
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**Ask Cursor AI naturally:**
|
|
236
|
+
- "Show me my recent journal entries"
|
|
237
|
+
- "Create a backup of my journal"
|
|
238
|
+
- "Check the server health status"
|
|
239
|
+
- "Find entries related to performance"
|
|
240
|
+
|
|
241
|
+
**[See complete examples & prompts →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Examples)**
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## 🔧 Configuration
|
|
246
|
+
|
|
247
|
+
### Optional Environment Variables
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
# GitHub integration (optional - enables Projects/Issues/PRs)
|
|
251
|
+
-e GITHUB_TOKEN=your_token
|
|
252
|
+
-e GITHUB_ORG_TOKEN=your_org_token # For org projects
|
|
253
|
+
-e DEFAULT_ORG=your-org-name
|
|
254
|
+
|
|
255
|
+
# Tool filtering (optional - control which tools are exposed)
|
|
256
|
+
-e MEMORY_JOURNAL_MCP_TOOL_FILTER="-github"
|
|
257
|
+
|
|
258
|
+
# Database location
|
|
259
|
+
-e DB_PATH=/app/data/custom.db
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
**Token Scopes:** `repo`, `project`, `read:org` (org projects only)
|
|
263
|
+
**[Full configuration guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Installation#configuration)**
|
|
264
|
+
|
|
265
|
+
### Tool Filtering
|
|
266
|
+
|
|
267
|
+
Control which tools are exposed using `MEMORY_JOURNAL_MCP_TOOL_FILTER`:
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
docker run -i --rm \
|
|
271
|
+
-e MEMORY_JOURNAL_MCP_TOOL_FILTER="-github,-analytics" \
|
|
272
|
+
-v ./data:/app/data \
|
|
273
|
+
writenotenow/memory-journal-mcp:latest
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
**Common configurations:**
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
# Starter mode (core + search only)
|
|
280
|
+
-e MEMORY_JOURNAL_MCP_TOOL_FILTER="starter"
|
|
281
|
+
|
|
282
|
+
# Read-only mode (disable modifications)
|
|
283
|
+
-e MEMORY_JOURNAL_MCP_TOOL_FILTER="readonly"
|
|
284
|
+
|
|
285
|
+
# Full mode (all tools, default)
|
|
286
|
+
-e MEMORY_JOURNAL_MCP_TOOL_FILTER="full"
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
**Available tool groups:** `core`, `search`, `analytics`, `relationships`, `export`, `admin`, `github`, `backup`
|
|
290
|
+
|
|
291
|
+
**[Complete tool filtering guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Tool-Filtering)**
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## 📦 Image Details
|
|
296
|
+
|
|
297
|
+
| Platform | Features |
|
|
298
|
+
|----------|----------|
|
|
299
|
+
| **AMD64** (x86_64) | Complete: all tools, semantic search, Git context |
|
|
300
|
+
| **ARM64** (Apple Silicon) | Complete: all tools, semantic search, Git context |
|
|
301
|
+
|
|
302
|
+
**TypeScript v3.0 Image Benefits:**
|
|
303
|
+
- **Node.js 22 on Alpine Linux** - Minimal footprint (~150MB compressed)
|
|
304
|
+
- **Pure JS Stack** - No native compilation, identical features on all platforms
|
|
305
|
+
- **sql.js** - SQLite in pure JavaScript
|
|
306
|
+
- **vectra** - Vector similarity search without native dependencies
|
|
307
|
+
- **@xenova/transformers** - ML embeddings in JavaScript
|
|
308
|
+
- **Instant Startup** - Lazy loading of ML models
|
|
309
|
+
- **Production/Stable** - Comprehensive error handling and automatic migrations
|
|
310
|
+
|
|
311
|
+
**Automated Deployment:**
|
|
312
|
+
- ⚡ **Always Fresh** - Images built within minutes of commits
|
|
313
|
+
- 🔒 **Security Scanned** - Automatic vulnerability scanning
|
|
314
|
+
- 🌍 **Multi-Platform** - Intel (amd64) and Apple Silicon (arm64)
|
|
315
|
+
- ✅ **Quality Tested** - Automated testing before deployment
|
|
316
|
+
- 📋 **SBOM Available** - Complete software bill of materials
|
|
317
|
+
|
|
318
|
+
**Available Tags:**
|
|
319
|
+
- `3.0.0` - Specific version (recommended for production)
|
|
320
|
+
- `3.0` - Latest patch in 3.0.x series
|
|
321
|
+
- `3` - Latest minor in 3.x series
|
|
322
|
+
- `latest` - Always the newest version
|
|
323
|
+
- `sha256-<digest>` - SHA-pinned for maximum security
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## 🏗️ Build from Source
|
|
328
|
+
|
|
329
|
+
**Step 1: Clone the repository**
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
git clone https://github.com/neverinfamous/memory-journal-mcp.git
|
|
333
|
+
cd memory-journal-mcp
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
**Step 2: Build the Docker image**
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
docker build -f Dockerfile -t memory-journal-mcp-local .
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
**Step 3: Add to MCP config**
|
|
343
|
+
|
|
344
|
+
Update your `~/.cursor/mcp.json` to use the local build:
|
|
345
|
+
|
|
346
|
+
```json
|
|
347
|
+
{
|
|
348
|
+
"mcpServers": {
|
|
349
|
+
"memory-journal-mcp": {
|
|
350
|
+
"command": "docker",
|
|
351
|
+
"args": [
|
|
352
|
+
"run", "--rm", "-i",
|
|
353
|
+
"-v", "./data:/app/data",
|
|
354
|
+
"memory-journal-mcp-local"
|
|
355
|
+
]
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
## 📚 Documentation & Resources
|
|
364
|
+
|
|
365
|
+
- **[GitHub Wiki](https://github.com/neverinfamous/memory-journal-mcp/wiki)** - Complete documentation
|
|
366
|
+
- **[npm Package](https://www.npmjs.com/package/memory-journal-mcp)** - Node.js distribution
|
|
367
|
+
- **[Issues](https://github.com/neverinfamous/memory-journal-mcp/issues)** - Bug reports & feature requests
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## 📄 License
|
|
372
|
+
|
|
373
|
+
MIT License - See [LICENSE](https://github.com/neverinfamous/memory-journal-mcp/blob/main/LICENSE)
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
*Migrating from v2.x?* Your existing database is fully compatible. The TypeScript version uses the same schema and data format.
|
package/Dockerfile
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Memory Journal MCP Server - TypeScript Version
|
|
2
|
+
# Multi-stage build for optimized production image
|
|
3
|
+
FROM node:22-alpine AS builder
|
|
4
|
+
|
|
5
|
+
WORKDIR /app
|
|
6
|
+
|
|
7
|
+
# Install build dependencies
|
|
8
|
+
RUN apk add --no-cache python3 make g++
|
|
9
|
+
|
|
10
|
+
# Copy package files first for better layer caching
|
|
11
|
+
COPY package*.json ./
|
|
12
|
+
|
|
13
|
+
# Install all dependencies (including devDependencies for build)
|
|
14
|
+
RUN npm ci
|
|
15
|
+
|
|
16
|
+
# Copy source code
|
|
17
|
+
COPY tsconfig.json ./
|
|
18
|
+
COPY src/ ./src/
|
|
19
|
+
|
|
20
|
+
# Build TypeScript
|
|
21
|
+
RUN npm run build
|
|
22
|
+
|
|
23
|
+
# Production stage
|
|
24
|
+
FROM node:22-alpine
|
|
25
|
+
|
|
26
|
+
WORKDIR /app
|
|
27
|
+
|
|
28
|
+
# Install runtime dependencies
|
|
29
|
+
RUN apk add --no-cache git ca-certificates && apk upgrade --no-cache
|
|
30
|
+
|
|
31
|
+
# Copy built artifacts and production dependencies
|
|
32
|
+
COPY --from=builder /app/dist ./dist
|
|
33
|
+
COPY --from=builder /app/node_modules ./node_modules
|
|
34
|
+
COPY package*.json ./
|
|
35
|
+
COPY LICENSE ./
|
|
36
|
+
|
|
37
|
+
# Create data directory for SQLite database with proper permissions
|
|
38
|
+
RUN mkdir -p /app/data && chmod 700 /app/data
|
|
39
|
+
|
|
40
|
+
# Create non-root user for security
|
|
41
|
+
RUN addgroup -g 1001 -S appgroup && \
|
|
42
|
+
adduser -u 1001 -S appuser -G appgroup && \
|
|
43
|
+
chown -R appuser:appgroup /app
|
|
44
|
+
|
|
45
|
+
# Set environment variables
|
|
46
|
+
ENV NODE_ENV=production
|
|
47
|
+
ENV DB_PATH=/app/data/memory_journal.db
|
|
48
|
+
|
|
49
|
+
# Switch to non-root user
|
|
50
|
+
USER appuser
|
|
51
|
+
|
|
52
|
+
# Health check
|
|
53
|
+
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
|
54
|
+
CMD node -e "console.log('Server healthy')" || exit 1
|
|
55
|
+
|
|
56
|
+
# Run the MCP server
|
|
57
|
+
CMD ["node", "dist/cli.js"]
|
|
58
|
+
|
|
59
|
+
# Labels for Docker Hub
|
|
60
|
+
LABEL maintainer="Adamic.tech"
|
|
61
|
+
LABEL description="Memory Journal MCP Server - Project context management for AI-assisted development"
|
|
62
|
+
LABEL version="3.0.0"
|
|
63
|
+
LABEL org.opencontainers.image.source="https://github.com/neverinfamous/memory-journal-mcp"
|
|
64
|
+
LABEL io.modelcontextprotocol.server.name="io.github.neverinfamous/memory-journal-mcp"
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Adamic.tech
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|