nanomem
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NANOMEM_VAULT | No | Path to the vault file | ~/.nanomem/memory.dat |
| NANOMEM_PASSWORD | No | Passphrase for an encrypted vault | |
| NANOMEM_EMBED_URL | No | URL of the embedding model endpoint (defaults to Ollama's nomic-embed-text) | http://localhost:11434 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| nanomem_addA | Store a fact, note, or document into persistent long-term memory. |
| nanomem_searchA | Search persistent long-term memory for relevant past facts and context. A result marked SUPERSEDED was true when it was written and is NOT true now -- do not answer with it, use it only to say what something USED to be. If the result is not the whole answer -- more memories matched than fit, or parts of a multi-part question got nothing -- the reply says so on its last line. Believe that line: it is counted, not estimated. |
| nanomem_historyA | Every value a fact has held, oldest first, with the current one marked. The last entry is the current value. Use this when the user asks what something used to be, when it changed, or whether it changed at all. A fact that never changed returns a single entry, which is an answer, not an empty result. For a chain whose attribute was not declared with |
| nanomem_as_ofA | Answer a question as the memory stood at a past moment. Records written after that moment are not considered, so a value that has since been superseded is returned wherever it was still current. Use this for 'what did I think in March', or to reconstruct past state. |
| nanomem_changesA | What the memory learned in a time window, oldest first, with no query needed. Use this for 'what did I tell you since last week' or to catch up on what changed while away. |
| nanomem_volatilityA | How often each remembered fact actually changes, measured from the memory's own revision log: how many times it has been restated, the typical interval between changes, and how long the current value has stood unconfirmed. Use this to decide which facts are probably stale and worth re-confirming with the user. These are measured statistics, not a prediction. |
| nanomem_statsA | Return current memory vault size and document count. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool has a distinct primary purpose (write, search, temporal history, as-of query, stats, change log, volatility stats), but the temporal tools (history, as_of, changes) overlap in scope and could be confused without careful reading of descriptions. The descriptions do clarify boundaries, so misselection is unlikely but possible.
All tools share the 'nanomem_' prefix, but the second part is inconsistent: some are verbs (add, search), some are nouns (history, stats, changes, volatility), and one is a prepositional phrase (as_of). The pattern is not uniform, though it remains readable and predictable in the prefix.
Seven tools is a well-scoped set for a memory server. Each tool covers a distinct aspect of storing, retrieving, analyzing, and inspecting memory, with no unnecessary bloat or obvious missing core functionality.
The surface covers the core lifecycle: add, search, and temporal/analytical views. There is no explicit update or delete tool, but the memory model appears to handle changes via superseding writes, and search handles superseded values. Minor gap: no direct tool to remove a fact entirely, but this may be intentional.