Skip to main content
Glama
forestrie

@forestrie/mcp-resolve

by forestrie

Fetch accumulator from chain

fetch_accumulator
Read-onlyIdempotent

Reads a log's published accumulator from the univocity contract over RPC and returns the base64 CBOR snapshot a verifier consumes, with block number and hash.

Instructions

Read the log's published accumulator from the univocity contract at your rpcUrl: eth_chainId, then eth_getBlockByNumber latest, then one eth_call logState(logId) at that block. The contract address and chain id come from a genesis you hold ({genesis, rpcUrl, logId}) or are given explicitly ({rpcUrl, univocity, logId, chainId?}); a chain id mismatch is reported as a problem before any call. Returns the snapshot CBOR the verifier's known-accumulator root consumes, base64-encoded, with size, block number and block hash. Provenance: chain-read. Supports: split-view under known-accumulator, against the chain rather than the operator; sealing and append-authority by inheritance from the contract's publish-time checks, not by a local signature check.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chainYesThe forest's chain binding: from a genesis you hold, or given explicitly. Never defaulted, never taken from a fetched genesis, never read from the environment except rpcUrl.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
problemNo
snapshotNo
supportsYes
provenanceNo
accumulatorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (which already cover readOnly/idempotent/openWorld), the description discloses the exact call order (eth_chainId, eth_getBlockByNumber latest, one eth_call), that a chain-id mismatch is reported before any call, the provenance (chain-read), and that sealing/append-authority is inherited from the contract rather than a local signature check. That is substantial behavioral context the structured fields do not carry.

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?

Information is dense and front-loaded, with the primary action stated first and supporting detail (input shapes, return, provenance) following. It is slightly overwrought with parenthetical variants, but nearly every clause carries distinct information.

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 one-parameter tool with a full output schema, annotations, and 100% schema coverage, the description supplies everything an agent needs: call semantics, input forms, the pre-call guardrail, and what the returned snapshot is for. Nothing material 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% and the schema itself documents the two union branches, so the baseline is 3. The description adds genuine meaning on top: it frames the two shapes as genesis-derived vs. explicit, notes the chainId is optional and checked pre-call, and clarifies rpcUrl sourcing. It does not restate field formats, which the schema already handles.

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 first sentence states a specific verb (read) and resource (the log's published accumulator from the univocity contract), with the exact RPC sequence used. This distinguishes it clearly from siblings like fetch_genesis and fetch_receipt, which fetch different artifacts.

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 establishes the context in which the tool applies (split-view under known-accumulator, against the chain rather than the operator) and the two supported input shapes, plus the chain-id-mismatch guardrail. It does not explicitly name sibling alternatives or state when-not-to-use, so it stops 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.