holographic-memory
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., "@holographic-memorystore that I prefer Go over Python"
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.
🧠 Holographic Memory — MCP Server (Go)
🌐 Website: holo.ai3d.art · Live (GitHub Pages): neo37.github.io/holographic-memory · Open-source · Privacy-first · $5/mo cloud
The first fully open-source, privacy-first holographic long-term memory for AI agents. Built on Kanerva's Sparse Distributed Memory (SDM) — the associative memory that recent research (2021–2026) proved to be mathematically equivalent to the Attention mechanism inside Transformers (GPT-4, Claude).
Give Claude Desktop, Cursor and any MCP-compatible agent a memory that thinks by association, not by keyword match. Say "I don't like Python" today, ask "what should I write this script in?" next month — and the agent recalls "Go, because you don't like Python." Plain vector RAG can't do that. Interference-based recall can.
Table of Contents / Оглавление
# | English | Русский |
1 | Зачем голографическая память | |
2 | Как это работает | |
3 | Математическая модель | |
4 | Инструменты MCP | |
5 | Архитектура | |
6 | Редакции и цены | |
7 | Установка | |
8 | Технологический стек | |
9 | Дорожная карта | |
10 | Документация | |
11 | Лицензия |
Related MCP server: Memsolus MCP Server
1. Why Holographic Memory
Classic RAG is literal: no keyword overlap → no hit. SDM stores every fact as a
high-dimensional binary vector ({0,1}ⁿ, n ≈ 10 000) smeared across many addresses.
Recall reconstructs the signal by majority vote over everything inside the activation radius,
so it survives noise, partial cues and vague prompts — and it surfaces connections the user
only hinted at.
Vector RAG | Holographic Memory (SDM) | |
Match model | keyword / cosine similarity | associative interference |
Vague query | misses | reconstructs from noise |
Conflicting facts | silently coexist | flagged as interference |
Foundation | ad-hoc embeddings | Kanerva SDM ≈ Transformer Attention |
2. How It Works
flowchart LR
A["Fact:<br/>'User dislikes Python'"] -->|encode| B["Hypervector<br/>{0,1}^10000"]
B -->|"write into radius r"| C[(Distributed<br/>address cloud)]
Q["Vague query:<br/>'what language?'"] -->|encode| D["Query vector"]
D -->|"activate within r"| C
C -->|"majority-rule read"| E["De-noised recall:<br/>'Use Go — you dislike Python'"]A fact is not stored in one row — it is superposed across every hard location within a Hamming radius. Reading a noisy or vague cue re-collects those overlapping traces and votes them back into a clean answer.
3. The Math
Implemented in Go, straight from Kanerva's SDM:
Distance — Hamming:
d(A, B) = Σᵢ (Aᵢ ⊕ Bᵢ)Write — interference: activate every hard location within radius
rof addressX, then increment/decrement their counters (wave superposition):Activate(X) = { Y ∈ HardLocations | d(X, Y) ≤ r }Read — associative recall: sum activated cells around query
Q, apply the majority rule:Outputᵢ = sign( Σ_{Y ∈ Activate(Q)} CellContents(Y)ᵢ )
This reconstructs a 100%-clean context even from a noisy or partially forgotten query.
4. MCP Tools
Tool | What it does |
| Store a structured memory (fact + context + emotional valence + importance + tags) as a superposed hypervector. |
| Retrieve a de-noised "meaning cloud" from a vague or emotional cue. |
| Detect when a new fact collides with an existing belief; return the conflict + confidence. |
| "Sleep": drop weak associations, reinforce frequently used ones, keep the store fast. |
{
"name": "recall_by_association",
"arguments": { "query": "the project I worked on when I felt down", "association_depth": 3 }
}{ "name": "interference_analysis", "arguments": { "new_fact": "I moved to Berlin" } }
// → { "conflict_detected": true, "previous_memory": "User lives in London", "confidence": 0.85 }5. Architecture
flowchart TB
subgraph Client["AI Agent — Claude Desktop / Cursor"]
AG[LLM Agent]
end
subgraph Server["Holographic Memory Server (Go)"]
MCP["MCP handler<br/>(stdio / JSON-RPC)"]
LIC{"License gate<br/>LOCAL = free"}
SDM["SDM Engine<br/>encode · write · recall"]
STORE[("SQLite / binary<br/>association store")]
end
CLOUD["☁️ Cloud Sync (Pro $5/mo)<br/>encrypted cross-device"]
AG <-->|"tools/call"| MCP
MCP --> LIC --> SDM --> STORE
SDM -. optional .-> CLOUD6. Editions & Pricing
This project ships Open-Core: the engine is free and open, convenience is paid.
flowchart LR
Free["🆓 Local — Free<br/>MIT/Apache-2.0<br/>Full SDM engine · 4 tools<br/>Local SQLite · 100% private"]
Pro["⭐ Cloud / Pro — $5/mo<br/>Encrypted cross-device sync<br/>Managed hosting + backups<br/>Semantic-cloud viz"]
Biz["🏢 Business<br/>Dual-licensing<br/>Custom SDM integrations"]
Free --> Pro --> BizLocal (Free) — runs 100% on your machine; your memories never leave your computer.
Cloud / Pro ($5/mo) — same memory in Claude at work and Cursor at home; managed, backed up, and visualized.
Business — closed-source embedding rights + bespoke integrations.
7. Install
# One command via Smithery
npx -y @smithery/cli install holographic-memoryOr add it manually to claude_desktop_config.json:
{
"mcpServers": {
"holographic-memory": {
"command": "uvx",
"args": ["holographic-memory-server"],
"env": {
"MEMORY_MODE": "LOCAL",
"MEMORY_LICENSE_KEY": "optional — only for Cloud/Pro sync"
}
}
}
}MEMORY_MODE=LOCAL needs no key and is free forever. Set a MEMORY_LICENSE_KEY (get one at
holo.ai3d.art) only to unlock encrypted cross-device sync.
8. Tech Stack
Go 1.24+ — fast, low RAM, single static binary
MCP over stdio (JSON-RPC)
Local storage — SQLite / binary association file implementing Kanerva SDM
Docker — multi-stage Alpine build
Payments — Lemon Squeezy (license keys + subscriptions)
9. Roadmap
Tier | Focus | Status |
1 | Long-term memory for Claude Desktop / Cursor | 🚧 In progress |
2 | Game engines (Unity / Unreal) — NPC skeletal "muscle memory" | 🔭 Planned |
B2B | Logs / SIEM anomaly detection (patterns smeared across time) | 🔭 Planned |
Full timeline & Gantt: see docs/GTM_PLAN.md.
10. Documentation
🌐 Live site — holo.ai3d.art (custom domain). Mirrors: GitHub Pages · GitLab Pages — landing source:
index.html
11. License
Dual-licensed:
AGPL-3.0 (free) — personal, self-hosted, and open-source use. If you run a modified version as a network service, AGPL requires you to publish your corresponding source. See
LICENSE.Commercial License (paid) — required to embed this software in a closed-source or commercial product, or to run it inside a proprietary service without publishing your source. Get it at holo.ai3d.art. See
COMMERCIAL-LICENSE.md.
"Smart long-term memory for Claude that doesn't forget the context of a chat from a week ago."
Available Tools
4 toolsconsolidate_and_pruneC
Sleep: drop weak/unused associations, keep the store fast.
| Name | Required | Description | Default |
|---|---|---|---|
| max_loss_tolerance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It mentions dropping associations (destructive) and keeping the store fast, but does not explain what 'weak/unused' means, side effects, reversibility, or rate limits. The parameter max_loss_tolerance is not addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short but contains an unclear prefix 'Sleep' that detracts from clarity. It could be more concise without that word and still convey the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple schema (one optional param) and no output schema, the description is too vague. It fails to explain how max_loss_tolerance affects pruning or what the tool actually does in detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% coverage, and the description does not mention the parameter max_loss_tolerance at all. No meaning is added beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool drops weak/unused associations, indicating a pruning operation. This distinguishes it from sibling tools like interference_analysis or recall_by_association. However, the initial word 'Sleep' is confusing and suggests a different action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like interference_analysis or store_holographic_snapshot. The description does not specify context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interference_analysisB
Check whether a new fact collides with an existing belief; returns the conflict and confidence.
| Name | Required | Description | Default |
|---|---|---|---|
| new_fact | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It mentions returning conflict and confidence but omits whether the tool is read-only or has side effects, prerequisites, or performance implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action. It is concise, though could benefit from more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple structure (one parameter, no output schema), the description covers the return type (conflict and confidence) and basic purpose. However, it lacks context on whether the tool modifies state or behavior under different conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for the only parameter 'new_fact'. The description adds basic meaning by calling it a 'new fact' to check, but fails to specify format constraints or what constitutes a valid fact, leaving ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'check' and the resource 'collision between fact and belief', and distinguishes from siblings that focus on consolidation, recall, and storage. However, it lacks specificity on what 'collision' means and the exact output format, given no output schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for conflict detection, and sibling names suggest alternatives (e.g., recall_by_association for retrieval), but no explicit guidance on when to use or not use this tool is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recall_by_associationB
Retrieve a de-noised meaning cloud from a vague or emotional cue. Use when the user refers to the past indirectly.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Vague description or context | |
| top_k | No | ||
| association_depth | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions 'de-noised' but fails to disclose behavioral traits like read-only, permissions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded. Efficient but could include more parameter detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing output schema, no annotations, and parameter details lacking. Does not explain return values or parameter behavior, leaving gaps for a 3-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (query has description). top_k and association_depth lack descriptions. Description does not add meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves a de-noised meaning cloud from vague cues, using specific verbs and resources. It differentiates from sibling tools like consolidate_and_prune by focusing on indirect past references, though the term 'meaning cloud' may be jargon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use when the user refers to the past indirectly,' giving clear context. Does not state when not to use or alternatives, but the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
store_holographic_snapshotB
Store a structured memory (fact + context + emotional valence + importance + tags) as a superposed hypervector.
| Name | Required | Description | Default |
|---|---|---|---|
| fact | Yes | The fact to remember | |
| tags | No | ||
| context | No | Where/why this came up | |
| valence | No | positive | neutral | negative | neutral |
| importance | No | 0.0–1.0 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It does not mention side effects (e.g., overwriting), auth requirements, or what 'superposed hypervector' implies for behavior. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the purpose with no extraneous words. Every part is meaningful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and no annotations, the description is too brief. It omits return value, usage examples, and behavioral details, leaving the tool underspecified for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 80% schema coverage, the schema already describes most parameters. The description adds conceptual context by grouping them into a 'structured memory' and 'superposed hypervector', which aids understanding beyond raw schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Store' and the resource 'structured memory', enumerating the components (fact, context, emotional valence, importance, tags). It distinguishes this tool from siblings like 'recall_by_association' and 'consolidate_and_prune' by focusing on storage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the siblings. It does not mention prerequisites, context, or exclusions, leaving the agent to infer usage from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct purpose: storing, recalling, analyzing conflicts, and pruning. No overlap in functionality.
All tool names follow a consistent verb_noun pattern with underscores, making them predictable and readable.
Four tools cover the core operations of a memory server without being too few or excessive.
The tools cover storage, retrieval, conflict analysis, and maintenance, but lack explicit delete or update operations, leaving minor gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Memory system for AI agents with semantic search. Store and recall memories with ease.
Persistent memory for AI agents. Search, store, and recall across sessions.
Persistent memory for AI agents. Semantic search, memory graph, W3C DID identity.
Shared long-term memory for AI agents: save and recall context as a searchable knowledge graph.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides AI agents with persistent, searchable memory that survives across conversations using semantic search, temporal versioning, and smart organization. Enables long-term context retention and cross-session continuity for AI assistants.14

Memsolus MCP Serverofficial
AlicenseAqualityDmaintenanceProvides persistent long-term memory for AI agents through semantic search and automated knowledge graph extraction. It enables agents to store, recall, and reason over facts, preferences, and relationships across multiple conversations and sessions.1419MIT- AlicenseNot gradedqualityCmaintenanceProvides persistent long-term memory for AI agents with semantic search and activation-based decay. Enables AI systems to remember across sessions through layered memory architecture and automatic context-aware retrieval.31MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to have persistent associative memory across sessions by storing memories, discovering associations, and retrieving them via spreading activation.Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/neo37/holographic-memory'
If you have feedback or need assistance with the MCP directory API, please join our Discord server