Skip to main content
Glama

memory_recall

Search persistent project memories using hybrid keyword and vector retrieval to find relevant facts; each result includes its source and citation for verification.

Instructions

Hybrid (BM25 + vector) search over current memories. Every result carries its source (origin, file, git commit) and a citation like [mem:mem_ab12cd34ef].

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "query": "<query>"
    },
    "name": "memory_recall"
  }
}

Input Schema

NameRequiredDescriptionDefault
kNo
typeNo
queryYes
projectNo
include_supersededNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.1/5.0
Behavior3/5

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

With zero annotations the description carries the full burden, and it does disclose two real behavioral traits: the hybrid BM25 + vector ranking approach and the fact that each result carries provenance (origin, file, git commit) plus a citation token. It says nothing about result ordering, cross-project scope, permissions, or behavior when nothing matches, which are the gaps an agent would still have to discover by calling it.

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?

Two short sentences, front-loaded with the mechanism and then the return-value shape. The inline citation example is compact and immediately actionable; nothing is redundant.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the description covers the two things an agent most needs: how matching works and what provenance accompanies each hit. However, with no annotations and four of five parameters undocumented anywhere, an agent still cannot tell what k, type, or project do, leaving a meaningful completeness gap.

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?

Schema description coverage is 0% across five parameters, yet the description never mentions query, k, type, project, or include_superseded. The phrase 'current memories' hints that superseded records are excluded by default, which indirectly relates to include_superseded, but the other four parameters remain undefined in both schema and prose.

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?

States a specific verb and resource ('search over current memories') plus the retrieval method ('Hybrid (BM25 + vector)'), and the scope word 'current' distinguishes it from a full-history tool like memory_history. It never names a sibling to route away from, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no when-to-use / when-not-to-use guidance and no pointer to alternatives such as memory_history or memory_conflicts for non-current or conflicting records. The single word 'current' is the only signal about scope, and it is left implicit rather than stated as a rule.

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