Skip to main content
Glama

Retract Memory

engram_retract_memory
DestructiveIdempotent

Withdraw an exact private memory that should no longer guide agents. Unlike engram_store with supersedes_memory_ids, this needs no replacement and keeps the content for explicit restoration. Unlike engram_delete_memory, it is reversible. Returns JSON memory_id, RETRACTED status and already_retracted.

Get memory_id from recall/context; provide a non-sensitive reason, 1–1000 characters. Only the creator or a human workspace OWNER may withdraw it; team read access is not write authority. Current retrieval excludes it and source-dependent patterns. Recovery suppresses free text in referencing journals rather than replay withdrawn guidance. Start a clean session for new work or restore the source. Repeating is idempotent. Public-bank and superseded records are excluded. Consumes daily call quota. OAuth: memory:write.

Input Schema

NameRequiredDescriptionDefault
reasonYesWhy this knowledge should stop guiding agents, 1–1000 characters. No secrets or copied sensitive content.
memory_idYesExact id from a recalled memory; do not substitute a repository name, URL, or the memory text.

Output Schema

NameRequiredDescriptionDefault
textYesThe same bounded payload as content[0].text; interpret it using format. JSON text contains the endpoint-specific fields described by this tool.
formatYesPayload encoding: Markdown context/checkpoint, serialized JSON data, or plain confirmation text.
truncatedYesTrue when the payload exceeded 120,000 characters and was cut with a notice. Narrow the request; truncated JSON is not parseable.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: names the returned JSON fields (memory_id, RETRACTED status, already_retracted), the authorization model (creator or human workspace OWNER; team read access is not write authority), the retrieval effect (excludes the memory and source-dependent patterns), recovery semantics, quota consumption, and the OAuth scope memory:write. This is unusually rich disclosure for a mutating 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?

Front-loaded with the core purpose and the two sibling comparisons, and every sentence carries information (permissions, idempotency, exclusions, quota). However, some phrasing is dense jargon ('source-dependent patterns', 'suppresses free text in referencing journals') that could cost clarity for marginal compression.

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

Completeness5/5

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

An output schema exists and annotations cover the safety profile, yet the description still supplies the permission model, idempotency behavior, exclusion cases (public-bank/superseded records), and quota/auth requirements. Nothing an agent needs to invoke it correctly is missing.

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 the baseline is 3, but the description adds sourcing guidance not present in the schema ('Get memory_id from recall/context') and reinforces the non-sensitive 1–1000 character reason constraint. It adds genuine value beyond the structured fields.

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+resource ('Withdraw an exact private memory') and immediately distinguishes itself from two siblings: engram_store with supersedes_memory_ids (no replacement needed) and engram_delete_memory (this one is reversible). An agent can differentiate without opening any schema.

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

Usage Guidelines5/5

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

Explicitly names alternatives and the conditions selecting them ('Unlike engram_store...', 'Unlike engram_delete_memory...'), tells the agent where to source memory_id (recall/context), and guides next steps after the operation (start a clean session or restore the source). No inference required.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources