Skip to main content
Glama

mem_recall

Searches promoted project memory using task terms before repository exploration, helping coding agents recall architecture decisions, patterns, and bug fixes across sessions.

Instructions

Call at the start of non-trivial repository work before exploring, with task key terms, unprompted. Search promoted project memory before expanding selected records.

Input Schema

NameRequiredDescriptionDefault
modeNocompact (default): snippets; context: selected content.
limitNo
queryYesNon-empty task search terms.
temporalNocurrent (default) or historical guidance.
project_keyYesVerified project_key, copied verbatim; never derived.
budget_charsNo
correlation_idNo
finalize_answerNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.6.2
    • changedInput schema / properties / mode / description
      Previous value: -"compact (default): bounded snippets; context: selected content."New value: +"compact (default): snippets; context: selected content."
    • removedInput schema / properties / project_key / minLength
      Removed value: -1
    • removedInput schema / properties / query / minLength
      Removed value: -1
    • changedInput schema / properties / temporal / description
      Previous value: -"current (default): current guidance; history: historical records."New value: +"current (default) or historical guidance."
  2. Changed4 schema fields changedv0.6.1
    • changedInput schema / properties / mode / description
      Previous value: -"compact (default) returns bounded snippets; context adds selected memory content."New value: +"compact (default): bounded snippets; context: selected content."
    • changedInput schema / properties / project_key / description
      Previous value: -"Exact opaque project_key copied verbatim from verified native identity; never derive it from a display name, path hint, remote, branch, worktree name, host ID, listing, or recalled content."New value: +"Verified project_key, copied verbatim; never derived."
    • changedInput schema / properties / query / description
      Previous value: -"Non-empty search string for promoted project memory."New value: +"Non-empty task search terms."
    • changedInput schema / properties / temporal / description
      Previous value: -"current (default) searches current guidance; history includes historical records."New value: +"current (default): current guidance; history: historical records."
  3. Changed20 schema fields changedv0.5.6
    • addedInput schema / properties / budget_chars
      Added value: +{
      +  "type": "number"
      +}
    • addedInput schema / properties / correlation_id
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / debug
      Removed value: -{
      -  "description": "Include retrieval defaults and semantic input sources",
      -  "type": "boolean"
      -}
    • addedInput schema / properties / finalize_answer
      Added value: +{
      +  "type": "boolean"
      +}
    • removedInput schema / properties / hyde
      Removed value: -{
      -  "description": "Request HyDE query expansion when configured",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / limit / description
      Removed value: -"Maximum evidence items (default: 5)"
    • removedInput schema / properties / limit / maximum
      Removed value: -20
    • removedInput schema / properties / limit / minimum
      Removed value: -1
    • changedInput schema / properties / mode / description
      Previous value: -"compact returns evidence lines; context includes retrieved text"New value: +"compact (default) returns bounded snippets; context adds selected memory content."
    • removedInput schema / properties / project
      Removed value: -{
      -  "description": "Optional project filter",
      -  "type": "string"
      -}
    • addedInput schema / properties / project_key
      Added value: +{
      +  "description": "Exact opaque project_key copied verbatim from verified native identity; never derive it from a display name, path hint, remote, branch, worktree name, host ID, listing, or recalled content.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / properties / query / description
      Previous value: -"Recall/search query"New value: +"Non-empty search string for promoted project memory."
    • removedInput schema / properties / scope
      Removed value: -{
      -  "description": "Optional scope filter",
      -  "enum": [
      -    "project",
      -    "personal"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / session_id
      Removed value: -{
      -  "description": "Optional session filter",
      -  "type": "string"
      -}
    • addedInput schema / properties / temporal
      Added value: +{
      +  "description": "current (default) searches current guidance; history includes historical records.",
      +  "enum": [
      +    "current",
      +    "history"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / time_from
      Removed value: -{
      -  "description": "Optional inclusive created_at lower bound",
      -  "type": "string"
      -}
    • removedInput schema / properties / time_to
      Removed value: -{
      -  "description": "Optional inclusive created_at upper bound",
      -  "type": "string"
      -}
    • removedInput schema / properties / topic_key
      Removed value: -{
      -  "description": "Optional exact topic_key filter",
      -  "type": "string"
      -}
    • removedInput schema / properties / type
      Removed value: -{
      -  "description": "Optional observation type filter",
      -  "enum": [
      -    "decision",
      -    "architecture",
      -    "bugfix",
      -    "pattern",
      -    "config",
      -    "discovery",
      -    "learning",
      -    "session_summary",
      -    "manual"
      -  ],
      -  "type": "string"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "query"
      -]New value: +[
      +  "project_key",
      +  "query"
      +]
  4. First observedv0.3.7

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden; it does disclose a two-stage retrieval workflow (search snippets, then expand selected records) and that results are pre-promoted memory. However, it says nothing about what finalize_answer, correlation_id, or budget_chars do, what the response looks like, or whether the operation has any side effects. Useful workflow context, but not enough for an 8-parameter tool without annotations.

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?

Two short sentences with the imperative and timing front-loaded; nothing is filler. The phrase 'with task key terms, unprompted' is slightly awkward but still parses as useful guidance.

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

Completeness2/5

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

For a tool with 8 parameters, no annotations, and no output schema, the description covers purpose and timing but omits the semantics of most parameters and the shape of results. An agent would need to open the schema and still lack clarity on finalize_answer and correlation_id.

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

Parameters2/5

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

At 50% schema coverage, the description must compensate, and it only hints at 'query' ('with task key terms') and implicitly at mode via 'expanding selected records'. The remaining parameters (project_key, limit, temporal, budget_chars, correlation_id, finalize_answer) get no explanation in the description beyond the schema's own text.

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

Purpose4/5

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

The description names a specific action (search promoted project memory) and adds scope ('promoted', 'project memory') that is more than a restatement of the tool name. It doesn't explicitly contrast with siblings like mem_context or mem_get, leaving the agent to infer the boundary.

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?

It gives a clear trigger ('at the start of non-trivial repository work, before exploring') and says to call it unprompted, plus a follow-up step ('before expanding selected records'). It stops short of naming which sibling to use instead when the task isn't repository work.

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