memstack
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REDIS_URL | No | Redis connection URL | |
| SQLITE_PATH | No | SQLite database path, for example /data/memstack.db | |
| DATABASE_URL | No | Postgres connection URL; the server must support pgvector | |
| MEMSTACK_DIR | No | Directory for disk or Markdown storage, for example /data/memstack | |
| MEMSTACK_ACTOR | No | glama | |
| OPENAI_API_KEY | No | Required for MemStack startup and OpenAI-compatible LLM features | |
| MEMSTACK_STORAGE | No | Storage backend: memory, disk, markdown, sqlite, postgres, or redis | memory |
| ANTHROPIC_API_KEY | No | Alternative LLM provider key | |
| MEMSTACK_EMBED_ON_STORE | No | Embed memories when storing; requires an OpenAI key with embeddings access | false |
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 | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| memory_processA | Store a memory with auto-enrichment (importance scoring, tag extraction, auto-summarization, auto-pruning). This is the primary method for recording interactions. |
| memory_storeA | Store a memory directly without enrichment. Use this when you already have importance/tags or want precise control. |
| memory_store_batchA | Store multiple memories in one call, directly without enrichment. Embeddings (if configured) are computed in a single batched call for efficiency. |
| memory_getB | Get a single memory by ID. Returns null if not found. |
| memory_retrieveB | Retrieve memories for an actor with optional filtering, semantic search, and date range constraints. |
| memory_compile_contextA | Compile memories into an LLM-ready system prompt (markdown formatted, token-budgeted, split into important and recent sections). |
| memory_summarizeA | Summarize old memories into a single summary memory. Compresses N interactions into 1 summary via LLM. |
| memory_pruneA | Prune (delete) memories matching the given strategy. Scoped to a single actor — defaults to the current session actor. Returns the pruned memory IDs and count. Handle with care. |
| memory_purge_actorB | Delete ALL memories belonging to a specific actor. Irreversible. |
| memory_mergeA | Merge multiple memories into one. Uses the highest-importance memory as the base and appends content from the rest. |
| memory_statsB | Get memory statistics: total count, by type, by actor, average importance, and more. |
| memory_deleteA | Delete a single memory by ID. |
| memory_delete_manyA | Delete multiple memories by ID in one call. Returns the number actually deleted. |
| memory_touchA | Bump a memory's recency (last-accessed timestamp) without changing its content, id, or createdAt. |
| memory_exportA | Export a snapshot of memories for backup or migration. Returns { version, memories, exportedAt }. |
| memory_importA | Import memories from a snapshot previously produced by memory_export. Restores each memory as-is, including its original ID. |
| memory_healthA | Check the health of storage, LLM, and embedding connections. |
| memory_dry_run_pruneA | Preview what would be pruned by a given strategy WITHOUT actually deleting. Scoped to a single actor — defaults to the current session actor. Returns the memory IDs that would be removed. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| memory_context | Injects compiled memory context for the current actor |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Actor Memory Context | Compiled LLM-ready context for an actor |
| Actor Memory Stats | Diagnostic stats for actor memory |
TDQS
Scored across 18 tools
Most tools have clearly distinct purposes: store vs process (raw vs enriched), get vs retrieve (by ID vs filtered search), and prune vs purge_actor vs delete. The main potential confusion is between memory_prune, memory_purge_actor, memory_delete, and memory_delete_many, though descriptions clarify scope and irreversibility.
All 18 tools use a uniform memory_ prefix with snake_case verb_noun naming (memory_get, memory_store, memory_prune). Highly predictable and consistent throughout.
18 tools is slightly heavy but each earns its place across store, retrieve, delete, maintenize, export, and health operations. No obvious redundant filler, though a couple of maintenance tools could be consolidated.
Broad lifecycle coverage: store/get/retrieve, delete/purge/prune, export/import, summarize/merge, stats, and health. The one notable gap is a dedicated single-memory content update tool, though merge and touch partially cover edit-like needs.