memkeeper
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MEMKEEPER_STORE | No | Path to the store (default ~/.memkeeper/store.sqlite). | |
| MEMKEEPER_EMBED_DIMS | No | Dimensions for embeddings (e.g., 1536). | |
| MEMKEEPER_MODELS_DIR | No | Directory for models (default ~/.memkeeper/models/). | |
| MEMKEEPER_EMBED_MODEL | No | Model for embeddings (e.g., text-embedding-3-small). | |
| MEMKEEPER_RERANK_MODEL | No | Rerank model (e.g., cohere/rerank-v3.5). | |
| MEMKEEPER_EMBED_API_KEY | No | API key for embeddings API. | |
| MEMKEEPER_EMBED_BASE_URL | No | Base URL for the embeddings API. | |
| MEMKEEPER_EMBED_PROVIDER | No | Embeddings provider (e.g., 'openai' for OpenAI-compatible API). Required for off-device semantic mode. | |
| MEMKEEPER_RERANK_API_KEY | No | API key for rerank API. | |
| MEMKEEPER_RERANK_PROVIDER | No | Rerank provider (e.g., 'openrouter'). | |
| MEMKEEPER_HTTP_WRITE_TOKEN | No | If set, enables write operations on HTTP server. | |
| MEMKEEPER_REQUIRE_SEMANTIC | No | If set to '1', refuse to serve degraded lexical results when semantic unavailable. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| statsA | Report store statistics: total/active memory counts, breakdowns by space, silo, status, and kind, schema version, and database size. Read-only; no side effects. Use to inspect the store's overall state and health, not to retrieve memories (use |
| searchA | Find individual memories ranked by relevance to a query. Semantic-primary when embedding models are loaded, falling back to deterministic BM25/FTS keyword search otherwise; cross-encoder reranked by default. Read-only. Returns scored, individual memory records (with ids) — use this to locate or inspect specific memories. To assemble a prompt-ready context block, use |
| getA | Fetch one memory by its exact id (for example, an id returned by |
| memory_listA | List recent memories in reverse-chronological order for review or cleanup, optionally filtered. Read-only. Use to browse or audit what is stored (including stale or superseded entries); use |
| entity_searchA | Search the entity graph by key, canonical name, alias, or type (substring match). Read-only. Returns entity records, not memories — use it to resolve an entity_key or canonical name from a partial term. For memory content use |
| graph_neighborsA | Traverse the entity graph outward from a starting entity, returning connected entities and the relationships between them up to a bounded depth. Read-only. Use to explore how an entity connects to others (raw graph structure); use |
| graph_contextA | Build a compact, prompt-ready context pack centered on an entity: the entity, its graph neighbors, and the most relevant linked memories, budgeted to a character limit. Read-only. Use when an agent needs ready-to-inject context about one specific entity; use |
| dream_graphA | Preview the graph-maintenance pass in dry-run (proposal-only) mode: surfaces the entity and relationship extractions and merges the nightly |
| rememberA | Write one durable memory the agent should be able to recall later. Mutating: persists a memory (set dry_run to validate without writing). Store exactly one atomic, self-contained fact, decision, preference, or lesson per call — include enough context that it stands alone ("the user deploys from the release branch, never main", not just "release branch"). Do not store secrets or raw transcripts. For a plausible-but-unverified inference, use |
| forgetA | Retire one specific memory by id. Mutating: tombstones the memory (a soft delete that preserves audit history), so it stops surfacing in recall; it is not a hard delete. Set mode='correct' when retiring a memory because it is WRONG (e.g. a surfaced/recalled fact the user contradicted), as opposed to routine cleanup: this records a distinct |
| entity_upsertA | Create or update one entity in the graph projection (register it, rename it, or add aliases). Mutating. The graph is a rebuildable projection over memories, which remain the source of truth — use this to curate entity identity, not to store facts (use |
| relationship_upsertA | Create or update one directed relationship in the graph: subject --relation_type--> object. Mutating. Identify each endpoint by entity_key (preferred) or internal entity_id. The graph is a rebuildable projection over memories — curate structure here, store facts with |
| verifyA | Re-confirm that an existing memory is still accurate as of now, stamping its last-verified time. Mutating: updates verification metadata only — it does NOT change the memory's content or promote it to a durable tier. If the value has CHANGED, do not verify; write a new memory with |
| packA | Assemble a compact, prompt-ready context block from one or more queries: retrieves, reranks, and budgets the top memories into injectable text. Read-only. This is the retrieval path for putting memory into an agent's prompt; use |
| candidate_submitA | Queue a proposed memory for human review instead of writing it to recall directly. Mutating: adds an item to the review queue (it does not enter recall until a human approves it via CLI/dashboard). Use this for plausible-but-unverified inferences; use |
| candidate_listA | List memories in the human-review queue, filtered by review status. Read-only. Use to see what has been proposed via |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
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/teflon07/memkeeper'
If you have feedback or need assistance with the MCP directory API, please join our Discord server