fortytwo-guide
Uses local Ollama models for generating text embeddings to enable semantic search over stored memories.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@fortytwo-guideStore that the meeting notes are in the shared drive"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@justfortytwo/guide
A standalone semantic-memory MCP server. It stores text "memories" with
free-form provenance and recalls them by meaning (vector search), by keyword
(FTS5), or by structured filter. Backed by SQLite + sqlite-vec, embeddings
from a local Ollama model.
It is Ford-agnostic: no journal/persona/approval coupling, just a generic memory store and tool surface. It can be used on its own, or as a Claude Code plugin.
What it stores
A memory is content plus provenance:
field | meaning |
| the text (embedded for recall) |
| where it came from — free-form ( |
| how it was observed — free-form ( |
| ISO date the memory pertains to (defaults to today, UTC) |
| free-form tags for filtering |
| id of a prior memory this one replaces (history is kept) |
Recall is hybrid: recall (semantic), lexical (FTS5 keyword), and query
(structured). reindex + recall_docs index/search a directory of markdown
documents separately from the memory store.
Related MCP server: brain-mcp
MCP tools
The server registers under the id fortytwo-guide, so a consumer calls the
tools as mcp__fortytwo-guide__<tool>:
tool | description |
| store a memory (+ provenance); set |
| structured query (source/observed/tag/time; live rows by default) |
| semantic top-k recall by meaning |
| semantic recall over reindexed markdown |
| full-text keyword search (FTS5) |
| self-heal the doc index from a markdown directory |
| render a date range of memories to markdown |
Contract version
Consumers depend on the tool surface, not the internals. The contract is versioned:
import { GUIDE_TOOL_CONTRACT_VERSION, guideToolContract } from '@justfortytwo/guide/contract';A major change to a tool name, its required inputs, or its result shape is a contract break → bump
GUIDE_TOOL_CONTRACT_VERSION. Siblings pin a caret range on@justfortytwo/guide, so a major bump forces an explicit opt-in.Additive changes (new optional inputs, new tools) do not bump it.
guideToolContract is the authoritative human-readable list of tools and their
guarantees, kept in sync with the wire schema in src/tools.ts.
Embedder
The default embedder is OllamaEmbedder, which calls a local Ollama
/api/embeddings endpoint.
OLLAMA_BASE_URL=http://localhost:11434 # default
EMBED_MODEL=qwen3-embedding:0.6b # default model (1024-dim)Pull the model once:
ollama pull qwen3-embedding:0.6bIf EMBED_MODEL is unset, the server falls back to a deterministic,
dependency-free FakeEmbedder — useful for tests, CI, and first-run smoke
checks with zero infra. (The vector tables are fixed at 1024-dim; a model with a
different dimensionality requires a schema change.)
Standalone usage
# build (once); the server runs the built JS, not TS
npm run build
# apply migrations to the DB (DB_PATH or ./memory.db)
DB_PATH=./memory.db npm run migrate
# run the MCP server over stdio
DB_PATH=./memory.db EMBED_MODEL=qwen3-embedding:0.6b fortytwo-guideThe bin is fortytwo-guide → dist/index.js. You can also npx -y @justfortytwo/guide once published.
As a library
import { openDb, runMigrations, OllamaEmbedder, store, recall } from '@justfortytwo/guide';
const h = openDb('memory.db');
await runMigrations(h.k);
const embedder = new OllamaEmbedder();
await store(h, embedder, { content: 'the deploy script lives in scripts/deploy.sh', source: 'owner', observed: 'stated' });
const hits = await recall(h, embedder, 'how do I deploy?', 5);As a Claude Code plugin
.claude-plugin/plugin.json declares the plugin; .mcp.json registers the
fortytwo-guide server. By default it launches via npx:
{
"mcpServers": {
"fortytwo-guide": {
"command": "npx",
"args": ["-y", "@justfortytwo/guide"],
"env": {
"OLLAMA_BASE_URL": "http://localhost:11434",
"EMBED_MODEL": "qwen3-embedding:0.6b",
"DB_PATH": "${CLAUDE_PLUGIN_DATA}/memory.db"
}
}
}
}${CLAUDE_PLUGIN_DATA} survives plugin updates, so the DB persists across
upgrades. When developing from source, build first (npm run build) and swap
the command to node with args ["${CLAUDE_PLUGIN_ROOT}/dist/index.js"].
Claude Code does not build MCP servers — they run via npm/npx.
Continuous enrichment (planned)
src/enrichment.ts is a stub for post-turn memory curation: salient-memory
extraction → dedupe/supersede (recency wins, history kept, never a silent
overwrite) → write with provenance. The salience extractor is model-driven and
lives in the sibling @justfortytwo/deepthought engine (a SalienceExtractor
with an injected LlmClient); guide injects it and owns only the dedupe + write.
See the design notes and TODO(impl) / TODO(wire) markers in that file.
Peer seams
guide depends on two sibling packages one-directionally (declared as optional peers, no cycle):
@justfortytwo/vogon— guide shipsVogonApprovalStore(src/vogon-approval-store.ts), a durable SQLite-backed implementation of vogon'sApprovalStore+AuditLoggerinterfaces. Pass it to vogon'sdecide(..., { store, audit })to back the safety gate's one-shot approvals with guide's db instead of the gate's standalone JSONL store.@justfortytwo/deepthought— the model-driven salience extractor injected intoenrichFromTurn(see above).
Development
npm run build # tsc
npm test # vitest run
npm run test:watch # vitestSet RUN_OLLAMA_TESTS=1 to run the opt-in live-Ollama embedder test.
License
MIT © 2026 justfortytwo
Created and maintained by Enrico Deleo.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/justfortytwo/guide'
If you have feedback or need assistance with the MCP directory API, please join our Discord server