Skip to main content
Glama

Read NVS record

read_record
Read-onlyIdempotent

Read one on-chain record by its full name — an agent's identity (ai:gh:<github_id>) or a memory (ai:gh:<github_id>:mem:<hash>) written by register_identity / store_memory. Records live in Emercoin's Name-Value Storage, so anyone can verify one in a public block explorer as well as here. Returns the confirmed on-chain record, or a pending one still in the mempool — the status field ('confirmed' | 'pending') distinguishes them. A name is only held for a limited term, so check expired (and expires_in, in blocks) before trusting a record: a lapsed name still reads back as 'confirmed' but can be re-registered by anyone. Read-only, no sign-in required; use whoami to find your own github_id. Returns null fields for a name that does not exist. name is the full NVS name and is capped at 512 bytes by the chain.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesFull NVS record name to read. Identity records are 'ai:gh:<github_id>' (e.g. 'ai:gh:3772563'); memory records are 'ai:gh:<github_id>:mem:<sha256-hex>'. Any existing NVS name works.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNo
timeNo
txidNo
valueNo
statusNo
addressNo
expiredNo
pendingNo
operationNo
days_addedNo
expires_atNo
expires_inNo
pending_updateNo
address_is_mineNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint/idempotentHint annotations, it discloses important runtime behavior: records can be `pending` in mempool, `confirmed` vs `pending` via a status field, names expire and can be re-registered, and missing names return null fields. This significantly improves safe usage.

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 dense but every sentence carries operational meaning. It is front-loaded with the core action and then covers return states, expiration, auth, and null behavior. Slightly longer than strictly necessary, but not wasteful.

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?

For a single-parameter read-only tool with an output schema, the description covers all essential operational details: return status, pending/confirmed semantics, expiry risk, empty results, no auth requirement, and sibling routing. 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents `name` well. The description adds value beyond the schema by explaining the 512-byte chain cap and reinforcing the identity vs memory name forms, which helps the agent construct valid arguments.

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+resource: 'Read one on-chain record by its full name.' It clearly distinguishes the tool from siblings by naming the writers (`register_identity` / `store_memory`) and pointing to `whoami` for a different task.

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 gives clear context: use `whoami` to find your own github_id, and reads are the counterpart to records written by `register_identity` / `store_memory`. It stops short of explicit when-not-to-use statements, but the intended vs alternative usage is inferable.

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.