Skip to main content
Glama
Pseudogiant-xr

PseudoLife-MCP

Official

memory_history

Read-only

Read an entity's past: inspect every version of a fact slot to see what changed and who set it, or trace dated events to learn what led to the current state.

Instructions

Read an entity's past. SLOT mode (attribute given): every version of that canonical fact slot, oldest→newest, each with writer/session, tx/valid time, and age ("what did this used to be? who set it?") — compaction thins chains past ~30d. CHAIN mode (attribute omitted): the entity's dated fact/entry/edge/lesson events merged oldest→newest ("what led to X?").

Returns: {entity, attribute, count, versions} (slot mode) or {found, entity, count, events} (chain mode).

Input Schema

NameRequiredDescriptionDefault
as_ofNoSlot mode only: ISO-8601 date or epoch seconds, not relative words like 'yesterday'; returns only versions written by then.
entityYesThe subject whose past to read.
attributeNoThe fact slot to read; omit for chain mode.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.18.1
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / as_of / description
      Previous value: -"Slot mode only: ISO-8601 or epoch seconds; returns only versions written by then."New value: +"Slot mode only: ISO-8601 date or epoch seconds, not relative words like 'yesterday'; returns only versions written by then."
  2. Changed3 schema fields changedv0.15.0
    • addedInput schema / properties / as_of / description
      Added value: +"Slot mode only: ISO-8601 or epoch seconds; returns only versions written by then."
    • addedInput schema / properties / attribute / description
      Added value: +"The fact slot to read; omit for chain mode."
    • addedInput schema / properties / entity / description
      Added value: +"The subject whose past to read."
  3. Changed1 schema field changedv0.14.0
    • addedInput schema / properties / as_of
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "As Of"
      +}
  4. First observedv0.11.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the description rightly spends its budget elsewhere: it discloses result ordering (oldest→newest), included metadata (writer/session, tx/valid time, age), and a genuine degradation trait — compaction thins chains past ~30 days. That retention caveat is information an agent cannot get from annotations or schema, though it could say more about pagination or why idempotentHint is false on a read.

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, then the mode branch, with uppercase mode labels making the split scannable. The trailing 'Returns:' block is largely redundant given an output schema exists, which is the only real waste.

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?

For a three-parameter read tool with a full schema and an output schema, the description covers mode semantics, ordering, metadata, and retention limits adequately; return-shape detail is duplicated rather than needed. An agent has enough to call it correctly, with only sibling differentiation left unaddressed.

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%, so the schema already documents `as_of` (slot-only, ISO-8601/epoch, no relative words), `entity`, and `attribute` mode-switching. The description restates the given/omitted mode logic, which is useful framing but adds no syntax or format detail beyond the schema, so the baseline 3 applies.

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?

The description states a specific verb+resource ('Read an entity's past') and precisely delineates two operating modes keyed on whether `attribute` is supplied. It is immediately clear what the tool returns in each mode, but it never names or contrasts itself with the many plausible siblings (memory_recall, memory_get, memory_fact_get, memory_search), so an agent cannot fully distinguish it without reading other schemas.

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?

Gives explicit mode-selection rules ('SLOT mode (attribute given)' vs 'CHAIN mode (attribute omitted)') plus intent examples ('what did this used to be? who set it?', 'what led to X?') that let an agent map a question to the right mode. It stops short of when-not-to-use or naming an alternative sibling for overlapping temporal queries.

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