Skip to main content
Glama

witness

Generate a deterministic receipt of the store state behind an answer; attach after recall to prove which revision was used and detect later changes or staleness.

Instructions

HYDRATION WITNESS: a compact, deterministic receipt of the store state your answer was derived from — "this answer reflects store state as of revision X". Call it right after recall() and attach the result to the answer; any later write/supersession/revert/erasure changes the digest, and verify_witness() makes that visible. When write receipts are enabled it is anchored to the tamper-evident write chain. No LLM.

bind_sources=True also pins the SOURCES the answer came from, closing the VERIFY → USE window: the store can be untouched while the world the memory describes has moved. Pass record_ids — the ids recall() returned — so the pin covers what the answer actually used rather than every source in the store. verify_witness then returns stale_at_use.

THIS ARGUMENT DID NOT EXIST UNTIL NOW, and that is the point of adding it. 2.11.0 shipped the window and wired it to nothing an agent can call: witness() took no arguments, so the feature was reachable only from Python — which is not how this server is used. Same shape as attest() one release earlier, found the same way, by asking whether the mechanism has an input rather than whether the code is correct.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
record_idsNo
bind_sourcesNo
Install Server

TDQS

A4.3/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 behavioral burden. It discloses that the tool is deterministic, involves no LLM, that later writes/supersessions/reverts/erasures change the digest, and that tamper-evident anchoring applies when write receipts are enabled. This is strong behavioral context, though it does not explicitly state whether the tool is side-effect-free.

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 core guidance is front-loaded and useful, but the final paragraph about version history and how the argument 'did not exist until now' is editorializing that does not help an agent invoke the tool. The description is reasonably structured but not every sentence earns its place.

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?

For a two-parameter tool with no output schema and no annotations, the description provides enough context to call it correctly: when to call, what the receipt represents, what the parameters do, and how verification surfaces staleness. It does not spell out the exact return shape, but the conceptual description of a digest-like receipt is adequate for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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, and it does. It explains that record_ids should be the IDs recall() returned so the pin covers what the answer actually used, and that bind_sources=True pins the sources and closes the VERIFY→USE window. Both parameters receive meaningful semantics beyond their raw schema types.

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 that witness produces a compact, deterministic receipt of the store state an answer was derived from, and explicitly positions it as something to call after recall() and attach to the answer. It distinguishes itself from verify_witness by describing it as the thing being verified rather than the verifier.

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 when-to-use guidance: 'Call it right after recall() and attach the result to the answer.' It also explains how to use bind_sources and record_ids for pinning. It does not explicitly state when not to use it or compare it to alternatives beyond verify_witness, so it falls just 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.

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DanceNitra/inspeximus'

If you have feedback or need assistance with the MCP directory API, please join our Discord server