@danielmarbach/mnemonic-mcp 0.4.0 → 0.5.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/CHANGELOG.md +17 -0
- package/README.md +86 -3
- package/build/index.js +369 -90
- package/build/index.js.map +1 -1
- package/build/structured-content.d.ts +275 -1310
- package/build/structured-content.d.ts.map +1 -1
- package/build/structured-content.js +2 -1
- package/build/structured-content.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,23 @@ All notable changes to `mnemonic` will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is loosely based on Keep a Changelog and uses semver-style version headings.
|
|
6
6
|
|
|
7
|
+
## [0.5.0] - 2026-03-12
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- **Self-describing tools — no system prompt required.** All 22 MCP tools now include detailed descriptions with "use when" / "do not use when" decision boundaries, follow-up tool hints, and side-effect documentation. Tool-level `annotations` (`readOnlyHint`, `destructiveHint`, `idempotentHint`, `openWorldHint`) are set on every tool. Parameter descriptions are enriched with semantics, examples, and guidance (e.g. `lifecycle`, `summary`, `cwd`, `scope`). The 141-line `SYSTEM_PROMPT.md` has been replaced by a one-liner fallback — models discover correct behavior from tool metadata alone.
|
|
12
|
+
- Upgraded `zod` to `^4.3.6` and aligned schema declarations with Zod v4's stricter `z.record` signature to keep MCP structured-output validation and type-checking consistent.
|
|
13
|
+
|
|
14
|
+
## [0.4.1] - 2026-03-11
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- Docker image published to `danielmarbach/mnemonic-mcp` on Docker Hub for `linux/amd64` and `linux/arm64`. Tagged with the release version and `latest`.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- `list_migrations` now returns structured content that matches its declared MCP output schema. The handler already included `totalPending`, but the zod schema omitted it, causing the tool to fail with a structured-content validation error instead of listing migrations.
|
|
23
|
+
|
|
7
24
|
## [0.4.0] - 2026-03-11
|
|
8
25
|
|
|
9
26
|
### Added
|
package/README.md
CHANGED
|
@@ -12,6 +12,8 @@ For the high-level system map, see [`ARCHITECTURE.md`](ARCHITECTURE.md). For rel
|
|
|
12
12
|
- 🎯 Project-scoped recall surfaces the right repo context first while keeping global memories accessible.
|
|
13
13
|
- 🤝 Shared `.mnemonic/` notes travel with the repository, so project knowledge isn't trapped in one person's chat history.
|
|
14
14
|
- 🔒 Embeddings stay local and gitignored — semantic search without committing generated vector data.
|
|
15
|
+
- 📝 Every `remember`, `update`, and `consolidate` creates a semantic git commit — decision log and plans travel with the code in the same history.
|
|
16
|
+
- 🔓 Designed for removability — though we're quietly confident you won't use that exit. Every note is plain markdown with YAML frontmatter; the knowledge you gather is independent of mnemonic and always yours.
|
|
15
17
|
|
|
16
18
|
## Stability
|
|
17
19
|
|
|
@@ -75,9 +77,11 @@ Override the vault location:
|
|
|
75
77
|
VAULT_PATH=/path/to/your-vault docker compose run --rm mnemonic
|
|
76
78
|
```
|
|
77
79
|
|
|
78
|
-
## Installing
|
|
80
|
+
## Installing
|
|
79
81
|
|
|
80
|
-
|
|
82
|
+
### npm
|
|
83
|
+
|
|
84
|
+
Published to the public npm registry. No authentication required.
|
|
81
85
|
|
|
82
86
|
```bash
|
|
83
87
|
# Latest stable release
|
|
@@ -87,6 +91,17 @@ npm install @danielmarbach/mnemonic-mcp
|
|
|
87
91
|
npm install @danielmarbach/mnemonic-mcp@0.2.0
|
|
88
92
|
```
|
|
89
93
|
|
|
94
|
+
### Docker Hub
|
|
95
|
+
|
|
96
|
+
Pre-built images for `linux/amd64` and `linux/arm64`:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
docker pull danielmarbach/mnemonic-mcp:latest
|
|
100
|
+
|
|
101
|
+
# Or a specific version
|
|
102
|
+
docker pull danielmarbach/mnemonic-mcp:0.5.0
|
|
103
|
+
```
|
|
104
|
+
|
|
90
105
|
## MCP client config
|
|
91
106
|
|
|
92
107
|
### Claude Desktop / Cursor (native)
|
|
@@ -138,6 +153,38 @@ For a fixed installed version, point at the local binary instead:
|
|
|
138
153
|
|
|
139
154
|
> Ollama must be running before the MCP client invokes mnemonic. Start it once with `docker compose up ollama -d` and it will stay up between calls.
|
|
140
155
|
|
|
156
|
+
### OpenCode
|
|
157
|
+
|
|
158
|
+
Add to `~/.config/opencode/opencode.json` (global) or `opencode.json` in your project root:
|
|
159
|
+
|
|
160
|
+
```json
|
|
161
|
+
{
|
|
162
|
+
"$schema": "https://opencode.ai/config.json",
|
|
163
|
+
"mcp": {
|
|
164
|
+
"mnemonic": {
|
|
165
|
+
"type": "local",
|
|
166
|
+
"command": ["npx", "@danielmarbach/mnemonic-mcp"],
|
|
167
|
+
"environment": {
|
|
168
|
+
"VAULT_PATH": "/Users/you/mnemonic-vault"
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Codex
|
|
176
|
+
|
|
177
|
+
Add to `~/.codex/config.toml` (global) or `.codex/config.toml` in a trusted project:
|
|
178
|
+
|
|
179
|
+
```toml
|
|
180
|
+
[mcp_servers.mnemonic]
|
|
181
|
+
command = "npx"
|
|
182
|
+
args = ["@danielmarbach/mnemonic-mcp"]
|
|
183
|
+
|
|
184
|
+
[mcp_servers.mnemonic.env]
|
|
185
|
+
VAULT_PATH = "/Users/you/mnemonic-vault"
|
|
186
|
+
```
|
|
187
|
+
|
|
141
188
|
For local development against this repository's source tree, use `npm run mcp:local` or point your MCP client at `scripts/mcp-local.sh`.
|
|
142
189
|
|
|
143
190
|
## Configuration
|
|
@@ -149,6 +196,28 @@ For local development against this repository's source tree, use `npm run mcp:lo
|
|
|
149
196
|
| `EMBED_MODEL` | `nomic-embed-text-v2-moe` | Ollama embedding model |
|
|
150
197
|
| `DISABLE_GIT` | `false` | Set `true` to skip all git ops |
|
|
151
198
|
|
|
199
|
+
### config.json
|
|
200
|
+
|
|
201
|
+
The main vault's `~/mnemonic-vault/config.json` holds machine-local settings that survive across sessions. You can edit it by hand — unknown fields are ignored and invalid values fall back to defaults.
|
|
202
|
+
|
|
203
|
+
User-tunable fields:
|
|
204
|
+
|
|
205
|
+
| Field | Default | Description |
|
|
206
|
+
|-------|---------|-------------|
|
|
207
|
+
| `reindexEmbedConcurrency` | `4` | Parallel embedding requests during `sync` (capped 1–16) |
|
|
208
|
+
| `mutationPushMode` | `"main-only"` | When to auto-push after a write: `"all"`, `"main-only"`, or `"none"` |
|
|
209
|
+
|
|
210
|
+
`projectMemoryPolicies` and `projectIdentityOverrides` are written automatically by `set_project_memory_policy` and `set_project_identity` — no need to edit them by hand.
|
|
211
|
+
|
|
212
|
+
Example — raise concurrency on a fast machine and disable auto-push everywhere:
|
|
213
|
+
|
|
214
|
+
```json
|
|
215
|
+
{
|
|
216
|
+
"reindexEmbedConcurrency": 8,
|
|
217
|
+
"mutationPushMode": "none"
|
|
218
|
+
}
|
|
219
|
+
```
|
|
220
|
+
|
|
152
221
|
## How it works
|
|
153
222
|
|
|
154
223
|
### Vault layout
|
|
@@ -361,6 +430,16 @@ After the first sync, call `sync` (with `cwd` for project vaults) whenever you s
|
|
|
361
430
|
|
|
362
431
|
## FAQ
|
|
363
432
|
|
|
433
|
+
**Is the advantage over plain markdown files and grep just easier search?**
|
|
434
|
+
|
|
435
|
+
Easier search is part of it, but three things work together:
|
|
436
|
+
|
|
437
|
+
- **Semantic search over vector embeddings.** Each note is locally indexed via Ollama so `recall` finds the right note even when you don't remember the exact words — searching "JWT expiry bug" can surface a note titled "RS256 migration rationale". `grep` only matches strings you already know.
|
|
438
|
+
- **A connected knowledge graph.** Notes link to each other with typed relationships (`explains`, `supersedes`, `example-of`). Related context surfaces together automatically; `memory_graph` shows the full web. A folder of markdown files has no edges between them.
|
|
439
|
+
- **Decision history travels with the code.** Every `remember`, `update`, and `consolidate` creates a descriptive git commit, so your decision log and implementation plans evolve alongside the code they describe — attributed and timestamped in `git log`.
|
|
440
|
+
|
|
441
|
+
mnemonic is designed to be removable — so give it a try with confidence. We think once you do, you'll stay. But if you ever leave, all the knowledge you've gathered is independent: plain markdown with standard YAML frontmatter, readable in any editor, searchable with `grep`, committable to git. No rescue operation required.
|
|
442
|
+
|
|
364
443
|
**Are mnemonic's embeddings the same as what Claude uses?**
|
|
365
444
|
|
|
366
445
|
No. The embeddings here are **local vector representations** generated by Ollama on your machine — nothing is sent to Anthropic or any cloud service. They are produced by a small embedding model (`nomic-embed-text-v2-moe` by default) and stored as plain JSON files. This is the same idea as retrieval-augmented generation (RAG): each note is converted to a dense numeric vector so `recall` can find semantically related notes even when you don't remember the exact words you used. It has nothing to do with how Claude processes tokens internally.
|
|
@@ -388,4 +467,8 @@ build/ Compiled JavaScript output
|
|
|
388
467
|
|
|
389
468
|
## Agent instructions
|
|
390
469
|
|
|
391
|
-
|
|
470
|
+
No system prompt required. Mnemonic's tools are self-describing — each includes "use when" / "do not use when" guidance, behavioral annotations, and typed schemas. Models will use them correctly from tool metadata alone.
|
|
471
|
+
|
|
472
|
+
If your model isn't picking up the tools proactively, add this one-liner to your AGENT.md or system prompt:
|
|
473
|
+
|
|
474
|
+
> You have access to a long-term memory system via the `mnemonic` MCP server. Use it proactively — don't wait to be asked.
|