Skip to main content
Glama

emem, the verifiable memory protocol for the physical world

Dereference a memory_token in one round-trip

emem_memory_token_resolve
Read-onlyIdempotent

Parse a emem:fact:<cell64>:<fact_cid> citation handle and return the reading it cites. value, unit, band and kind are on the response at the TOP level, alongside the full signed fact body they were lifted from. Saves the agent from string-splitting the token and chaining GET /v1/facts/<cid> manually. Memory algebra: the resolve operation (https://emem.dev/docs/model.html).

When to use: Call when you hold a memory_token from another agent or an earlier turn and want the value behind it. For a scalar quote value_verbatim, the exact decimal string the fact was signed as: re-typing the JSON number is where measured precision is lost. value and unit are always present, and an explicit null means the fact genuinely has none (an absence has no value; most index bands are dimensionless) rather than a missing field. The response also carries the parsed cell, the fact_cid, the full signed fact and a stable fact_url to hand on. A cid this responder does not hold is a typed 404: try /v1/fetch, or resolve at a mirror.

Example arguments: {"token":"emem:fact:defi.zb493.xoso.zcb6a:cxjiu7l54ujzrpnekp24n4534yojpue4mprddbvevnqtti3lh5bq"}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tokenYesA `emem:fact:<cell64>:<fact_cid>` citation handle to dereference.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / token / description
      Previous value: -"A `memt:<cell64>:<fact_cid>` citation handle to dereference."New value: +"A `emem:fact:<cell64>:<fact_cid>` citation handle to dereference."
  2. Added
  3. Removed
  4. Added

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: the response structure (value, unit, band, kind at top level, full signed fact), the semantics of explicit nulls, the typed 404, and the availability of a stable fact_url. This goes well beyond the annotations and informs the agent of expected outcomes and error handling.

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 longer than strictly necessary but is well-structured: the first sentence states the core purpose, followed by response details, a 'When to use' section, and an example. It is front-loaded with the main action and uses clear sections. While some content (e.g., the doc URL) could be trimmed, the structure makes it easy to scan and the length is justified by the explanatory value.

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?

Despite having no output schema, the description thoroughly explains the response format, including top-level fields (value, unit, band, kind) and the presence of the full signed fact and fact_url. It also covers null semantics and the typed 404 with fallback options. For a single-parameter read-only tool with annotations covering safety, this is complete—nothing an agent needs to call it correctly is missing.

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 input schema has 100% description coverage for the single parameter 'token', which already defines it as a 'citation handle to dereference.' The description repeats the format and gives an example argument, but it does not add new semantic meaning to the parameter itself. The extra details about response fields are more about output than input, so the description adds limited value beyond the schema, warranting the baseline score of 3.

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 opens with a specific verb and resource: 'Parse a `emem:fact:<cell64>:<fact_cid>` citation handle and return the reading it cites.' It clearly distinguishes from manual string-splitting and chaining GET /v1/facts/<cid>, and names the operation 'resolve' in memory algebra. The purpose is unambiguous and differentiated from siblings like emem_memory_token.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description contains an explicit 'When to use' section: 'Call when you hold a memory_token from another agent or an earlier turn and want the value behind it.' It also provides a specific nuance for scalar quotes (value_verbatim to preserve precision) and an alternative for a typed 404: 'try /v1/fetch, or resolve at a mirror.' These are concrete usage conditions and fallbacks, leaving no room for guesswork.

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.