Skip to main content
Glama

Compare Versions

compare_versions

Temporal-ordered view of all values recorded for an (entity, predicate) pair, with the most-recent-before-as_of flagged as current. Use this when the agent sees contradictory facts ('Rachel moved to Chicago' AND 'Rachel moved to the suburbs') and needs to know which is current. Example calls: {entity:'user', predicate:'mortgage_amount'} returns every mortgage figure you've recorded, current first. {entity:'user', predicate:'family_trip_destination'} resolves the latest family-trip destination across sessions. {entity:'user', predicate:'previous_occupation'} returns the user's earlier roles when they changed jobs. Returns current_value directly plus has_multiple_versions so the caller can signal uncertainty, and may also include a cached narrative summary when FEATURE_CAUSAL_NARRATIVES is enabled.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
entityYes
predicateYes
as_of_currentNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A4.1/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses temporal ordering, current flagging, return of current_value and has_multiple_versions, and an optional cached narrative summary based on a feature flag. This is useful beyond the schema, though it omits error handling or side effects.

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?

The description is a single, organized paragraph covering definition, usage, examples, and return details. Each sentence adds value and there's no fluff, though it is a bit dense and could be broken into clearer sections.

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?

Given an output schema exists, the description doesn't need to detail return values, but it still explains current_value and has_multiple_versions. It addresses the primary use case, examples, and a feature flag. It doesn't cover limitations or errors, but for this tool's scope it's sufficient.

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 0%, so the description must compensate. Entity and predicate are explained through examples, and as_of_current is implied by 'most-recent-before-as_of' but not explicitly defined. The optional nature of as_of_current isn't clarified, leaving some ambiguity.

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 clearly states it provides a temporal-ordered view of all values for an (entity, predicate) pair, flagging the most recent before a cut-off as current. It distinguishes from sibling tools by emphasizing the resolution of current value from historical versions, reinforced by concrete examples.

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 explicitly says 'Use this when the agent sees contradictory facts... and needs to know which is current,' giving a clear trigger scenario. It doesn't mention alternatives or when not to use, but the scenario is specific enough to guide appropriate invocation.

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.

TDQS

C2.8/5.0
Disambiguation2/5

Several tools have overlapping purposes: check_claim and memory_claim_check are the same function with different tiers, get_freshness_report and memory_freshness_report are duplicates, get_correction_chain and compare_versions both trace history, and investigate_question subsumes many other retrieval tools. This will cause agent misselection.

Naming Consistency4/5

Most tools follow a verb_noun pattern (get_constraints, declare_constraint, sync_pull, etc.). Exceptions like memory_claim_check, memory_freshness_report, session_debrief, and verify_before_acting deviate but are relatively few. Overall the naming is readable and mostly predictable.

Tool Count1/5

75 tools is excessive for a memory server. Many are highly niche or direct duplicates (e.g., paid/free versions of the same function). The count far exceeds typical well-scoped servers and introduces cognitive overhead without proportional value.

Completeness3/5

The server covers a wide array of memory, constraint, decision, skill, and sync operations, which is impressive. However, there are notable gaps: no direct delete or edit for memory facts (only corrections/versioning), and no bulk enumeration of all stored items. The redundancy in retrieval tools also suggests an incomplete design.

Resources