Skip to main content
Glama

Recall project memory

recall
Read-onlyIdempotent

Search saved project memories by keyword, tags, files, or scope to retrieve decisions, gotchas, and TODOs before asking users to repeat context.

Instructions

Search saved memories with keyword/CJK-aware ranking (title, tags, files, content; importance and recency weighted). Filter by type, tag, or scope. Use before asking the user to repeat context.

Input Schema

NameRequiredDescriptionDefault
tagsNo
limitNo
queryNoKeywords; empty returns recent/high-importance entries.
scopeNoall
typesNo
include_doneNo
include_archivedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so safety is covered. The description adds real behavioral context beyond that: the ranking is a blend of keyword match across specific fields plus importance and recency weighting, which tells the agent why result order may not be pure keyword relevance. It omits nothing critical for a read tool, though it says nothing about result volume/pagination behavior.

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?

Three compact sentences, front-loaded with the core action and ranking model. The middle 'Filter by type, tag, or scope' sentence largely restates the schema's enum fields, but it is short enough not to be wasteful.

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?

For a 7-parameter tool with near-zero schema description coverage and no output schema, the description covers the search model and filters but leaves limit, include_done, and include_archived unexplained — notably the default exclusion of done/archived entries. Adequate to call correctly, but not complete.

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

Parameters3/5

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

Schema coverage is only 14% across 7 params, so the description has to compensate. It does explain the query semantics (keywords, CJK-aware) and the type/tag/scope filters, but says nothing about limit, include_done, or include_archived — the last two being defaults that silently hide todo and archived memories, a behavior an agent should know about.

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 saved memories') plus the ranking model (keyword/CJK-aware, title/tags/files/content, importance and recency weighted), which an agent can distinguish from the write-oriented 'remember' sibling. It stops short of explicitly contrasting with siblings like project_brief or context_pack, but the action is unambiguous.

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

Usage Guidelines3/5

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

'Use before asking the user to repeat context' gives one concrete triggering situation, which is genuinely useful. However, there is no guidance on when not to use it or which sibling (project_brief, context_pack, status) to prefer for related retrieval needs, leaving alternatives to inference.

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