Skip to main content
Glama

sassy_memory_remember

Idempotent

Save important information across sessions by creating or updating a persistent memory record with a unique key, value, tags, priority, and project.

Instructions

Mutating: writes a persistent memory record (SQLite, survives server restarts). Upserts by key: if the key already exists the record is fully overwritten (value, tags, priority, project) and updated_at refreshed; otherwise a new record is created. key (required) is the unique identifier — use the naming conventions task_state, pattern, blocker, decision so later lookups work. value (required) is the content. tags is a comma-separated string (e.g. "task-active,tls"). priority defaults to "normal" (critical|high|normal|low); high-priority items appear in the session-start bundle. project scopes the record. Returns {"key", "action": "created"|"updated"}. Use whenever you learn something worth keeping across sessions; use sassy_memory_forget to remove a stale entry.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyYes
tagsNo
valueYes
projectNo
priorityNonormal

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyYes
actionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv1.15.1
    • addedOutput schema / properties / action
      Added value: +{
      +  "title": "Action",
      +  "type": "string"
      +}
    • addedOutput schema / properties / key
      Added value: +{
      +  "title": "Key",
      +  "type": "string"
      +}
    • removedOutput schema / properties / result
      Removed value: -{
      -  "title": "Result",
      -  "type": "string"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "result"
      -]New value: +[
      +  "key",
      +  "action"
      +]
    • changedOutput schema / title
      Previous value: -"sassy_memory_rememberOutput"New value: +"RememberResult"
  2. First observedv0.1.0

TDQS

A5/5.0
Behavior5/5

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

Beyond the annotations, the description discloses the full overwrite semantics, persistence across server restarts, refreshed updated_at field, priority behavior for session-start bundles, and the return shape. It enriches the idempotentHint with concrete upsert-idempotency details and does not contradict any annotation.

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

Conciseness5/5

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

The description is information-dense but every sentence earns its place: mutation first, then upsert semantics, then parameter guidance, then return shape, then usage guidance. Key behavioral facts are front-loaded before parameter details.

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?

Given the tool's complexity normal for a persistent memory write, the description covers parameters, defaults, return values, persistence, naming conventions, and sibling alternatives. Nothing needed to call the tool correctly is missing.

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

Parameters5/5

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

With 0% schema description coverage, the description carries the full parameter burden and succeeds: it provides naming conventions for key, comma-separated format for tags, allowed values and default for priority, and scope semantics for project. This is far more useful than the bare schema.

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?

The description opens with 'Mutating: writes a persistent memory record' and then explains the upsert behavior, distinguishing it clearly from read/search/delete sibling memory tools. The verb is specific ('writes'/'upserts') and the resource is named ('persistent memory record, SQLite').

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?

The description explicitly says 'Use whenever you learn something worth keeping across sessions' and names the alternative for cleanup: 'use sassy_memory_forget to remove a stale entry.' This gives the agent clear when-to-use and when-not-to-use guidance.

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

Deploy Server

Other Tools