Skip to main content
Glama

memory_recall

Retrieves stored decisions, outcomes, and learnings for a specific repo or file path, so you can see what shipped recently and trace each record to its source session turn.

Instructions

Recall memory records BY REPO OR PATH (not by topic -- use memory_search for that). 'outcome' alone answers 'what shipped here lately'. Ordered kind-priority then recency. Read the turns around a record with get_code_session id=<session_id> turn=<turn_idx>. Records carry links to their sources when known: sha (the commit the session was on), paths (files it names, up to 5), ref_url (the ref's forge page). Open them directly; they locate sources, they do not report current state. Replaced records are hidden and paraphrases of one fact are served once with seen_in; every record carries as_of.

Input Schema

NameRequiredDescriptionDefault
kindNoOne or more of: outcome, decision, learning, blocker, preference
pathNoOnly records whose paths[] includes this file
repoNoRepo remote URL, absolute path, or short repo name (e.g. "acme/payments" or "owner/repo")
limitNoMax records to return, a whole number 1-20 (default 10)
scopeNoOnly records of this scope: "project" (about one repo, the default a record gets) or "global" (a rule or fact bigger than one repo). Omit for both.
durable_onlyNoDefault true -- session-scoped records never push, but can still be recalled with this off
recall_tokenNoThe recall_token line from this session's Membral preamble, if you have one. Only logged to link this call to that preamble; it never changes the results.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does: it discloses result ordering (kind-priority then recency), dedup semantics (replaced records hidden, paraphrases served once with seen_in), the as_of timestamp on every record, and an explicit caveat that links locate sources rather than report current state. That is unusually rich behavioral context for a read tool.

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?

Purpose and the memory_search exclusion are front-loaded in the first clause, and every subsequent sentence carries new information. The style is telegraphic (fragments like 'Ordered kind-priority then recency', em-dash asides), which is efficient but slightly dense to parse on first read.

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

Completeness4/5

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

Covers return shape (links, seen_in, as_of, hidden replaced records), result ordering, and follow-up navigation, which is a lot for a tool with no output schema and no annotations. It does not mention pagination or whether truncated result sets are signaled, a minor gap for a 7-parameter read tool.

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 baseline is 3; the description still adds meaning by showing that kind='outcome' alone is a valid, useful call shape and by framing path/repo as the primary selectors. It does not add anything for scope, durable_only, or recall_token beyond the schema, so it is an incremental gain rather than full compensation.

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 specific verb (recall) and resource (memory records) and immediately bounds the scope: by repo or path, not by topic. It names the sibling memory_search as the tool for the excluded case, so an agent can pick between them without opening either schema.

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

Usage Guidelines4/5

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

Explicit routing to memory_search for topic lookups and to get_code_session for surrounding turns, plus a concrete usage hint ('outcome' alone answers 'what shipped here lately'). It does not address when to prefer memory_resolve or the list_* siblings, so the alternative coverage is partial rather than complete.

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