Thoth-Mem
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| THOTH_DATA_DIR | No | Data directory for SQLite database | ~/.thoth |
| THOTH_HTTP_PORT | No | HTTP REST API port | 7438 |
| THOTH_HYDE_MODEL | No | HyDE generation model id | onnx-community/Qwen2.5-Coder-0.5B-Instruct |
| THOTH_HYDE_ENABLED | No | Enable HyDE dual-input semantic query expansion | true |
| THOTH_KG_LLM_MODEL | No | KG LLM model id | onnx-community/Qwen2.5-Coder-0.5B-Instruct |
| THOTH_HTTP_DISABLED | No | Disable HTTP REST API bridge | false |
| THOTH_HYDE_BASE_URL | No | Optional HyDE provider base URL | unset |
| THOTH_HYDE_PROVIDER | No | HyDE generation provider (transformers_local, ollama, lmstudio) | transformers_local |
| THOTH_KG_LLM_ENABLED | No | Enable optional LLM KG enrichment for long observations | false |
| THOTH_PREVIEW_LENGTH | No | Search result preview length | 300 |
| THOTH_EMBEDDING_MODEL | No | Embedding model id | nomic-ai/nomic-embed-text-v1.5 |
| THOTH_HYDE_TIMEOUT_MS | No | HyDE timeout before raw-query-only fallback | 4000 |
| THOTH_KG_LLM_BASE_URL | No | KG LLM provider base URL for remote providers | unset |
| THOTH_KG_LLM_PROVIDER | No | KG LLM provider (transformers_local, ollama, lmstudio) | transformers_local |
| THOTH_KG_LLM_TIMEOUT_MS | No | KG LLM timeout before deterministic-only fallback | 8000 |
| THOTH_EMBEDDING_BASE_URL | No | Base URL for remote/local API providers | provider-specific |
| THOTH_EMBEDDING_PROVIDER | No | Embedding provider (transformers_local, ollama, lmstudio) | transformers_local |
| THOTH_MAX_CONTENT_LENGTH | No | Max content length (warns, never truncates) | 100000 |
| THOTH_MAX_SEARCH_RESULTS | No | Max search results returned | 20 |
| THOTH_MAX_CONTEXT_RESULTS | No | Max observations in context response | 20 |
| THOTH_EMBEDDING_DIMENSIONS | No | Optional embedding dimensions override | inferred for known models |
| THOTH_DEDUPE_WINDOW_MINUTES | No | Rolling deduplication window | 15 |
| THOTH_KG_LLM_MIN_CONTENT_CHARS | No | Minimum observation size that triggers LLM enrichment | 12000 |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| mem_saveA | Save unprompted as soon as decisions, root causes, failed approaches, or non-obvious conventions are verified. Save durable discoveries and continuation handoffs. Direct promoted memory (not handoff): memory.content uses labeled Result, Rationale, Scope, Caveat / safe action lines; omit inapplicable Scope/Caveat and never invent details. Handoffs: Objective, Completed, First pending action, Blockers, Key files/checks; require a stable workstream topic_key; close a finished handoff by saving its outcome under the same topic_key. Send exactly one branch: evidence, observation, observation_review, or observation_promotion. Supply root_session_key and harness together or omit both. |
| mem_recallB | Call at the start of non-trivial repository work before exploring, with task key terms, unprompted. Search promoted project memory before expanding selected records. |
| mem_contextC | Build bounded handoff-first continuity. project_key required; root_session_key and harness together for session context, neither for project context. |
| mem_getB | Expand one selected record from a prior tool result. |
| mem_projectC | Read-only project views. list: no fields required; returns at most 256 exact aliases/project with aliasCount/aliasesTruncated. timeline: project_key required; accepts only since, until, cursor, limit, budget_chars. briefing/summaries/observations: project_key required; optional session filter selects summaries/observations, not briefing's project-wide memories. history: id required from a prior result. |
| mem_sessionB | Record verified root lifecycle events, never ordinary saves. guide_post_compact content carries host compaction text. |
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 6 tools
mem_save and mem_session both persist information, but mem_session is explicitly limited to lifecycle events. The read-side tools (mem_recall, mem_context, mem_project) have overlapping search/context/view roles, which could cause misselection, though descriptions provide clear trigger guidance.
All tools use a consistent mem_ prefix in snake_case, making names predictable and readable. Minor inconsistency exists because some names are verbs (save, get, recall) and others are nouns (context, project, session), but the pattern is still coherent.
Six tools is well within the ideal range for a focused memory server. Each tool maps to a distinct stage of the memory lifecycle—save, recall, expand, context building, project inspection, and session events—without obvious redundancy.
The surface covers saving, searching, retrieval, context building, project views, and session lifecycle. However, there is no explicit update or delete/forget operation for memories, and listing memories beyond search results or project views is limited, which may hinder correcting or pruning stored knowledge.