Skip to main content
Glama

Memory history

get_memory_history
Read-onlyIdempotent

Read previous versions of a memory by its current key, including original memory_at and saved contents. History is excluded from normal search. To restore a version, write its contents and memory_at with write_memory and is_archived=false. Read-only. Pass playbook_id as the UUID or GUID of the playbook this call should target.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyYes
limitNo
offsetNo
searchNoOptional text within this memory's history
playbook_idYesUUID or GUID of the target playbook

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so 'Read-only' restates structured data. The description earns credit by disclosing non-obvious behavior: history is excluded from normal search, and restoration is a manual write rather than a tool action. It does not describe pagination behavior despite limit/offset existing.

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?

Four short sentences, front-loaded with the core read action and its scoping constraint before the restore recipe. Each sentence carries information; the trailing playbook_id sentence is the only one that is redundant with the schema.

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?

With no output schema, the description usefully names the return fields ('original memory_at and saved contents'). For a 5-parameter tool it is nearly self-sufficient, missing only pagination/limit semantics and a note on how search interacts with version ordering.

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 only 40%, so the description should compensate but largely does not. It explains playbook_id as 'UUID or GUID of the target playbook', which duplicates the schema's own description, and says nothing about key, limit, offset, or search semantics (e.g., pagination order or what search matches against).

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 precise verb+resource with scope: 'Read previous versions of a memory by its current key.' This clearly differentiates it from sibling read_memory (current version) and search_memory, and it adds the key constraint that history is excluded from normal search.

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 routes the agent to the correct alternative workflow explicitly: to restore, 'write its contents and memory_at with write_memory and is_archived=false.' That is strong when-to-use guidance. It does not, however, contrast against get_memory_context or get_memory_tree, which are also history/context-adjacent siblings.

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.