mcp-memory-vault
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MEMORY_VAULT_DB | No | Path to the SQLite database file. Defaults to ~/.mcp-memory-vault/memories.db |
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 | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| rememberA | Store a fact in persistent memory so it survives across sessions. Use this whenever you learn something worth keeping: user preferences, project decisions, environment quirks, follow-ups. Exact duplicates (same content in the same namespace) are never stored twice: the existing memory is returned with "deduplicated": true, and any new tags are merged into it (listed in "merged_tags"). Tags are case-insensitive. Returns the stored memory (id, content, namespace, tags, timestamps) plus "deduplicated", "merged_tags" and a human-readable "message". |
| recallA | Search memories by full text and get the best matches first. Punctuation and filler words ("when", "does", "the", "de", "que"...) are ignored and words also match by prefix, so plain questions work. With the default match="auto", memories containing every term come first; if none do, partial matches are returned instead, ranked by how many terms they contain, and the result carries a "note" saying so. Ranking uses SQLite FTS5 bm25 relevance with recency as tiebreaker. Returns {"query", "terms", "search_mode", "match_mode", "count", "hits"} where each hit has id, content, snippet (matches in [brackets]), matched_terms, namespace, tags, source, created_at, updated_at and age. A "hint" explains what to try when nothing matched. |
| forgetA | Permanently delete one memory by id. Returns confirmation with the id and a truncated preview of what was deleted. |
| list_memoriesA | Browse stored memories, most recent first, without a search query. Returns {"count", "memories": [...]} with expires_at included when a TTL is set. |
| update_memoryA | Edit an existing memory: content, tags, namespace, source or TTL. Prefer this over storing a second, contradicting memory when a fact changes. A change that would make this memory an exact duplicate of another one in the target namespace is refused, and the error names the existing memory. Returns the updated memory plus "updated_fields" listing what changed. |
| memory_statsA | Get vault statistics and health information. Returns total memories, counts per namespace, the most used tags (handy to pick tags consistently), how many have an active TTL, database file size and path, schema_version, and the active search_mode ("fts5" or "like" fallback). |
| export_memoriesA | Export memories as JSON-serializable dicts for backup or migration. Returns {"count", "namespace", "memories": [...]}; feed the "memories" array to import_memories on another vault to migrate. |
| import_memoriesA | Import memories from a previous export_memories call. Each item needs at least a non-empty "content"; namespace, tags, source, created_at, updated_at and expires_at are preserved when present (timestamps with offsets are converted to UTC). Everything is validated first and written in one transaction, so a bad item changes nothing. Exact duplicates (same content + namespace) and items that have already expired are skipped. Returns {"imported", "skipped", "expired", "total_received", "message"}. |
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 8 tools
Each tool has a clearly distinct purpose: remember (create), recall (search), list_memories (browse), update_memory (edit), forget (delete), plus stats and import/export. The descriptions explicitly disambiguate potentially overlapping operations (e.g., recall vs list_memories, remember vs update_memory).
All names use snake_case and are readable, but the pattern is mixed: some are verb-only (remember, recall, forget) while others are verb_noun (list_memories, update_memory, import_memories, export_memories) and one is noun_noun (memory_stats). Consistent casing and clear intent keep it from being confusing.
Eight tools is well-scoped for a persistent memory vault, covering the core lifecycle plus maintenance operations without bloat. Every tool earns its place.
Full CRUD lifecycle is covered (remember, recall/list_memories, update_memory, forget) along with supporting operations for stats and backup/migration via export/import. No obvious dead ends for the stated purpose.