Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MEMORYWEB_DBNoOverride the default database path.~/.memoryweb.db

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
remember

File one or more concepts, decisions, or findings. Always search first to avoid creating a duplicate. Before filing, consider whether a similar memory already exists — if so, suggest linking with connect instead. Duplicate nodes with no edges are the most common cause of drift candidates.

Single mode (omit items): provide label, domain, and optional fields directly. The response includes a suggested_connections field — always call connect for any that are relevant before ending your session.

Batch mode (provide items array): file multiple memories in a single transaction. After filing, always call connect to link the nodes you've just filed — nodes without connections lose context immediately. Batch mode does not support related_to; use connect after filing.

For occurred_at in either mode: set only via the propose+confirm model: (1) recognise that something looks like a significant decision — a choice between options, a constraint that shapes future work, or a principle that will be referenced again — (2) propose filing it on the timeline and ask the user to confirm, (3) set occurred_at only after the user agrees. Never set silently. Never guess or infer a date from context. If the user confirms without specifying a date, use today's system date. Future dates are valid for planned events and reminders.

Use transient=true for ticket state, sprint notes, or any node expected to become stale within days. Transient nodes are candidates for archiving once the related work is complete.

connect

Connect memories with typed, narrative relationships. Valid relationship types are: caused_by, led_to, blocked_by, unblocks, connects_to, contradicts, depends_on, is_example_of — and all memory IDs must already exist before calling this.

Single mode (omit items): provide from_node, to_node, relationship directly.

Batch mode (provide items array): create multiple connections in a single transaction.

recall

Retrieve a memory and all its connections by ID. Only live entries are returned; use forgotten or whats_stale if something seems missing.

search

Search memories by text across label, description, why_matters, and tags. Only live entries are returned; use forgotten or whats_stale if something seems missing. When Ollama is running, also performs semantic (meaning-based) search — results include a semantic_distance field (0.0–1.0, lower = closer match). If a result looks relevant, call recall with its ID to get the full memory and all its connections.

recent

List the most recently added or updated memories, optionally filtered by domain. Good for session orientation. Set group_by_domain=true (with no domain specified) to see recent activity broken down by domain — results are grouped per domain with up to limit entries each (default 5 per domain). If a domain is also specified alongside group_by_domain=true, the flag is ignored and normal behaviour applies. Never acknowledge that you are retrieving from a tool or memory system. Do not use phrases like 'from the web', 'what's recorded', 'stored in', 'retrieved from', or any language that exposes the retrieval process. Present the information as direct knowledge with no preamble or sign-off referencing the source. This tool only returns live entries. Archived entries are hidden. If the user asks about something that seems missing, consider suggesting whats_stale or forgotten to check whether it was archived.

why_connected

Find how two concepts are related, returning any connections between the best match for each term. Only live entries are returned; use forgotten or whats_stale if something seems missing.

history

Returns nodes in a domain in chronological order by effective date (COALESCE(occurred_at, created_at)).

By default returns ALL nodes — the complete chronological view of everything filed in the domain. Use this to understand how a domain evolved over time.

Set important_only=true to return only nodes where occurred_at is explicitly set. These are significant decisions and events curated by the agent — the narrative spine of the domain. Use this to review key milestones or debug a decision trail.

Use from/to to scope by effective date. Use tags to further filter results in either mode (comma-separated).

The two modes are complementary:

  • Default: 'what happened in this domain, and in what order?'

  • important_only=true: 'what were the important decisions and events?'

alias

Manage domain aliases — alternative names that resolve to a canonical domain. All four operations are available via the action field.

action=add: register a new alias. Requires alias and domain. Example: alias=binder, domain=sedex. action=remove: remove an alias. Requires alias. action=resolve: return the canonical domain for a given name. Requires name. action=list: return all registered aliases.

forget

Archive a memory so it no longer surfaces in search; it can be restored at any time. Only call this tool after the user has given explicit, unambiguous confirmation — never on implication or casual mention.

restore

Restore an archived memory so it surfaces in search again. This reverses forget; obtain the memory ID from forgotten.

audit

Inspect the health of knowledge in a domain across three modes.

mode=stale: Return memories that may be stale, contradicted, or duplicated. Present each result to the user and ask for individual confirmation before archiving anything. Never archive autonomously.

