MCP server for persistent, semantic memory across AI sessions
MCP server for persistent, semantic memory across AI sessions. Store context, decisions, and learnings — recall them later with natural language search.
AI assistants forget everything between sessions. Collective Memory fixes that. Store what matters, search by meaning, build context that compounds.
decision, milestone, context, learning, or session_summarynpm install -g collective-memory
Or clone and build:
git clone https://github.com/Hustada/collective-memory.git
cd collective-memory
npm install
npm run build
Required for embeddings. Get one at platform.openai.com.
Add to ~/.claude/settings.json under mcpServers:
{
"mcpServers": {
"collective-memory": {
"type": "stdio",
"command": "npx",
"args": ["collective-memory"],
"env": {
"OPENAI_API_KEY": "sk-..."
}
}
}
}
Or if installed from source:
{
"mcpServers": {
"collective-memory": {
"type": "stdio",
"command": "node",
"args": ["/path/to/collective-memory/dist/index.js"],
"env": {
"OPENAI_API_KEY": "sk-..."
}
}
}
}
Add to your global ~/.claude/CLAUDE.md:
## Memory
Collective Memory is active. Two tools:
- `remember(content, project?, type?, tags?)` — Persist important context
- `recall(query, project?, type?, limit?)` — Search memory
**On session start**: Run `recall("recent decisions and context")` to load relevant memory.
When to remember: after decisions, milestones, completed work, learned patterns.
When to recall: session start, context switches, referencing past work.
Types: decision, milestone, context, learning, session_summary.
Store a memory with semantic embedding.
| Parameter | Type | Required | Description |
|---|---|---|---|
content | string | yes | The memory to store — be specific and self-contained |
project | string | no | Project context (e.g., "myapp", "client-x") |
type | string | no | One of: decision, milestone, context, learning, session_summary |
tags | string[] | no | Tags for categorization |
Returns the stored memory ID, or existing ID if deduplicated.
Search memories by semantic similarity.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | yes | Natural language search query |
project | string | no | Filter to specific project |
type | string | no | Filter to specific memory type |
limit | number | no | Max results (default: 10) |
Returns array of matching memories with similarity scores.
Also usable from command line:
# Store a memory
collective-memory remember --content "Decided to use PostgreSQL for the auth service"
# Search memories
collective-memory recall --query "database decisions" --limit 5
# Pipe content from stdin
echo "Long content here" | collective-memory remember --content-stdin --project myapp
| Environment Variable | Default | Description |
|---|---|---|
OPENAI_API_KEY | (required) | OpenAI API key for embeddings |
COLLECTIVE_MEMORY_PATH | ~/.collective-memory/data | Storage location |
text-embedding-3-small (768 dimensions)Memories are stored locally at ~/.collective-memory/data (or COLLECTIVE_MEMORY_PATH). It's a LanceDB database — portable, no server process.
To export memories:
npm run export # Outputs to viz/memories.json
To visualize:
npm run dash # Opens UMAP visualization at localhost:3333
MIT
Built by The Victor Collective.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y collective-memoryMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-hustada-collective-memory": {
"command": "npx",
"args": [
"-y",
"collective-memory"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencecollective-memorynpmio.github.Hustada/collective-memory works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.