Skip to main content
Glama
ianderso
by ianderso

get_record_history

Read-only

Trace the audit history of a Gramps record: who added, edited, or deleted it and when, newest first; filter by field for before/after values.

Instructions

Who added, edited or deleted one record, and when, newest first.

Each change names its transaction: get_transaction shows what it changed. Before gramps-webapi 3.22 the whole transaction log is read instead: slower, and the result says so.

Input Schema

NameRequiredDescriptionDefault
refYesHandle or gramps_id. A deleted record by its handle.
fieldNoOnly the changes to this field of the stored record, each with its value before and after: 'parent_family_list', 'primary_name.first_name'.
limitNoMost recent changes to return.
object_typeYesperson, family, event, place, source, citation, repository, media, note, or tag.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.3.0
    • addedInput schema / properties / field
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Only the changes to this field of the stored record, each with its value before and after: 'parent_family_list', 'primary_name.first_name'."
      +}
  2. Addedv1.2.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only cover readOnly/openWorld, so the description carries the behavioral load and does add real context: results are ordered newest first, and on servers before gramps-webapi 3.22 the whole transaction log is scanned instead (slower, with the result self-reporting this). It still omits whether a missing/deleted record errors versus returning empty history.

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?

Three short sentences, front-loaded with the core question the tool answers, then the sibling relationship, then the version caveat. No sentence is filler; the version note earns its place because it sets performance expectations.

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 must convey the return shape, and it does so reasonably (per-change actor, action, timestamp, ordering, transaction identity). Minor gaps remain around empty/error results and pagination behavior for large histories.

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 explains ref (handle or gramps_id), object_type values, field filters and the limit bound. The description adds no parameter-level detail beyond that, making 3 the correct baseline.

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 concrete verb and resource ('get record history') and specifies the payload: who added/edited/deleted, when, newest first. It is clearly distinguishable from the sibling audit tools list_transactions and get_transaction, which it explicitly names.

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: this tool answers 'who/when changed this record', while get_transaction shows 'what changed'. That is a clear division of labor, but there is no explicit 'don't use this when...' or prerequisite statement, so it stops short of the top score.

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