Skip to main content
Glama

memory_audit

Read-only

Audit a memory store in one read-only pass: see totals, category counts, stale memories, near-duplicate pairs, and expired refs, then update or forget items.

Instructions

One-shot health report for the memory store: totals, category breakdown, stale memories (untouched beyond threshold), near-duplicate pairs (above similarity threshold), and expired refs. Read-only — pair with forget/update to act on findings.

Input Schema

NameRequiredDescriptionDefault
stale_daysNoStale threshold in days (default 30)
max_duplicatesNoCap on duplicate pairs returned (default 20)
similarity_thresholdNoCosine floor for duplicate pairs, 0..1 (default 0.85)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.5.1
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observedv0.4.1

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, and the description's 'Read-only' merely restates that. It does add that the report is 'one-shot' (single call, no follow-up pagination implied) and discloses the finding categories, which is mild extra context, but says nothing about cost, scanning scope, or that thresholds change what is reported.

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 sentences, zero filler. The report content is front-loaded and the follow-up pointer is placed after, so an agent gets the essential information first.

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?

There is no output schema, and the description compensates well by enumerating the five sections the report returns, so an agent knows what to expect. Safety is covered by annotations and all three parameters are documented. Only the absence of any hint about scan cost or result size on large stores keeps it short of 5.

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 description coverage is 100%, with each parameter's meaning, bounds, and default documented in the schema itself. The description references thresholds conceptually ('untouched beyond threshold', 'above similarity threshold') but adds no syntax or units beyond what the schema provides, so the baseline 3 applies.

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+resource ('One-shot health report for the memory store') and enumerates exactly what the report contains: totals, category breakdown, stale memories, near-duplicate pairs, and expired refs. This clearly separates it from siblings like memory_list (raw listing) and find_similar (single-purpose duplicate search).

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?

It points to the follow-up action path ('pair with forget/update to act on findings'), which is genuinely useful routing, but never says when to run this audit versus memory_list, find_similar, or memory_prune, and gives no exclusions. Usage is implied rather than specified.

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