Skip to main content
Glama

remember

Save important facts, preferences, plans, promises, and corrections as self-contained long-term memories; update existing entries by replacement ID while preserving history.

Instructions

Save something the moment it comes up; don't wait to be asked or for the conversation to end. Worth saving: facts about the person and the people around them, likes and dislikes, plans and dates, promises either of you made, how they want to be treated, and corrections to anything you had wrong. Write one self-contained sentence that will still make sense months from now. If it updates something you already remember, pass that memory's id from recall as replaces: the new version takes over and the old one is kept as history. Skip small talk; the nightly pass picks that up from logged conversations. Returns { data: { id, created, replaced } }.

Input Schema

NameRequiredDescriptionDefault
tagsNoFree-form labels.
typeNoOne of fact, event, preference, relationship, boundary, habit, decision, note, or world_fact for general knowledge about the world rather than about anyone. Defaults to fact, or to the replaced memory's type.
reasonNoWith replaces: a short note on what changed.
contentYesOne self-contained sentence to remember.
fact_keyNoOptional stable key such as 'user:favorite_coffee'. Usually leave it out. If a memory with this key exists it is replaced, keeping the old version as history.
replacesNoId of the memory this one updates (from recall). The old version is kept as history.
namespaceNoMemory space to use. Defaults to 'default'. Ignored when the API key is bound to a fixed namespace.
confidenceNo0 to 1, how sure you are. Defaults to 0.8.
importanceNo0 to 1, how much this matters. Defaults to 0.6.
authored_byNoOptional signature marking this as hand-written; it ranks above memories distilled overnight.
valid_as_ofNoWhen this became true (ISO date or datetime), if it is not today.
response_tendencyNoOptional: how you want to respond when this memory comes up.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.1.0

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare the write profile (readOnly=false, destructive=false, idempotent=false); the description adds the important non-obvious behavior — superseded memories are kept as history rather than overwritten — and predicts the response shape. It does not address duplicate handling, which matters given idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the primary imperative ('Save something the moment it comes up'), then qualification list, then mechanics. Slightly dense — the middle list of worth-saving categories is long — but every clause carries instruction the agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, yet the description supplies the return shape ({ data: { id, created, replaced } }), which closes the main completeness gap. Combined with usage rules and the replacement semantics, an agent has everything needed to invoke this correctly on the first try.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description still adds value by explaining the replaces workflow end-to-end (take the id from recall, new version takes over, old kept as history) and by giving durability guidance for content ('still make sense months from now'). It says nothing about confidence, importance, tags, or fact_key, which the schema alone must carry.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and output ('save something', 'write one self-contained sentence') and immediately scopes it to durable personal facts rather than chatter. Clearly separable from siblings like log_conversation and recall, which it names by implication ('the nightly pass', 'id from recall').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit timing guidance ('the moment it comes up; don't wait to be asked'), an enumerated list of what qualifies, an explicit exclusion ('Skip small talk; the nightly pass picks that up from logged conversations'), and the exact condition for choosing replaces over a plain save.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.