Skip to main content
Glama

Enumerate Memory Facts

enumerate_memory_facts

Deterministic fact-table extraction for aggregation questions and curated ESI lookups. Returns a structured row set (subject, predicate, object, date, session_id, confidence) instead of prose. Use this for 'how many', 'total', 'list all' questions — count the rows instead of hoping the LLM enumerates correctly. For curated ESI facts, pass predicate and optional projectionVersionTag; then query is optional and the server performs an exact predicate lookup without text search. Includes missing_dimensions to flag what might not have been found. Pass mode: "aggregation" (with FEATURE_AGGREGATION_PREDICATE_EXPANSION=true on the server) to enable: synonym expansion for pickup/return/acquire verbs, category-broadened counts from entity_categories, entity_type filters (expected_entity_types), and per-object dedup (dedup_by_object).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNo
as_ofNo
limitNo
queryNo
categoryNo
predicateNo
predicatesNo
subject_matchNo
dedup_by_objectNo
expand_synonymsNo
projectionVersionTagNo
dedup_by_subject_rootNo
expected_entity_typesNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses determinism, the structured row set, the inclusion of missing_dimensions, and the exact predicate lookup mode without text search. It also mentions the feature flag for aggregation behavior. It does not explicitly state whether the tool is read-only or describe side effects, but the 'extraction' framing implies a non-mutating operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and dense, packing multiple ideas into a single paragraph without clear structure. It is not front-loaded with a high-level summary before diving into mode details and feature flags. While every sentence carries some information, it could be better organized with bullet points or separated paragraphs for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's primary use cases, output format, and aggregation mode, but it omits explanations for many parameters (as_of, limit, category, etc.) and does not fully elaborate on the interaction between modes and parameters. Given the tool's complexity and the presence of an output schema, the description is not complete enough for an agent to confidently use all features without additional inference.

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?

The input schema has 13 parameters and zero descriptions (0% coverage). The description mentions only a subset: query, predicate, projectionVersionTag, mode, dedup_by_object, and expected_entity_types. It leaves as_of, limit, category, predicates, subject_match, expand_synonyms, and dedup_by_subject_root unexplained. This is a significant gap given the schema provides no descriptions, so the description does not sufficiently compensate.

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 the tool's function: 'Deterministic fact-table extraction for aggregation questions and curated ESI lookups.' It specifies the output format (structured row set) and distinguishes from prose-generating alternatives by targeting 'how many', 'total', 'list all' questions. The focus on counting rows rather than relying on LLM enumeration differentiates it from sibling tools.

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 explicitly says 'Use this for how many, total, list all questions' and contrasts with 'hoping the LLM enumerates correctly.' It provides specific instructions for curated ESI facts (pass predicate and optional projectionVersionTag) and explains the aggregation mode and its server-side requirement. However, it does not explicitly name alternatives or state when not to use it, so it falls short of a 5.

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