Skip to main content
Glama

sassy_memory_recall

Read-onlyIdempotent

Retrieve a stored memory record by exact key match to get its full details and access count. Use when you know the precise key; otherwise search instead.

Instructions

Read-only: fetches one memory record by exact key match (fetching also bumps the record's access counter). key (required) must match exactly — if you do not know the key, use sassy_memory_search instead. Returns {"found", "memory", "error"} where memory is the full record (key, value, tags, priority, project, created_at, updated_at, access_count); when no record matches, found is false and error names the key. Use when you know precisely which record you need, e.g. a task state key from sassy_memory_handoff or sassy_memory_context. It does not search text: for keyword discovery use sassy_memory_search, and for the whole session-start bundle use sassy_memory_context.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorYes
foundYes
memoryYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv1.15.1
    • addedOutput schema / $defs
      Added value: +{
      +  "MemoryRecord": {
      +    "properties": {
      +      "access_count": {
      +        "title": "Access Count",
      +        "type": "integer"
      +      },
      +      "created_at": {
      +        "title": "Created At",
      +        "type": "number"
      +      },
      +      "key": {
      +        "title": "Key",
      +        "type": "string"
      +      },
      +      "priority": {
      +        "title": "Priority",
      +        "type": "string"
      +      },
      +      "project": {
      +        "title": "Project",
      +        "type": "string"
      +      },
      +      "tags": {
      +        "title": "Tags",
      +        "type": "string"
      +      },
      +      "updated_at": {
      +        "title": "Updated At",
      +        "type": "number"
      +      },
      +      "value": {
      +        "title": "Value",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "key",
      +      "value",
      +      "tags",
      +      "priority",
      +      "project",
      +      "created_at",
      +      "updated_at",
      +      "access_count"
      +    ],
      +    "title": "MemoryRecord",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / properties / error
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "title": "Error"
      +}
    • addedOutput schema / properties / found
      Added value: +{
      +  "title": "Found",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / memory
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/MemoryRecord"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • removedOutput schema / properties / result
      Removed value: -{
      -  "title": "Result",
      -  "type": "string"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "result"
      -]New value: +[
      +  "found",
      +  "memory",
      +  "error"
      +]
    • changedOutput schema / title
      Previous value: -"sassy_memory_recallOutput"New value: +"RecallResult"
  2. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

The description discloses the access-counter bump as a side effect beyond the annotations (which only state readOnlyHint, idempotentHint, destructiveHint). It also clarifies the return structure and the 'found: false' error behavior, and states it does not search text. This adds meaningful context that the annotations do not cover.

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?

The description is fairly long but every sentence contributes value—core function, return shape, side effect, and usage alternatives are all covered. It is front-loaded with the primary purpose and the exact-match requirement, and it avoids filler. Slightly long for a single-parameter tool, but efficient in content.

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 low complexity (one required parameter), the presence of an output schema, and annotations that cover safety, the description is exceptionally complete. It explains the exact-match requirement, the return fields, the side effect, and when to use alternatives, leaving no gap for correct invocation.

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?

With schema description coverage at 0%, the description carries the full burden for the 'key' parameter. It explains that the key must match exactly and points to alternatives if the key is unknown. It does not specify format or length constraints, but the essential semantics are clearly conveyed.

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 states a specific verb ('fetches') and resource ('one memory record') with the exact matching criterion ('exact key match'), and explicitly distinguishes from the sibling sassy_memory_search by noting it does not search text. This leaves no ambiguity about what the tool does.

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 provides explicit guidance: 'if you do not know the key, use sassy_memory_search instead' and 'Use when you know precisely which record you need, e.g. a task state key from sassy_memory_handoff or sassy_memory_context.' It also names alternatives for keyword discovery and session-start bundles, covering when to use and when not to.

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