Skip to main content
Glama

List version history

layerz_history
Read-only

List the most-recent change history (versions) for a model. Each version is a full snapshot persisted at a single mutation boundary (one chat turn, one user save, one API push, …). Use the returned revision_id (sha256 of the snapshot) with layerz_diff or to detect concurrent writes — a stable revision_id between two reads means the model has not changed. Versions older than the user plan history window (history_days) are filtered out server-side but still stored: hidden_count / oldest_hidden_at say how many are out of window, so an empty versions with hidden_count > 0 means "history exists but is outside the plan window", not "no history". Pinned versions (pinned: true, see layerz_pin_version) always list whatever their age; pinned_count / max_pinned_versions (null = unlimited) report the plan pin cap. Pass since (ISO timestamp) or limit to scope the response. Returns { current_revision_id, current_version_number, history_days, hidden_count, oldest_hidden_at, pinned_count, max_pinned_versions, versions: [{ revision_id, version_number, created_at, trigger_type, actor_user_id, label, conversation_id, pinned }] } — newest first.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax number of versions to return (default 100, clamped to plan retention).
sinceNoISO timestamp lower bound — only versions created at or after this time.
model_idNoTarget model UUID. Required for user-scoped API keys; ignored (or validated against scope) for model-scoped keys.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark the tool as readOnly, and the description adds substantial behavioral detail beyond that: snapshots persist at mutation boundaries, old versions are filtered but stored, hidden_count explains empty results, and pinned versions bypass retention. No contradiction with annotations exists.

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?

The description is long but dense and front-loaded. Every sentence adds operational meaning, such as revision_id stability, hidden_count semantics, and pinned-version behavior. Given the absence of an output schema, the included return-shape summary is necessary rather than redundant.

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?

Since there is no output schema, the description provides the full return shape, retention-window behavior, pin-cap semantics, and ordering ('newest first'). It also clarifies model_id handling for key scopes. The tool is complex, and the description covers the call-relevant details well.

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 limit, since, and model_id. The description mostly restates that since or limit can scope the response, adding little parameter-specific meaning beyond what the schema provides.

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 and resource: 'List the most-recent change history (versions) for a model.' It also defines what a version is and clarifies the relationship to sibling tools like layerz_diff and layerz_pin_version, making the tool's role easy to distinguish.

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?

The description gives clear usage context: the returned revision_id can be used with layerz_diff or to detect concurrent writes, and since/limit can scope the response. It does not explicitly say when to choose this tool instead of layerz_history_for_item or layerz_restore_version, so it lacks full when-not guidance.

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