Skip to main content
Glama

Check Fact Freshness

check_fact
Read-onlyIdempotent

Cost preflight before repeated paid or slow source-backed validation, especially across an agent fleet. Use before paid web search, metered scraping, browser/extraction, rate-limited APIs or multi-step validation when the caller already has a known value. Returns SAME_OBSERVED, CHANGED_OBSERVED, CONTESTED, STALE or UNKNOWN. Only SAME_OBSERVED can be considered for caller-policy-gated reuse; every other status requires normal authoritative validation before OBSERVE. SeenRelay never browses or verifies externally.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
factYesSource-backed fact coordinate whose recent shared evidence should be checked.
known_valueYesCaller-known value to compare with recent observations. Mutable observed content is excluded from fact identity.
max_age_secondsNoMaximum age, in seconds, of shared observations the caller is willing to consider. Omit to use the service default.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hiveNoCurrent bounded Hive admission/lease state.
errorNoPresent instead of a decision status when CHECK cannot be admitted or is controlled.
statusNoDecision status when CHECK succeeds. Only SAME_OBSERVED can be considered for reuse, and only under caller policy. CHANGED_OBSERVED, CONTESTED, STALE and UNKNOWN require normal authoritative validation before any OBSERVE.
fact_keyNoCanonical SeenRelay fact identity for this coordinate.
next_stepNoExplicit cold/stale-path instruction: validate the authoritative source normally, then OBSERVE the independently obtained result.
useful_reuse_awardsNoQualified reuse awards attributable to this CHECK under SeenRelay telemetry rules; not a truth or independence score.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$defs": {
      +    "__schema0": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        },
      +        {
      +          "items": {
      +            "$ref": "#/$defs/__schema0"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "additionalProperties": {
      +            "$ref": "#/$defs/__schema0"
      +          },
      +          "propertyNames": {
      +            "type": "string"
      +          },
      +          "type": "object"
      +        }
      +      ]
      +    }
      +  },
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "description": "CHECK result. Exactly one of a decision status or an error is expected; additional evidence fields may be present.",
      +  "properties": {
      +    "error": {
      +      "additionalProperties": {},
      +      "description": "Present instead of a decision status when CHECK cannot be admitted or is controlled.",
      +      "properties": {
      +        "code": {
      +          "description": "Stable machine-readable service/admission error code.",
      +          "type": "string"
      +        },
      +        "detail": {
      +          "description": "Human-readable error detail. A tool error is not evidence that the source value is unchanged.",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "code",
      +        "detail"
      +      ],
      +      "type": "object"
      +    },
      +    "fact_key": {
      +      "description": "Canonical SeenRelay fact identity for this coordinate.",
      +      "type": "string"
      +    },
      +    "hive": {
      +      "$ref": "#/$defs/__schema0",
      +      "description": "Current bounded Hive admission/lease state."
      +    },
      +    "next_step": {
      +      "const": "VALIDATE_THEN_OBSERVE",
      +      "description": "Explicit cold/stale-path instruction: validate the authoritative source normally, then OBSERVE the independently obtained result.",
      +      "type": "string"
      +    },
      +    "status": {
      +      "description": "Decision status when CHECK succeeds. Only SAME_OBSERVED can be considered for reuse, and only under caller policy. CHANGED_OBSERVED, CONTESTED, STALE and UNKNOWN require normal authoritative validation before any OBSERVE.",
      +      "enum": [
      +        "SAME_OBSERVED",
      +        "CHANGED_OBSERVED",
      +        "CONTESTED",
      +        "STALE",
      +        "UNKNOWN"
      +      ],
      +      "type": "string"
      +    },
      +    "useful_reuse_awards": {
      +      "description": "Qualified reuse awards attributable to this CHECK under SeenRelay telemetry rules; not a truth or independence score.",
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed7 schema fields changed
    • addedInput schema / properties / fact / description
      Added value: +"Source-backed fact coordinate whose recent shared evidence should be checked."
    • addedInput schema / properties / fact / properties / locator / properties / scheme / description
      Added value: +"Source-native locator type: RFC 6901-style JSON pointer, stable HTML element id, or stable source-native key."
    • addedInput schema / properties / fact / properties / locator / properties / value / description
      Added value: +"Source-native locator value. json_pointer values must begin with /; locator bytes are otherwise preserved."
    • addedInput schema / properties / fact / properties / qualifiers / description
      Added value: +"Identity-bearing semantic qualifiers. Include only fields needed to distinguish otherwise identical source-backed facts."
    • addedInput schema / properties / fact / properties / source / description
      Added value: +"Stable credential-free absolute HTTP(S) source URL. Tracking parameters are removed; authentication or signature query parameters are rejected."
    • addedInput schema / properties / known_value / description
      Added value: +"Caller-known value to compare with recent observations. Mutable observed content is excluded from fact identity."
    • addedInput schema / properties / max_age_seconds / description
      Added value: +"Maximum age, in seconds, of shared observations the caller is willing to consider. Omit to use the service default."
  3. First observed

TDQS

A4.1/5.0
Behavior4/5

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

The description adds useful behavioral detail beyond the annotations by stating 'SeenRelay never browses or verifies externally,' indicating this is a read-only cache lookup. Combined with readOnlyHint and idempotentHint, this gives a clear picture of side effects. It does not elaborate on error cases, but the core behavior is transparent.

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 compact and well-structured, using short sentences and a clear flow: purpose, usage guidance, return values, and policy implication. The list of expensive alternatives is slightly verbose, but overall it conveys the necessary information without significant padding.

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 the rich schema and annotations, the description covers the core use case, return statuses, and the practical policy for when to trust the result ('Only SAME_OBSERVED can be considered for caller-policy-gated reuse'). It does not explain max_age_seconds behavior or error conditions, but those are secondary given the existing schema descriptions.

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?

The schema description coverage is 100%, with detailed explanations for fact, known_value, and max_age_seconds. The tool description does not add parameter-specific meaning beyond the general context of 'known value' and 'shared observations.' Since the schema already carries the explanatory weight, a baseline score is appropriate.

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 purpose: a cost preflight that checks whether a caller-known value is still fresh against shared observations, returning statuses like SAME_OBSERVED. It distinguishes this from the sibling observe_fact by focusing on reading/checking prior observations rather than recording new ones.

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 explicit conditions for use: 'Use before paid web search, metered scraping, browser/extraction, rate-limited APIs or multi-step validation when the caller already has a known value.' It does not explicitly name the alternative observe_fact or state when not to use it, but the 'when caller already has a known value' condition provides clear 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.