memoryweb
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MEMORYWEB_DB | No | Override the default database path. | ~/.memoryweb.db |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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:
|
| 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 |
| visualise | Generate a Mermaid.js flowchart. Pass |
| 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
| 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/corbym/memoryweb'
If you have feedback or need assistance with the MCP directory API, please join our Discord server