Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MEMLORD_PORTNoServer port8000
MEMLORD_DB_URLNoPostgreSQL connection URLpostgresql+asyncpg://postgres:postgres@localhost/memlord
MEMLORD_BASE_URLNoPublic URL for OAuthhttp://localhost:8000
MEMLORD_OAUTH_JWT_SECRETNoJWT signing secretmemlord-dev-secret-please-change

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

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
store_memoryA

Save a new memory. Idempotent: returns existing if content already stored.

name: human-readable name, unique within the workspace. workspace: name of the workspace to store into. Omit to store as a personal memory. force: skip near-duplicate check and store unconditionally. expires_at: optional UTC expiry; after it passes the memory is hidden from reads.

retrieve_memoryA

Hybrid semantic + full-text search. Returns names + metadata only.

Use get_memory(name=...) to fetch full content of a specific result. Pass workspace= to search only within a specific workspace.

recall_memoryA

Search memories by time expression + semantics. Returns names + metadata only.

Examples: "last week", "yesterday", "about Python last month". Use get_memory(name=...) to fetch full content of a specific result. Pass workspace= to search only within a specific workspace.

get_memoryA

Fetch full content of a single memory by name.

Use only when you already know the name — e.g. after retrieve_memory() or recall_memory() which return names in their results alongside compact snippets. Do NOT use for search — use retrieve_memory() for semantic/text search or recall_memory() for time-based queries like 'last week'. Unlike search, this also returns expired memories (expires_at in the past) — check expires_at to tell; extend it via update_memory to bring one back.

list_memoriesA

Browse all memories ordered by creation date (newest first). Returns full content (not snippets). Use to enumerate or audit without a specific query.

search_by_tagA

Find memories by exact tag match. Returns all results (no pagination).

operation="AND" (default): memory must have ALL specified tags. operation="OR": memory must have AT LEAST ONE of the specified tags. Tags are case-insensitive. Use retrieve_memory() for semantic/text search or list_memories(tag=...) to browse a single tag with pagination.

delete_memoryA

Delete a memory by name. Pass workspace to disambiguate if the name exists in multiple workspaces.

update_memoryB

Update an existing memory identified by name. Only provided fields are changed.

new_name: rename the memory to this name. workspace: disambiguate if the name exists in multiple workspaces. expires_at: set or extend the UTC expiry; omit to leave it unchanged.

move_memoryA

Move a memory to a different to_workspace.

name: name of the memory to move. workspace: name of the target workspace (must be a member with write access). from_workspace: disambiguate source if the name exists in multiple workspaces.

list_workspacesA

List all workspaces you are a member of (personal + shared).

dream_reportA

Candidates for memory consolidation: similar pairs, expired and expiring memories.

Read-only. The report only proposes candidates — reviewing and acting on them (merge, supersede, extend, delete) is done via the regular memory tools. Similar pairs are always within a single workspace, ordered by similarity. Use the dream prompt for the full guided consolidation procedure.

Prompts

Interactive templates invoked by user choice

NameDescription
dreamGuided memory consolidation pass: review similar, conflicting and expiring memories.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 11 tools

Disambiguation4/5

Retrieval tools (retrieve_memory, recall_memory, get_memory, list_memories, search_by_tag) overlap in purpose, but descriptions clearly distinguish semantic/text search, time-based search, direct name lookup, browsing, and exact tag search. CRUD, workspace, and consolidation tools are clearly separate.

Naming Consistency4/5

Almost all tools follow a consistent snake_case verb_noun pattern (store_memory, update_memory, retrieve_memory, etc.). The one outlier is dream_report, which is noun-based rather than verb-based, but the set remains predictable overall.

Tool Count5/5

11 tools is well-scoped for a memory management server. Each tool appears to cover a distinct operation, and the count sits comfortably within the typical 3-15 range without obvious bloat.

Completeness3/5

Core memory lifecycle is covered: store, get, update, delete, move, search, list, and expiry handling. Notable gaps remain: there is no create/delete workspace tool despite list_workspaces, and no tool to add or remove tags despite search_by_tag, which could leave agents unable to set up tag-based searches.

Maintenance

ActivityMaintained
ResponsivenessSlow