recallLABSCO SUMMARY
A memory store that ages its contents on purpose.
Most memory servers either keep everything until recall becomes useless or quietly delete what looks stale. This one takes a position: fragments have types, importance decays, duplicates merge, contradictions are detected and cold entries eventually go — described as design rather than as cleanup. That comes with real infrastructure, though. You are running Postgres with pgvector, choosing an embedding provider you cannot later mix, and setting an access key and an origin list that both default to open.
What it is
AnchorMind, an MCP memory server that keeps what matters across sessions — facts, decisions, errors, preferences, procedures, relations and episodes — and restores them at the start of the next one. It started life as memento-mcp and the author renamed it because too many projects shared that name; the npm package is anchormind-mcp and the repository still answers to both. It is a Streamable HTTP server you run yourself, reached with a bearer key, and it works with Claude Code, Claude Desktop, Cursor, Windsurf, Codex, Continue and GitHub Copilot, plus Claude.ai and ChatGPT on the web over OAuth. The primary documentation is Korean, with English versions of the install and API references in docs/.
What you get
rememberbreaks what you tell it into atomic fragments;recallsearches them across keyword and semantic layers;contextrestores the core of a project at session start- Seven fragment types —
fact,decision,error,preference,procedure,relationandepisode— so "we chose Postgres, here is why" is stored differently from "the build breaks when X" batch_rememberfor bulk writes, withbatch_status(jobId)to check whether a queued job is processing, completed or deadreflectto consolidate a session,search_tracesandreconstruct_historyfor going back over what happened- Editing without deletion:
amend,forget,linkandfragment_history, each isolated per tenant at the SQL level, plusdryRun: trueon the write tools to see the effect before committing it tool_feedback, which feeds back into link weight and confidence, so links that keep proving useful strengthen and contradictory ones are quarantined- Workspace isolation, so one key's memories can still be separated by project or client, and mode presets (
recall-only,write-only,onboarding,audit) that narrow which tools a key even sees - An admin console for browsing memories, the knowledge graph and per-key limits, and a
/healthendpoint that reports degraded rather than failing when one dependency is down
Requirements
Node.js 20+ and PostgreSQL 14+ with the pgvector extension — with only those, the core works. Redis 6+ is optional and switches on the first-layer cache; embeddings come either from the OpenAI API or, with EMBEDDING_PROVIDER=transformers, from a local model the server downloads on first start. Mixing the two on one database is not supported, since the vector dimensions differ, so pick before you migrate. Clients connect over Streamable HTTP with Authorization: Bearer and your access key. Two settings decide whether it is safe to expose: authentication is disabled entirely when MEMENTO_ACCESS_KEY is unset, and every browser origin is allowed when ALLOWED_ORIGINS is unset — set both, and add MCP_STRICT_ORIGIN=true, before the server is reachable from outside your machine. Package anchormind-mcp (5.7.0). Apache 2.0.
Setup effort
Build from source — git clone https://github.com/JinHo-von-Choi/anchormind
USE CASES
Not re-explaining your stack every morning
Facts stored once come back automatically at session start, so the agent already knows which database and test runner the project uses.
Finding the decision behind a piece of code
Search memory for the decision fragment rather than the code, and get the choice and its rationale instead of a diff.
Retiring a decision without losing the record
Amend or supersede the fragment; the change is tracked and the earlier state stays readable rather than being overwritten.
Loading a project's history in one pass
Write many fragments in a single batch and poll the job id until it reports completed, instead of blocking the session on embedding work.
Giving a read-only agent memory access
Issue a key with the recall-only preset, so that client sees the search tools and never the ones that write.
18 tools
Listed in project docs. Your client may show a different list.
rememberbatch_rememberbatch_statusforgetlinkamendreflectcontexttool_feedbackmemory_statsmemory_consolidatesession_rotategraph_explorefragment_historyget_skill_guidereconstruct_historysearch_tracesBEFORE YOU INSTALL
What to know first
Tools you get
18 tools named in the project's documentation.
Requires
- Node.js 20+
- PostgreSQL 14+ with the pgvector extension
- Redis 6+ (optional)
- MEMENTO_ACCESS_KEY in your environment
- POSTGRES_PASSWORD in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/JinHo-von-Choi/anchormind
cd anchormind
cp .env.example.minimal .envSet POSTGRES_HOST, POSTGRES_PORT, POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD, DATABASE_URL and MEMENTO_ACCESS_KEY in .env
npm install
export $(grep -v '^#' .env | grep '=' | xargs)In PostgreSQL, enable pgvector: CREATE EXTENSION IF NOT EXISTS vector;
npm run migrate
node server.jsIn the configuration below, <YOUR_MEMENTO_ACCESS_KEY> is the same MEMENTO_ACCESS_KEY you set in .env
MCP Clients
Claude Code
{
"mcpServers": {
"memento": {
"type": "http",
"url": "http://localhost:57332/mcp",
"headers": {
"Authorization": "Bearer <YOUR_MEMENTO_ACCESS_KEY>"
}
}
}
}POSTGRES_PASSWORD and MEMENTO_ACCESS_KEY go in the server's .env (see the steps); the client sends the same access key as the Bearer token. MEMENTO_CLI_KEY is only needed for the command-line client in remote mode.