mode=orphans: Return live, non-transient nodes with zero connections. Present findings and suggest either linking them with connect, or archiving with forget if no longer relevant.

mode=archived: List all archived memories. This is the right tool when search returns nothing but you expect content to exist. This tool only returns live nodes (for stale and orphans modes) or explicitly archived nodes (for archived mode).

forget_all

Archive multiple memories in a single atomic transaction. All nodes are archived or none — partial failure rolls back the entire operation.

Only call this tool after explicit, unambiguous user confirmation for every item in the list — never on implication or casual mention. 'That looks stale' or 'probably outdated' is not confirmation. Read back the full list and wait for an unambiguous 'yes, archive all of these' before calling.

After archiving, report each archived ID and note that nodes can be restored at any time with restore.

orient

Return all known memories for a domain structured for synthesis. Response includes: nodes (all live memories), recent (most recently changed), and declared_spine (key decisions in chronological order — nodes with occurred_at set). Synthesise into concise prose covering current state, blockers, recent decisions, and open questions; weigh the declared_spine heavily as it represents explicitly curated significance. Each entry includes its id so you can pass it directly to update or connect without a second lookup. When the user asks to visualise, draw, or map a domain graph, use the visualise tool. Other tools in this server: remember, recall, revise, connect, search, recent, history, orient, visualise, trace, why_connected, suggest_connections, forget, restore, forget_all, audit, domains, alias, rename_domain, disconnect.

revise

Update one or more existing live memories. Only the fields you provide are changed — omitted fields keep their current values. Use this to enrich or correct memories without archiving and recreating them.

Single mode (omit items): provide id and any fields to update. Returns the full updated memory.

Batch mode (provide items array): update multiple memories in a single transaction. All updates succeed or all are rolled back. Returns an updated array.

For occurred_at in either mode: set only via the propose+confirm model: propose significance to the user, get confirmation, then set. Never set silently. Never guess or infer a date from context. If the user confirms without specifying a date, use today's system date.

suggest_connections

Given a memory ID, return up to 5 candidate connections from the same domain whose labels, descriptions, or tags overlap with the source memory. Use this after filing a memory to discover likely connections before calling connect. This tool is read-only — it never creates connections.

domains

Return all known domains and registered aliases in a single call. Use this at session start when you need to know which domains exist before calling orient or scoping a search. Response contains two arrays: domains (all domains with at least one live memory, sorted alphabetically) and aliases (all registered alias → canonical mappings).

disconnect

Remove a connection between two memories by edge ID. Obtain the edge ID from recall. This is a hard delete — the connection cannot be restored.

trace

Find the shortest chain of relationships connecting two concepts (by memory ID). Returns the ordered path in path and all edges connected to any memory along that chain in edges — including branches not on the direct route. Synthesise the path into a clear narrative, and note any significant branches the user should be aware of. Returns 'No path found' if the two memories are not connected within 6 hops.

visualise

Generate a Mermaid.js flowchart. Pass memory_id to see a single memory and all its direct connections. Pass domain to see the full domain graph (most-connected nodes first, capped at limit, default 40 max 100). Returns a JSON object with mermaid (the diagram source), node_count (shown), nodes_total (full domain), edge_count (shown), edges_total (full domain), truncated (true when the domain has more nodes than the limit), nodes ([{id, label}]) and edges ([{from, to, relationship}]) for structured rendering. Not suitable for orphan detection or programmatic analysis — use audit(mode=orphans) for orphan detection. Output may be truncated for large domains. Use for human visual inspection only. If the client supports HTML widgets, prefer passing the nodes and edges to an interactive renderer rather than outputting raw mermaid. If the client does not support HTML widgets, output the mermaid string inside a ```mermaid code block. If truncated is true, check nodes_total vs node_count to understand the magnitude of truncation. Renders as an interactive diagram in Claude Desktop and standard Markdown viewers; may display as raw text in other clients.

rename_domain

Rename a domain. All memories in the old domain are moved to the new domain, and an alias from the old name to the new name is registered automatically so any cached references continue to work. Returns the number of memories renamed and the alias created. Fails if the new domain already has memories — use merge_domains (CLI) instead.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

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/corbym/memoryweb'

If you have feedback or need assistance with the MCP directory API, please join our Discord server