Skip to content

For agents

Tool catalog

All twenty-six memory_* tools, annotated with "use when" guidance for agents.

This is a curated index over the MCP tool reference, shaped for agents deciding which tool to call. Each entry has a one-line purpose, the trigger conditions, and the failure modes you’ll encounter.

For the exact parameter schemas, follow the link in each section.

Read a page by slug.

Use when the user names a page directly, or when you need the canonical content of a slug another tool returned. Failure modes NotFound (slug doesn’t exist), Ambiguity (multiple collections have it). Resolve ambiguity by qualifying the slug.

reference

FTS5 keyword search.

Use when you have exact tokens. Faster than memory_query. The right call when the user uses a proper noun, a code identifier, or a quoted phrase. Failure modes none specific; an empty result set is not an error.

reference

Hybrid semantic + FTS5 query.

Use when the user asks a natural-language question, when paraphrase tolerance matters, or when the right page might be worded differently from the query. Pass depth: "auto" when you need assembled context to drop into an LLM prompt. Otherwise leave depth unset for raw ranked results.

reference

Reverse outbound redaction tokens back to originals (this session).

Use when a redacted read returned tokens like <EMAIL_1> and you need the original value to act on (e.g. to actually send that email). Reversal uses this connection’s in-memory session map and stays entirely local; unknown tokens pass through untouched. Pairs with the redact option on memory_query / memory_search / memory_get.

reference

List pages with filters.

Use when you want everything of a type (page_type: "person"), everything in a wing (wing: "companies"), or a sample of an attached collection. Failure modes none.

reference

Show timeline entries for a page.

Use when you need history (when did X happen?), evidence for an assertion, or to understand how the compiled truth was synthesized.

reference

List inbound links to a page.

Use when you need to know who references this page — context, authority, or co-mentions.

reference

N-hop neighbourhood graph.

Use when the user asks “who’s connected to X?” or you want to find pages two hops away that you wouldn’t otherwise retrieve. Default depth: 2. Set temporal: "all" to include closed intervals.

reference

Create or update a page.

Use when you have material to commit. Always read first if updating; pass expected_version to avoid lost updates. Failure modes Conflict (OCC mismatch — re-fetch and rebase), CollectionReadOnlyError, CollectionRestoringError, InvalidParams for slug or content validation.

reference

Create a typed temporal link.

Use when you’ve found or established a relationship between two pages. Use valid_from and valid_until whenever the relationship has a time bound — this is what makes graph traversal time-aware. Failure modes NotFound (one endpoint doesn’t exist), collection write-gates.

reference

Close a temporal link interval.

Use when a relationship ends (someone left a company, a project closed). Prefer this over removing the link — closed intervals are still queryable history.

reference

List, add, remove tags.

Use when you want to mark a page for later retrieval by category. add and remove are repeatable arrays; an empty call (no add/remove) lists current tags.

reference

Store raw structured data (API responses, JSON).

Use when running an enrich workflow — store the upstream API’s response intact, then extract facts into compiled truth and assertions in a separate write. One row per (slug, source) unless overwrite: true.

reference

Run contradiction detection.

Use when you’ve just written new material that may conflict with existing assertions, or as a periodic maintenance pass. Pass slug to check one page; omit to scan globally.

reference

Log a knowledge gap (privacy-safe).

Use when memory_query returns weak results, or when the user asks something the memory demonstrably cannot answer. By default stores only the SHA-256 hash. See Sensitivity contract before escalating.

reference

List knowledge gaps.

Use when triaging the user’s open questions, or as the work queue for a research skill. resolved: false (default) returns unresolved gaps only.

reference

Mark a knowledge gap resolved by the page that answered it.

Use when you’ve answered a previously-logged gap (from memory_gaps) by writing or finding the page that covers it. Pass the gap id and the answering slug; the gap flips to resolved and drops out of the work queue.

reference

Memory statistics.

Use when sizing the memory (page count, embeddings count, gaps), confirming the active embedding model, or sanity-checking after a major operation.

reference

List collection status.

Use when deciding whether to qualify slugs, when investigating a write that returned CollectionRestoringError, or when reporting status to the user.

reference

Append a turn to a conversation session.

Use when capturing live conversation content for later extraction. Batch turns under a stable session_id; content may contain Markdown horizontal rules safely.

reference

Close a session and queue it for knowledge extraction.

Use when the conversation is over and its turns should be distilled into pages. Idempotent: calling it again reports the current queue position without re-enqueuing.

reference

Mark an action_item page as done or cancelled.

Use when the user completes or drops a tracked action item. Failure modes KindError (page is not an action_item), Conflict (OCC violation).

reference

Start a guided fact-correction dialogue on a page.

Use when the user says a stored fact is wrong. Returns a correction_id plus a confirmation prompt; do not write the change directly with memory_put.

reference

Advance or abandon an open correction dialogue.

Use when responding to the prompt returned by memory_correct. Set abandon: true to discard the dialogue without writing changes.

reference

Create an isolated namespace scope.

Use when partitioning memory per project or per client. An optional ttl_hours auto-destroys the namespace and its pages after the TTL elapses.

reference

Destroy a namespace and all pages within it.

Use when a partition is no longer needed. Irreversible — confirm with the user first.

reference

A rough decision tree for “which tool should I call first?”:

User intent → tool
"Find a thing" → memory_search (exact) | memory_query (semantic)
"Know about X" → memory_get (if slug known) | memory_query
"What's connected" → memory_graph | memory_backlinks
"What changed" → memory_timeline | memory_check
"Capture this" → memory_put (always after a memory_get for updates)
"Note a relationship" → memory_link
"I can't find Y" → memory_gap (then memory_gaps to confirm logged)
"How big / what model" → memory_stats