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 verified durable decisions, discoveries, failures, conventions, and continuation handoffs. For a direct promoted memory other than a handoff, write memory.content as concise labeled Result, Rationale, Scope, and Caveat / safe action lines. Omit Scope or Caveat / safe action when it does not apply, and never invent details to fill the template. Keep evidence compact and factual. Handoff memories keep the dedicated Objective, Completed, First pending action, Blockers, and Key files/checks format and require a stable workstream topic_key; close a finished handoff by saving its outcome under the same topic_key. Send exactly one branch: evidence (optionally + memory for a direct promoted save; structured evidence with metadata forbids memory and requires event_key plus the session pair), observation (requires event_key; session scope also requires the session pair and coverage), observation_review or observation_promotion (each requires event_key plus the session pair). Supply root_session_key and harness together or omit both. |
| mem_recallB | Search promoted project memory with a non-empty query before expanding selected records. temporal="current" (default) searches current guidance; temporal="history" includes historical records. mode="compact" (default) returns bounded snippets; mode="context" adds selected memory content. |
| mem_contextC | Build bounded handoff-first continuity. project_key is always required. Supply both root_session_key and harness for session context, or omit both for project context. |
| mem_getA | Expand one selected memory, summary, observation, or evidence id returned by a prior tool result. Set history:true to include predecessor lineage for memory, summary, or observation records; evidence ids return evidence without lineage. |
| mem_projectA | Inspect project views without mutation. action="list": no fields required. action="timeline": project_key required; optionally since, until, cursor, limit, and budget_chars. action="briefing", "summaries", or "observations": project_key required; optionally supply both root_session_key and harness to select that session's summaries/observations (briefing still includes project-wide memories). action="history": id required from a prior result. temporal filters summaries/observations, not timeline. list returns at most 256 exact aliases per project plus aliasCount and aliasesTruncated metadata. |
| mem_sessionA | Record verified root lifecycle events; never use it as an ordinary save. summary is optional and only valid for operation="checkpoint_pre_compact" with kind="checkpoint" or operation="finalize" with kind="final". summary.coverage starts at 1 and its to_sequence must advance the current ending sequence for this session and kind. Each claim's support_ids must be evidence ids from this project_key + root_session_key/harness session inside summary.coverage. |
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
Each tool has a distinct role: mem_save writes, mem_get expands a specific id, mem_recall searches, mem_context builds continuity, mem_project inspects views, and mem_session records lifecycle events. However, the retrieval-oriented tools (mem_recall, mem_context, mem_project) overlap conceptually, and mem_save vs mem_session require explicit guidance ('never use it as an ordinary save'), signaling residual ambiguity.
All six tools use a consistent mem_ prefix followed by a concise snake_case noun/verb (mem_get, mem_save, mem_recall, mem_context, mem_project, mem_session). The pattern is predictable and uniform throughout.
Six tools is well-scoped for a memory server, covering write, expand, search, context, project inspection, and lifecycle in a compact surface. Each tool clearly earns its place with no redundancy or padding.
The surface covers the full memory lifecycle: saving, searching, expanding, context building, project inspection, and session lifecycle recording. A delete/forget or update operation appears absent, a minor gap agents could work around in an append-oriented memory model.