Skip to main content
Glama

gblin-treasury-risk-regime

Server Details

Risk regime + treasury for AI agents on Base: free regime reads, signed attestations, idle USDC.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 41 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
gblinproject/gblin-treasury-risk-regime
GitHub Stars
1
Server Listing
@gblin-protocol/mcp-server

TDQS

A4/5.0

Scored across 21 tools

Disambiguation4/5

The dotted domain prefixes and detailed descriptions keep most tools distinguishable, including the three verify tools by object (attestation, payment, receipt). Some overlap remains: treasury.quote and actions.preview both simulate outcomes, and auction.state exposes bid calldata similar to the bid option in actions.prepare.

Naming Consistency4/5

The lowercase domain.thing namespace is applied consistently and is readable. Tails are not uniform, mixing verbs like prepare/preview/verify with nouns like state/info/stats, and a few descriptions reference legacy names such as prepare_gblin_payment and prepare_action rather than the actual tool names.

Tool Count3/5

At 21 tools across 9 namespaces, the set is heavier than a focused treasury/risk server needs, and some read-only views such as treasury.state, risk.regime, and auction.state overlap conceptually. Each tool is individually useful, but the surface feels broad rather than tightly scoped.

Completeness4/5

The tool surface covers the core lifecycle well: prepare/preview/status for vault actions, prepare/relay/verify for payments, seal/get/verify for receipts, and read-only treasury, risk, governance, auction, and protocol views. Minor gaps remain, such as no MCP tool for generating a signed attestation and actions.preview referencing invest_usdc_to_gblin/swap_gblin_to_usdc_jit that are not exposed as tools, but these are workable.

Available Tools

21 tools
actions.prepareA
Read-onlyIdempotent
Inspect

Build the unsigned transactions for any operation on the GBLIN vault, in the order to send them. Actions: mint_with_eth (amount in ETH), mint_with_weth (amount in WETH), mint_with_usdc (amount in USDC, through the Zap), redeem_in_kind (amount in shares; pro rata basket tokens, no fee, no price feed), exit_to_eth (amount in shares, through the Zap, all or nothing), exit_to_usdc (amount = the USDC you need), bid (trade with the rebalancing auction; row optional, the largest gap by default). Every output bound is non-zero and every step through the vault or the Zap carries its gas limit. Nothing is signed or sent: simulate the steps with preview_steps, then send them from the wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowNobid only: the basket row to bid on. Default: the row with the largest gap.
actionYesThe operation to prepare.
amountNoDecimal amount. Unit depends on the action (see the description). Not used by bid.
wallet_addressYesThe wallet that will sign and receive.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nextNo
stepsYesTransactions to send in order.
actionYes
walletNo
expectedNoWhat the operation should deliver, with the minimums applied.
warningsNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, which the description reinforces. It adds valuable behavioral context: 'Every output bound is non-zero and every step through the vault or the Zap carries its gas limit' and 'in the order to send them.' It also clarifies that nothing is signed or sent, which is a non-obvious behavior for a 'prepare' tool. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but efficient: it opens with the purpose, enumerates each action with its amount semantics in a compact list, and finishes with essential behavioral notes. Every sentence earns its place, and the information is front-loaded. No fluff.

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 an output schema exists (not shown but noted), the description doesn't need to detail return values. It covers the workflow (preview, prepare, send), the actions, amount meanings, gas limits, and ordering. It doesn't mention prerequisites like wallet balance or approvals, but those are likely outside the tool's responsibility. Overall, it is sufficiently complete for an agent to call it correctly.

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?

While the schema provides 100% coverage of parameters, the description adds critical action-specific meaning for the 'amount' parameter (e.g., 'amount in ETH' for mint_with_eth, 'amount = the USDC you need' for exit_to_usdc) and explains the optional 'row' default for bid. This is exactly the kind of contextualization the schema alone cannot convey, and it prevents misuse.

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 builds unsigned transactions for vault operations, names the exact actions it supports, and distinguishes itself from siblings like actions.preview and payments.prepare by specifying the vault context and the non-execution nature ('Nothing is signed or sent'). It goes beyond a generic phrase and gives concrete scope.

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 explicitly advises the workflow: 'simulate the steps with preview_steps, then send them from the wallet.' This tells the agent when to use this tool relative to preview. It also clarifies that it is for vault operations and lists the supported actions, implying it's the preparation step for those. It does not explicitly contrast with payments.prepare, but the vault-specific actions make the distinction clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

actions.previewA
Read-onlyIdempotent
Inspect

Simulate a list of transactions in sequence against the latest Base block, as if the wallet sent them one after the other, before anything is signed. Each step sees the state the previous ones left (an approval before a mint works). Returns, per step, whether it would succeed, the gas it uses, whether the gas limit it carries is enough, and the decoded revert reason with a hint when it fails; and the net token and ETH movements for the wallet. Pass the steps exactly as prepare_action, invest_usdc_to_gblin or swap_gblin_to_usdc_jit return them. State can change before your transactions land: a successful preview is evidence, not a guarantee.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromYesThe wallet that will send the steps.
stepsYesThe steps, in order: target, calldata, value in wei (optional), gas (optional).

Output Schema

ParametersJSON Schema
NameRequiredDescription
fromNo
noteNo
blockNoThe block the simulation ran on.
stepsYesPer step: success, gas used, whether the given limit is enough, recommended limit, revert reason.
would_succeedYesTrue only if every step succeeds in the simulation.
balance_changesYesNet token and ETH movements for the wallet.
first_failing_stepNo

TDQS

A4.7/5.0
Behavior5/5

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

Adds significant context beyond annotations: explains sequential state propagation, per-step results including gas and revert reasons, net movements, and the crucial caveat that state can change so success is evidence, not guarantee. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-organized: first sentence states purpose, second details outputs, third gives input guidance, fourth warns about state changes. Every sentence earns its place without redundancy.

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?

Complete for a simulation tool: covers input format, output, and caveats. Output schema exists, so return details are covered. No missing critical information for correct invocation.

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 baseline is 3. The description adds valuable guidance on constructing steps, specifying they should come from prepare_action or related functions, and clarifies optional value and gas in wei. This elevates it above baseline.

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 simulates a sequence of transactions against the latest Base block before signing. It uses a specific verb ('simulate') and resource ('list of transactions'), and the context 'before anything is signed' distinguishes it from siblings like prepare or status.

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 provides clear context: use to preview before signing, and instructs to pass steps exactly as returned by prepare_action, invest_usdc_to_gblin, or swap_gblin_to_usdc_jit. However, it doesn't explicitly mention alternatives or exclusions, so it relies on implicit differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

actions.statusA
Read-onlyIdempotent
Inspect

Report what a sent Base transaction did: pending, succeeded, reverted or not found; its block and confirmations; the fee paid; the net token movements for the sender (GBLIN shares minted or redeemed, USDC, basket tokens); and, when it reverted, the decoded reason. Use it after sending the steps from prepare_action to confirm each one before the next.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashYesThe transaction hash.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toNo
fromNo
hashYes
noteNo
blockNo
revertNo
statusYes
fee_ethNo
explorerNo
gas_usedNo
gas_limitNo
confirmationsNo
balance_changesNo

TDQS

A4.5/5.0
Behavior5/5

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

Even with annotations already declaring readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, the description adds substantial behavioral detail: it reports statuses, block and confirmations, fee, net token movements, and decoded revert reasons. This goes well beyond the annotations and informs the agent what kind of output to expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense but not bloated. It front-loads the core purpose, then lists the key reported fields, and closes with a clear usage instruction. Every clause contributes useful detail for tool selection and invocation.

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?

Given a single well-documented parameter, an output schema, and annotations covering safety, the description provides sufficient context: when to call it, what it reports, and how it fits into the prepare_action workflow. Nothing essential 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?

Schema description coverage is 100% and the only parameter, hash, is already described as 'The transaction hash.' The description confirms it refers to a sent Base transaction but does not add meaning beyond the schema, so the baseline of 3 applies.

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 states a specific verb ('Report') and resource ('what a sent Base transaction did'), then enumerates concrete outcomes: pending, succeeded, reverted, or not found. This distinguishes it from sibling tools like actions.prepare and actions.preview, which clearly operate at different stages.

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 explicitly tells the agent when to use this tool: 'after sending the steps from prepare_action to confirm each one before the next.' This is clear contextual guidance, though it does not name alternative tools or explicitly state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

attestation.verifyA
Read-onlyIdempotent
Inspect

Verify a GBLIN Risk Attestation — the object returned by GBLIN's /api/x402/attestation, or a proof-of-diligence a peer agent attached to its action. FREE, no payment. Runs four checks: (1) INTEGRITY — recomputes the EIP-712 attestation_id and detects tampering; (2) AUTHENTICITY — if a signature is present, recovers the signer and checks it is GBLIN's published attestor; (3) FRESHNESS — whether it expired (10-minute TTL), using on-chain time; (4) LIVE DRIFT — compares the attested regime to the CURRENT on-chain regime and flags if it changed. Use before you trust any counterparty/peer that claims it 'checked market risk via GBLIN'.

ParametersJSON Schema
NameRequiredDescriptionDefault
attestationYesThe full attestation object from /api/x402/attestation (must include `eip712`; `attestation_id`, `signature`, `attestor` are used when present). A JSON string of that object is also accepted.
expected_attestorNoOptional 0x address to check the signature against. Defaults to the GBLIN attestor address baked into this MCP build (GBLIN_ATTESTOR_ADDRESS env).

Output Schema

ParametersJSON Schema
NameRequiredDescription
liveNo
validYesTrue only if every check passed.
checksYesEach check by name, with its result.
sourceNo
attestedNo
guidanceNo
recomputed_attestation_idNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds substantial behavioral detail beyond that: it is free/no payment, runs four specific checks, uses a 10-minute TTL with on-chain time, and only recovers the signer when a signature is present. This is far more transparent than the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the primary purpose, then efficiently lists the four checks in a numbered format. Every sentence earns its place, and the length is justified by the complexity of the verification logic.

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?

The description covers what the tool does, the input provenance, the checks performed, time-based behavior, and when to use it. An output schema is present, so documenting return values is unnecessary. Nothing essential is missing for an agent to invoke this tool correctly.

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?

Schema description coverage is 100%, so the baseline is 3. The description adds some semantic context by explaining that the attestation may be a peer-attached proof-of-diligence rather than only an API response, but the parameter-level details are already well captured in the schema.

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: 'Verify a GBLIN Risk Attestation.' It further specifies the provenance of the object and enumerates the four distinct checks, making it unmistakably different from sibling tools like payments.verify or receipts.verify.

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 last sentence gives explicit when-to-use guidance: 'Use before you trust any counterparty/peer that claims it checked market risk via GBLIN.' It does not explicitly state when not to use it or name alternatives, but the context is clear enough for an agent to select it over other verify tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auction.stateA
Read-onlyIdempotent
Inspect

Read the GBLIN rebalancing auction on Base. The vault does not rebalance itself and pays nobody to do it: when a basket row drifts past its band it holds a Dutch auction, and whoever trades with it toward the target weights is the counterparty, at the oracle price adjusted by a premium that starts at a discount and rises to a cap over one ramp. Returns, per row, the side the vault takes, the gap in ETH, the token and amount the bidder hands over, and unsigned calldata (approval + bid). The premium is the whole reward; nothing is paid out of the vault.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
bestNoThe row with the largest gap, or null.
lensNo
noteNo
rowsYesOne entry per basket asset: side, gap from target and amount a bidder can fill.
curveNo
vaultYes
howToBidNo
openedAtNoWhen the auction opened, or null when closed.
premiumBpsYesCurrent premium over the oracle price, in basis points; negative is a discount.
auctionOpenYes
navReliableYes
worstGapEthNo
totalValueEthNo

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint, the description discloses meaningful behavioral mechanics: the vault does not self-rebalance and pays no external party, the Dutch auction ramps a premium from discount to cap, and the premium is the entire reward while nothing is paid out of the vault. This adds substantial context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three dense, purposeful sentences. It front-loads the core action, then explains the mechanism, then enumerates the returned fields. Every sentence contributes either to scoping or to behavioral understanding; there is no filler.

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 zero-parameter read-only tool with an output schema, the description is complete. It specifies the network (Base), the resource (GBLIN rebalancing auction), the auction mechanism, the exact per-row return fields, and the reward economics. Nothing necessary for correct invocation 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?

The tool has zero parameters and the schema is empty, so the description need not explain parameters. Per the baseline for zero-parameter tools, the score is 4; the description appropriately focuses on output semantics instead.

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: 'Read the GBLIN rebalancing auction on Base.' It clearly identifies what the tool does and distinguishes it from sibling action-oriented tools by emphasizing read-only observation and returning state data rather than executing anything.

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 makes the use case clear: it is the tool for inspecting the current rebalancing auction state, including bidder-side calldata. It does not explicitly name alternatives or state when not to use it, but the read-only framing and detailed output description provide clear context without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coherence.reportA
Read-onlyIdempotent
Inspect

Kept/violated tallies for GBLIN's pre-registered, hash-pinned promises (attestation uptime, counter honesty), probed every 10 minutes; each closed UTC day is sealed on Base as an EAS attestation (schema 0x9f433a96…). Self-observation only in v0. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
methodNo
subjectYesObserved subject
promisesYes
observing_sinceNo

TDQS

A4.4/5.0
Behavior4/5

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

Given annotations already declare read-only, open-world, idempotent, and non-destructive hints, the description adds value by clarifying the data source (self-observation, v0), the frequency (every 10 minutes), and the sealing mechanism (EAS attestation on Base). This goes beyond mere reputation and provides useful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at about 40 words, with all information relevant. It front-loads the core purpose (tallies) and then adds necessary detail. No wasted words.

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?

The description is sufficient for a zero-parameter, read-only report with annotations and an output schema. It explains the data source, frequency, and sealing, but could offer a bit more on the exact contents of the report (e.g., what fields are included). However, given the output schema exists, the description need not detail return values, so this is adequate.

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?

The input schema has zero parameters, so the description does not need to explain parameters. Since there are no params, the description's job is to set expectations, and it does so by describing what is included in the report. A baseline of 4 is appropriate because the description compensates for the lack of param details.

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: reporting kept/violated tallies for GBLIN's hash-pinned promises, with details on how data is collected (every 10 minutes) and sealed (EAS attestation on Base). It distinguishes itself from siblings by focusing on tallies and attestation, which is unique among the listed tools.

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 implies its use for checking compliance tallies and notes that it is self-observation only in v0, which gives context but does not explicitly state when to use this tool versus alternatives. It could benefit from mentioning that this is for read-only reporting, but the self-observation note provides some guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

governance.stateA
Read-onlyIdempotent
Inspect

Verify GBLIN protocol governance state: confirms whether the GBLIN vault is owned by the 48h Timelock, reads the timelock's min delay and grace period, reports role member counts, and surfaces any pending asset-addition proposal on the index contract. If an operation_id is provided, also reports the status of that specific timelock operation. Read-only — use this to gate trust-sensitive agent actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
operation_idNoOptional 0x-prefixed 32-byte hex id of a specific timelock operation to inspect.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lensNo
ownerYes
vaultYes
timelockYesAddress and minimum delay of the timelock, read on chain.
verificationNo
fee_recipientNo
trust_summaryNo
pending_handoverNoA pending ownership transfer, or null.
owner_is_timelockYes
owner_is_renouncedYes
pending_timelock_operationNoA scheduled timelock operation affecting ownership, or null.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructiveness, and the description reinforces 'Read-only' without contradicting them. It adds useful behavioral detail beyond the annotations by specifying exactly what state is inspected (e.g., 'surfaces any pending asset-addition proposal') and that providing operation_id changes the reported outcome.

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 front-loaded with the core purpose and uses three sentences to enumerate checks and usage, with minimal waste. The 'Read-only' phrase slightly duplicates the annotation, but the appended usage guidance justifies the sentence.

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 simple parameter schema, rich annotations, and presence of an output schema, the description covers purpose, scope, optional behavior, and usage context. It does not discuss rate limits or explicit alternatives, but those are not critical for this read-only governance inspection tool.

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 sole parameter operation_id has 100% schema description coverage, so the schema already documents its format and purpose. The description adds that providing it 'also reports the status of that specific timelock operation,' which reinforces but does not significantly extend the structured information.

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 states a specific verb and resource: 'Verify GBLIN protocol governance state' and enumerates the concrete checks (vault ownership, timelock delays, role counts, pending proposals, operation status). It is clearly distinguishable from action-oriented siblings such as actions.prepare or payments.relay by its read-only governance scope and explicit 'Read-only' marker.

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 clear application context: 'use this to gate trust-sensitive agent actions' and explicitly notes the optional operation_id behavior. It does not name alternative tools or state when not to use it, but the purpose is specific enough that an agent can infer when governance.state is the right choice over treasury.state or protocol.info.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payments.prepareA
Read-only
Inspect

Build a gasless GBLIN payment. The vault's share token implements EIP-3009, so the holder signs an authorization and anybody can carry it on chain: the payer needs no ETH. Returns the EIP-712 message to sign (its domain is read from the token, not assumed), the calldata that carries the signed authorization, and the x402 'exact' payload for paying an HTTP endpoint in GBLIN. Use method 'receive' when paying a known recipient: only that recipient can submit it, so nobody can front-run the transfer. Use 'transfer' for an x402 facilitator, which submits on the seller's behalf. With relay: true it also prepares the fee authorization for relay_gblin_payment, for when nobody else will carry the payment. No private key is requested, held or transmitted: the signature is produced by the caller's own wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesThe recipient's address.
fromYesThe payer's address: the wallet that will sign.
relayNotrue when nobody else will carry the payment on chain: also prepares the relay fee authorization, paid in GBLIN at the live NAV, for relay_gblin_payment. Forces method 'transfer'.
methodNo'receive' (default) can be submitted only by the recipient; 'transfer' by anyone.
amount_usdNoAmount in USD, converted at the live NAV. Give this or amount_gblin.
amount_gblinNoAmount in GBLIN shares, e.g. '0.25'. Give this or amount_usd.
valid_for_secondsNoHow long the authorization stays valid. Default 600, maximum 86400.

Output Schema

ParametersJSON Schema
NameRequiredDescription
relayNoWith relay: true, the fee authorization to sign and where to send both.
amountNo
digestYesThe EIP-712 digest of typed_data.
methodYes
submitNo
warningsNo
next_stepsNo
typed_dataYesThe EIP-712 message to sign with eth_signTypedData_v4.
x402_payloadYesThe x402 exact-scheme payment payload, with the signature left to fill.
authorizationYesfrom, to, value, validAfter, validBefore, nonce.
payer_balanceNo
x402_accepts_for_sellersNo

TDQS

A4.7/5.0
Behavior5/5

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

Adds substantial behavior beyond annotations: the operation is gasless, no private key is requested/held/transmitted, the EIP-712 domain is read from the token rather than assumed, and method choice has front-running implications. It also explains relay behavior and the returned artifacts, giving the agent expectations the annotations alone cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Seven sentences, each carrying distinct information: what it builds, why it is gasless, what it returns, method selection, relay behavior, and key-handling guarantees. The description is front-loaded with the core purpose and contains no filler sentences.

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 complex preparation tool with an output schema, the description covers return payloads, method semantics, relay dependencies, and security model. The 100%-covered schema handles parameter-level details, so nothing critical is missing for an agent deciding whether and how to call this tool correctly.

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?

The schema already covers all 7 parameters (100%), so the baseline is 3. The description adds meaningful context: 'from' is the signer and no key touches the server, 'receive' vs 'transfer' maps to submission rights, and relay forces method 'transfer'. This goes beyond the schema without redundant restatement.

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?

States a concrete verb and resource: 'Build a gasless GBLIN payment.' It explains the EIP-3009 mechanism, what the tool returns (EIP-712 message, calldata, x402 payload), and distinguishes the 'receive' vs 'transfer' modes. This makes the tool's role clear even among payment-related siblings.

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?

Provides explicit decision rules: use 'receive' for a known recipient to prevent front-running, use 'transfer' for an x402 facilitator, and set relay:true when nobody else will carry the payment. It does not directly contrast this tool with sibling prepare tools like actions.prepare, so it stops short of full when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payments.relayA
DestructiveIdempotent
Inspect

Have GBLIN's relay carry a signed GBLIN payment on chain for a payer that holds no ETH. Pass the payment and the relay fee, each as { authorization, signature }, both prepared by prepare_gblin_payment with relay: true and signed by the payer's wallet. The relay checks both against the chain, simulates them and submits them in one transaction through Multicall3: either both settle or neither does. The fee is paid in GBLIN at the live NAV. Returns the transaction hash and its outcome. This moves funds: run it only with authorizations the payer meant to sign.

ParametersJSON Schema
NameRequiredDescriptionDefault
feeYes{ authorization, signature } of the relay fee, from prepare_gblin_payment's relay block.
paymentYes{ authorization, signature } of the payment, method 'transfer'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
feeNo
noteNo
blockNo
relayYesThe relay that carried the payment.
statusYes
paymentNo
explorerNo
transactionYesThe transaction hash.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond annotations, the description reveals atomic submission via Multicall3, chain-checking and simulation, live-NAV fee payment, and return of transaction hash/outcome. It also explicitly warns that this moves funds, reinforcing the destructiveHint annotation with actionable context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then compactly covers payload, execution behavior, fee, return value, and a safety warning. Every sentence contributes necessary information and there is no filler.

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 tool with nested parameters, atomic on-chain execution, and an output schema, the description covers prerequisites, mechanics, return value, and risk. Nothing an agent needs to decide whether and how to invoke it 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 baseline is 3. The description adds meaningful provenance: both payment and fee must come from prepare_gblin_payment with relay: true and be signed by the payer's wallet, which is not fully captured by the schema alone.

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 states a specific verb ('relay') and resource ('signed GBLIN payment on chain') and clarifies the niche use case: a payer holding no ETH. It clearly differentiates itself from prepare/verify sibling tools by describing the on-chain submission step.

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 this when the payer holds no ETH and when authorizations were prepared with relay: true. It also warns to run it only with authorizations the payer meant to sign. It does not explicitly name alternative tools or when-not conditions, but the usage context is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payments.verifyA
Read-onlyIdempotent
Inspect

Check a signed GBLIN authorization against the chain before spending gas on it. Recovers the signer from the EIP-712 digest (and asks the wallet itself through ERC-1271 when the payer is a contract), then checks the validity window against on-chain time, whether the nonce has already been used or cancelled, and whether the payer still holds the amount. Returns a verdict and the ready calldata when it would settle, the failing reason when it would not. This is the same set of checks an x402 facilitator runs, so a 'would_settle' verdict here means the payment is good to carry.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNoWhich method the signature was produced for. Default 'receive'.
signatureYesThe signature produced by the payer's wallet, 0x-prefixed.
authorizationYesThe authorization object: from, to, value, validAfter, validBefore, nonce.

Output Schema

ParametersJSON Schema
NameRequiredDescription
amountNo
checksYes
digestNo
methodYes
sourceNo
submitNoCalldata and who may submit it, or null when it would not settle.
failuresYesReasons it would not settle; empty when it would.
would_settleYesTrue only if the token would accept this authorization now.

TDQS

A4.5/5.0
Behavior5/5

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

The description discloses the full verification pipeline: EIP-712 signer recovery, ERC-1271 for contract payers, validity-window/nonce/balance checks, and the return semantics. Annotations already mark the operation read-only and idempotent, and the description adds rich behavioral detail without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place: purpose, internal checks, return behavior, and operational significance. The most decision-relevant information is front-loaded, and there is no filler.

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 complex verification tool with an output schema and safety annotations, the description is complete: it covers what is checked, what is returned, and what the result means in the x402 flow. Nothing critical for selecting or invoking the tool 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?

Schema description coverage is 100%, so the schema already documents authorization, signature, and method. The description adds behavioral context about the digest and signer recovery, but it does not add separate parameter-level meaning beyond the schema, matching the baseline for high coverage.

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: 'Check a signed GBLIN authorization against the chain before spending gas on it.' It distinguishes itself from payment lifecycle siblings by focusing on verification rather than preparation or relay, and it explicitly describes the verdict/calldata outcome.

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 clearly establishes the usage context: run this before spending gas, and a 'would_settle' verdict means the payment is good to carry. However, it does not explicitly name the sibling tools or state when not to use it, so it falls just short of fully explicit routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

protocol.infoA
Read-onlyIdempotent
Inspect

GBLIN llms.txt as plain text: contract addresses, endpoints, prices, payment flow, field contract of the attestation.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
llms_txtYesThe full llms.txt document (plain text)

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already show readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds that the output is plain text and lists contents, but it does not disclose any limitations, rate limits, or output details beyond what the annotations already convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the core resource name and format, followed by a compact, useful list of contents. There is no redundant wording.

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 no parameters, an output schema, and simple annotations, the description is sufficiently complete for a protocol information fetch. The only notable gap is the lack of explicit usage guidance relative to sibling tools, which may still be inferred.

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?

With zero parameters and an empty input schema, the description carries the full semantic burden and does so by indicating exactly what kind of data will be returned. No parameter-level documentation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that protocol.info returns 'GBLIN llms.txt as plain text' and lists its contents: contract addresses, endpoints, prices, payment flow, and field contract of the attestation. This identifies the resource and distinguishes it from sibling tools like protocol.stats and receipts.get, though it lacks an explicit verb like 'retrieve'.

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

Usage Guidelines3/5

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

The description implies use when protocol-level information is needed, but it does not explicitly state when to use this tool versus alternatives or mention exclusions. For a simple zero-parameter read, this is adequate but not fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

protocol.statsA
Read-onlyIdempotent
Inspect

Cumulative public counters of GBLIN's x402 endpoints: paid calls, unique payer wallets, USDC earned, with methodology disclosure. Cached 5 min.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
_sourceNoProvenance and disclosure of the counters
total_paid_callsYesSettled x402 calls, cumulative
total_usdc_earnedYesUSDC received, cumulative
total_unique_agentsYesDistinct payer wallets, cumulative (our own wallets excluded)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already flag read-only, open-world, idempotent, and non-destructive behavior, so the description only needs to add non-obvious context. It adds 'Cached 5 min' (stale data window) and 'methodology disclosure', which are useful beyond structured annotations. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences front-load the counters and add only the cache and methodology caveats. No filler, no repetition of schema or annotations.

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?

An output schema exists, annotations are rich, and no parameters require explanation. The description covers data scope, freshness via 'Cached 5 min', and methodology disclosure. This is complete for a no-input stats tool.

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?

The tool has zero parameters and the schema is fully self-describing with additionalProperties false. The description therefore does not need to explain inputs. Baseline 4 applies.

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 'Cumulative public counters of GBLIN's x402 endpoints' and enumerates paid calls, unique payer wallets, USDC earned, and methodology disclosure. This clearly identifies the tool as an aggregate stats endpoint, distinct from receipt/risk/info siblings. The metric scope is unambiguous.

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 'cumulative public counters' phrasing and 'Cached 5 min' note establish when this tool is appropriate: for aggregate, quick, read-only metrics. It does not explicitly name alternatives, but no exclusions are needed for a zero-parameter stats endpoint. The context is clear enough for selection among siblings like receipts.get.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

receipts.getA
Read-onlyIdempotent
Inspect

Receipt #index from GBLIN's receipts log, re-signed (Ed25519 is deterministic) with a fresh inclusion proof, the current signed checkpoint and the latest on-chain anchor. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesReceipt index in the log (0-based; current size at GET /log/checkpoint)

Output Schema

ParametersJSON Schema
NameRequiredDescription
leafYesbase64 SHA256(0x00 || canonical)
rootYesbase64 Merkle root at tree_size
indexYes
anchorYesLatest daily EAS anchor of the tree root on Base and whether it already covers this receipt
formatYes
payloadYesThe signed, canonicalized record (gblin-canonical-json/1)
signatureYesbase64 Ed25519 over 'gblin-receipt/v1\n' + canonical
tree_sizeYes
checkpointYesC2SP signed note (origin, size, root)
provenanceYesWhat the receipt does and does not prove
verifier_keyYesC2SP note verifier key: origin+hash+base64(0x01||pub)
inclusion_proofYes
canonicalizationNoThe serialisation rule these bytes were produced with, named in the receipt itself so a later verifier can recompute them without consulting our repository. Frozen as gblin-canonical-json/1.

TDQS

A3.5/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. The description adds genuine context beyond those hints: it discloses that the receipt is re-signed with a fresh inclusion proof, explains why re-signing yields deterministic output ('Ed25519 is deterministic'), notes the response includes the current signed checkpoint and latest on-chain anchor, and states it is free. This gives the agent useful behavioral expectations without contradicting the annotations.

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 one dense sentence plus 'Free.', with the core resource (receipt from the log) front-loaded. Every phrase earns its place — re-signing, inclusion proof, checkpoint, anchor — and the parenthetical on Ed25519 determinism explains a non-obvious property. Slightly telegraphic, but appropriately sized with essentially no waste.

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?

The tool is simple (one required parameter, fully described in schema), has an output schema so return format need not be spelled out, and annotations cover the safety profile (read-only, idempotent, non-destructive). The description enriches this with the response contents and cost. Missing only minor context like rate limits or what GBLIN's log is, which are not necessary for correct invocation.

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?

Schema description coverage is 100%: the 'index' parameter is fully documented in the schema ('Receipt index in the log (0-based; current size at GET /log/checkpoint)'). Per the baseline for high schema coverage, the description need not repeat parameter details; its 'Receipt #index' phrasing aligns with the schema. The description adds no new parameter semantics, but none are required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the resource precisely — a receipt from GBLIN's receipts log — and enumerates what is returned (re-signed receipt, inclusion proof, signed checkpoint, on-chain anchor). The annotation title 'Get a receipt by index' supplies the explicit verb. It is clear what the tool does, though the description itself reads as a noun phrase and does not explicitly contrast with the related siblings receipts.seal and receipts.verify.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives. Siblings like receipts.seal and receipts.verify are functionally adjacent, but the description never says 'use this to fetch an existing receipt; use receipts.verify to check one' or any exclusion. Nothing is misleading, but the agent is left to infer the usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

receipts.sealAInspect

Append the HASHES of an AI action to GBLIN's public RFC 6962 transparency log and return a portable receipt: Ed25519 signature, inclusion proof, operator-signed C2SP checkpoint, plus the latest on-chain anchor (EAS on Base, daily). mode=demo (the only mode over MCP): 5 seals/day/IP, receipts marked demo:true. Unlimited seals are a paid x402 HTTP endpoint (resource gblin://howto/seal). Provenance is self-reported: the receipt proves existence and time of the record, not that the action happened. The action/agent_id/tool/meta strings are PUBLISHED in the log: identifiers only, never secrets. Fields not listed here are ignored and NOT recorded.

ParametersJSON Schema
NameRequiredDescriptionDefault
metaNoExtra JSON object as a string (optional). PUBLISHED.
modeNoOnly 'demo' is available over MCP (5/day/IP). Paid seals go through x402 HTTP.demo
toolNoTool/model used (optional). PUBLISHED.
actionYesWhat the AI did, short label. PUBLISHED in the log.
agent_idNoYour agent identifier (optional). PUBLISHED.
input_hashYessha256 of the input/prompt, 64 hex chars (0x prefix optional)
output_hashNosha256 of the output, 64 hex chars (optional; empty or blank = omitted)

Output Schema

ParametersJSON Schema
NameRequiredDescription
leafYesbase64 SHA256(0x00 || canonical)
rootYesbase64 Merkle root at tree_size
indexYes
anchorYesLatest daily EAS anchor of the tree root on Base and whether it already covers this receipt
formatYes
payloadYesThe signed, canonicalized record (gblin-canonical-json/1)
signatureYesbase64 Ed25519 over 'gblin-receipt/v1\n' + canonical
tree_sizeYes
checkpointYesC2SP signed note (origin, size, root)
provenanceYesWhat the receipt does and does not prove
verifier_keyYesC2SP note verifier key: origin+hash+base64(0x01||pub)
inclusion_proofYes
canonicalizationNoThe serialisation rule these bytes were produced with, named in the receipt itself so a later verifier can recompute them without consulting our repository. Frozen as gblin-canonical-json/1.

TDQS

A4.7/5.0
Behavior5/5

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

The description adds significant behavioral context beyond annotations: fields are published publicly, secrets must not be included, provenance is self-reported, demo receipts are marked demo:true, and unspecified fields are ignored. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence carries essential information: core behavior, mode constraints, alternative endpoint, provenance caveat, privacy warning, and ignored-field behavior. It is front-loaded with the primary action and return 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?

The description is complete for a tool with this complexity: it explains the mutated state (public log append), the receipt contents, rate limits, alternative paid access, and privacy implications. An output schema exists, so detailed return-field documentation is not required here.

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 each parameter. The description adds value by emphasizing that action/agent_id/tool/meta are published, that only identifiers should be used, and that unlisted fields are ignored and not recorded.

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 states a specific verb+resource: appends hashes to a transparency log and returns a portable receipt. It clearly differentiates from sibling tools like receipts.get and receipts.verify by describing creation/publication rather than retrieval or verification.

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 explicitly states that demo is the only mode over MCP, gives the rate limit, and points to the paid x402 endpoint for unlimited seals. It does not explicitly describe when to choose this over sibling receipt tools, but the creation vs. retrieval/verification distinction is strongly implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

receipts.verifyA
Read-onlyIdempotent
Inspect

Verify a gblin-receipt/v1 JSON with pure math (no log lookup, no trust in this server): leaf hash, Ed25519 signature, RFC 6962 inclusion proof, C2SP checkpoint signature, verifier-key hash. Same checks as the zero-dependency verify-receipt.mjs you can run offline. For the extra on-chain-anchor consistency check use GET /v1/verify/:index.

ParametersJSON Schema
NameRequiredDescriptionDefault
receiptYesThe receipt JSON as returned by receipts.seal / receipts.get / GET /v1/receipt/:i (bare or wrapped in {receipt})

Output Schema

ParametersJSON Schema
NameRequiredDescription
indexNo
validYes
checksYes
errorsYes
formatNo
reminderNo
tree_sizeNo

TDQS

A4.9/5.0
Behavior5/5

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

While annotations already declare readOnlyHint, idempotentHint, and destructiveHint, the description adds meaningful behavioral context: it performs verification without log lookups (i.e., no server-side state), equivalent to an offline script, and does not perform on-chain anchor checks (pointing to another endpoint). This transparency about what the tool does and does not do goes beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences of substantive content plus a third sentence pointing to an alternative. It front-loads the purpose, lists specific checks, and includes a clear pointer to related functionality. No filler or redundancy—every sentence earns its place.

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?

The tool is cryptographically complex, but the description covers its core behavior, the exact checks, the lack of trust assumptions, and references an offline script for reproducibility. An output schema exists, so return value details are not needed. The pointer to the alternative endpoint fills the only gap (on-chain consistency). This is fully complete for an agent to decide and invoke correctly.

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?

The schema describes the single parameter 'receipt' with its expected format (bare or wrapped in {receipt}) and sources. The description adds the version specifier 'gblin-receipt/v1' and clarifies it's JSON, but these are minor additions. Since schema coverage is 100%, the description provides modest extra value, warranting a 4 rather than the baseline 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 starts with the specific verb 'Verify' and identifies the exact resource: 'a gblin-receipt/v1 JSON'. It enumerates the specific checks performed (leaf hash, Ed25519 signature, RFC 6962 inclusion proof, etc.), which clearly distinguishes it from sibling tools like receipts.seal or receipts.get. The phrase 'pure math (no log lookup, no trust in this server)' differentiates it further from trust-based checks.

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 explicitly states when to use this tool: to verify a receipt with pure math and no trust in the server. It also provides an alternative for a different need: 'For the extra on-chain-anchor consistency check use GET /v1/verify/:index.' This gives clear context and exclusions, making the usage boundaries obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

risk.attestation_sampleA
Read-onlyIdempotent
Inspect

Static, permanently expired sample of the signed Risk Attestation (sample:true), same fields and EIP-712 schema as the paid one. Use it to build and test a parser/verifier.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaNo
eip712NoEIP-712 domain/types/message to recompute the digest
sampleYesAlways true — never a live signal
signedYes
verifyNo
attestorNo
signatureNo
attestationYesSame field contract as the paid attestation (regime, shield_active, severity_pct, defensive_cash_pct, expires_at, ...)
attestation_idYeshashTypedData digest — recompute to verify

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds meaningful context: the sample is static, permanently expired, and schema-compatible with the paid attestation, which is valuable beyond the annotations. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. It front-loads the core identity and state of the resource, then gives a direct use-case instruction.

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?

With no parameters, supportive annotations, and an output schema present, the description fully covers what an agent needs to know: what the sample is, its constraints, and how to use it. Nothing essential 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?

The tool has zero parameters, so the schema requires no parameter documentation. Per the baseline for 0-parameter tools, a score of 4 is appropriate since there is nothing the description needs to compensate for.

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 identifies the tool as a static, permanently expired sample of the signed Risk Attestation, with the same fields and EIP-712 schema as the paid version. It states a specific purpose (building/testing a parser/verifier) and distinguishes the sample from the paid attestation.

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 explicitly says to use the tool to build and test a parser/verifier, which is clear usage guidance. It also notes the sample is permanently expired, implying it is not for production or current attestation data, though it does not explicitly name sibling alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

risk.regimeA
Read-onlyIdempotent
Inspect

Current BTC/ETH risk regime (calm | elevated | crash) with a suggested posture, read live from GBLIN's on-chain Crash Shield on Base (60s cache). Free and unsigned; a signed, verifiable-offline version is a paid x402 endpoint (resource gblin://howto/attestation).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
assetsYesPer-risk-asset shield state
regimeYesCurrent risk regime
sourceNo
chain_idNo
contractNoGBLIN contract on Base
regime_codeYes0 calm, 1 elevated, 2 crash
risk_postureNoSuggested posture
severity_pctYesMax crash-shield weight cut across risk assets, percent
shield_activeYesTrue when any risk asset is currently slashed
defensive_cash_pctYesUSDC dynamic weight in the basket, percent

TDQS

A4.7/5.0
Behavior5/5

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

The description adds valuable behavioral context beyond the annotations: 'read live', '60s cache', 'free and unsigned', and the existence of a signed paid endpoint. This discloses data freshness and auth/security nuances without contradicting the readOnlyHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences. The first sentence delivers the core purpose and source; the second covers licensing/caching/alternative. No filler.

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 zero-parameter tool with an output schema, the description covers the essential context: what, where, how fresh, and what alternatives exist. Nothing 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?

With zero parameters and 100% schema coverage, the baseline is 4. The description doesn't need to add parameter info and appropriately focuses elsewhere.

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 it returns the current BTC/ETH risk regime (calm | elevated | crash) with a suggested posture, and specifies the source (GBLIN's on-chain Crash Shield on Base). This is a specific verb+resource that distinguishes it from sibling tools like risk.attestation_sample.

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 provides clear context about the free, live endpoint vs. a paid signed alternative, implying when to use each. However, it could be more explicit about when NOT to use this tool (e.g., when offline verification is needed).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

treasury.healthA
Read-onlyIdempotent
Inspect

Analyze an agent wallet's treasury health: GBLIN/USDC/ETH balances, whether the ETH covers an exit at the live gas price, the redemption cooldown, and (if daily_burn_usd is provided) days of USDC runway plus a recommendation that keeps seven days of spend in USDC and treats only the surplus as a candidate for GBLIN. Free by default; metered at $0.003 USDC only when the operator sets MCP_PAYWALL=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
_paymentNoBase64-encoded x402 PaymentProof JSON. Omit on first call to receive the 402 payment manifest.
daily_burn_usdNoOptional. Average daily spend in USD (e.g. 1.5).
wallet_addressYesAgent's 0x address.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ratiosNo
walletYes
balancesYes
cooldownYesWhether the redemption cooldown is active and for how long.
gas_healthYesWhether the wallet holds enough ETH for the next transactions.
recommendationYeshold, rebalance_to_gblin or rebalance_to_usdc, with the reason.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior; the description adds valuable behavioral context beyond those hints by disclosing the cost model ('Free by default; metered at $0.003 USDC only when the operator sets MCP_PAYWALL=true'). It also explains the conditional output behavior tied to daily_burn_usd.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with no filler. The first front-loads the purpose and metric list; the second adds the only non-obvious operational detail (cost/paywall). Every clause earns its place.

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?

With an output schema present and annotations covering safety, the description provides everything an agent needs to call correctly: what to pass, what output dimensions to expect, and when the optional param changes behavior. The paywall semantics and conditional recommendation are fully specified.

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 baseline is 3, but the description adds meaning beyond the schema by explaining the effect of daily_burn_usd: it produces days of USDC runway and a recommendation about the GBLIN surplus. Wallet_address and _payment are adequately served by the schema.

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 ('Analyze an agent wallet's treasury health') and then enumerates exact metrics: GBLIN/USDC/ETH balances, ETH exit coverage at live gas price, redemption cooldown, and optional runway. This level of specificity makes it clearly distinct from sibling treasury tools like treasury.quote or treasury.state.

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 context for use is clear: call this when you need treasury health diagnostics for an agent wallet. It also gives a conditional usage rule ('if daily_burn_usd is provided') for getting runway and a recommendation. However, it never explicitly names alternatives or when-not-to-use conditions, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

treasury.nav_historyA
Read-onlyIdempotent
Inspect

NAV per GBLIN share over time, read from the chain at past blocks, beside the ETH/USD and BTC/USD oracle prices the vault itself uses, with the change of each over the window and the NAV's largest drawdown. History starts at the deployment of the vault in service. Use it to judge how the index behaved against holding ETH or BTC over the same span.

ParametersJSON Schema
NameRequiredDescriptionDefault
pointsNoHow many points, newest last. Default 30.
intervalNoSpacing of the points. Default day.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
methodNo
pointsYes
seriesYesOldest first: time, block, NAV in ETH and USD, ETH/USD and BTC/USD.
summaryNoChange of NAV, ETH and BTC over the window, and the NAV's largest drawdown.
intervalYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds behavioral details beyond annotations: it reads from the chain at past blocks, includes oracle prices, changes, and largest drawdown, and notes the history start point. No contradictions with annotations.

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 three sentences, front-loaded with the core data returned, then adds history start and a usage note. It is efficient with no redundant phrasing, though the second sentence about history start could be integrated more tightly. Still, it is concise and well-structured.

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?

The description covers the returned data (NAV, oracle prices, changes, drawdown), the historical scope (since deployment), and a clear use case. An output schema exists, so return format is likely covered. Minor omission: no mention of pagination or limit behavior, but that is in the schema. Overall complete for a read-only historical tool.

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?

Schema description coverage is 100%, with both parameters (points and interval) having clear descriptions and defaults. The description does not add extra parameter-specific details but provides context about the data returned. Since the schema already documents parameters, the baseline of 3 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 returns NAV per GBLIN share over time, along with ETH/USD and BTC/USD oracle prices, changes, and drawdown. It specifies the resource (NAV history) and the verb (read), making it distinct from siblings like treasury.state or treasury.quote, which focus on current values.

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 provides an explicit use case: 'Use it to judge how the index behaved against holding ETH or BTC over the same span.' This gives clear context for when to call the tool, though it does not mention alternatives or explicitly state when not to use it. The context of 'history' and 'over time' implicitly separates it from current-state tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

treasury.quoteA
Read-onlyIdempotent
Inspect

Preview a buy (ETH→GBLIN) or sell (GBLIN→ETH) without executing. Returns expected output, safe minOut with dynamic slippage buffer (2.5% normal / 4% during Crash Shield), and fee breakdown. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
amount_inYesPositive decimal. ETH for buy, GBLIN for sell.
directionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
feesNo
directionYes
next_stepYes
amount_in_ethNoBuy only.
cooldown_noteNo
amount_in_gblinNoSell only.
slippage_reasonNo
expected_eth_outNoSell only.
safe_min_eth_outNoSell only. Pass as minEthOut.
expected_gblin_outNoBuy only.
safe_min_gblin_outNoBuy only. Pass as minOut.
slippage_buffer_bpsYes
will_revert_with_zero_toleranceNo

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint), the description discloses meaningful behavior: it returns expected output, a safe minOut with a dynamic slippage buffer (2.5% normal / 4% during Crash Shield), and a fee breakdown. This adds real context about what the call yields and its side-effect-free nature, with no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences front-load the core purpose and then pack in return values, slippage policy, and fees without wasted words. The 'Read-only' tag is redundant with annotations but harmless and brief.

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?

Given the tool has only two parameters, an output schema, and strong safety annotations, the description supplies all necessary behavioral context: non-execution, direction semantics, slippage policy, and fee reporting. Nothing an agent needs to choose or invoke 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?

The description adds meaning to the direction enum by defining buy as ETH→GBLIN and sell as GBLIN→ETH, which complements the schema's amount_in note. With 50% schema description coverage, this mapping meaningfully reduces ambiguity, although the description does not explicitly re-explain every parameter.

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 precise verb and scope: 'Preview a buy (ETH→GBLIN) or sell (GBLIN→ETH) without executing.' It clearly differentiates itself from execution-oriented siblings by stating it does not execute and is read-only, and the title reinforces the quote/mint/redemption purpose.

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 provides clear context: use this tool when you need a non-executing preview of a mint or redemption quote. It does not explicitly name alternative tools or say when not to use it, but 'without executing' and 'Read-only' are strong usage signals that prevent confusion with execution tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

treasury.stateA
Read-onlyIdempotent
Inspect

Read the current GBLIN protocol state on Base mainnet: NAV in USD, basket composition with dynamic weights, and Crash Shield status. Use this BEFORE any swap to know the current price and risk regime.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaNo
basketYesAssets in the basket with base and dynamic weights.
nav_usdYesNet asset value of one GBLIN share in USD.
auction_openYesTrue while a rebalancing auction is running.
nav_reliableYesFalse when a price feed is stale or a basket asset cannot be read; do not trade on the NAV then.
eth_price_usdYesETH price in USD from the oracle.
slippage_reasonNo
crash_shield_activeYesTrue when the crash shield has cut the weight of a falling asset.
slippage_buffer_pctNo
management_fee_bps_per_yearYesManagement fee in basis points per year, read from the contract.

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered. The description adds the Base mainnet context and the specific data it surfaces, which is useful but not deeply behavioral. No contradiction or additional side-effect information is provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both informative and directly useful. The first sentence states the core purpose and data content; the second provides actionable placement guidance. No filler or redundant restating of schema or annotations.

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?

This is a simple, zero-parameter read tool with a full output schema and strong annotations. The description covers what it returns, where it operates, and when to call it. Nothing essential is missing for an agent to invoke it correctly.

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?

The tool has zero parameters and the schema is empty, so there are no parameter semantics to document. Per the baseline for zero-parameter tools, the description adequately conveys that no input is needed to read the current global protocol state.

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 states a specific verb ('Read'), a specific resource ('GBLIN protocol state on Base mainnet'), and the key data exposed (NAV in USD, basket composition with dynamic weights, Crash Shield status). This clearly identifies the tool's purpose and differentiates it from siblings like treasury.quote or treasury.nav_history.

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 explicitly says to use this tool BEFORE any swap to know the current price and risk regime, which is strong usage guidance. It does not explicitly name alternatives or exclusion conditions, but the 'before a swap' context is clear enough for an agent to select it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedactions.status1 field changed
      • changedOutput schema / properties / confirmations / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
  2. 13 tool updates
    • Addedactions.prepare
    • Addedactions.preview
    • Addedactions.status
    • Addedattestation.verify
    • Addedauction.state
    • Addedgovernance.state
    • Addedpayments.prepare
    • Addedpayments.relay
    • Addedpayments.verify
    • Addedtreasury.health
    • Addedtreasury.nav_history
    • Addedtreasury.quote
    • Addedtreasury.state
  3. 2 tool updates
    • Changedreceipts.get1 field changed
      • addedOutput schema / properties / canonicalization
        Added value: +{
        +  "description": "The serialisation rule these bytes were produced with, named in the receipt itself so a later verifier can recompute them without consulting our repository. Frozen as gblin-canonical-json/1.",
        +  "properties": {
        +    "frozen_since": {
        +      "type": "string"
        +    },
        +    "leaf": {
        +      "type": "string"
        +    },
        +    "node": {
        +      "type": "string"
        +    },
        +    "rule": {
        +      "const": "gblin-canonical-json/1",
        +      "type": "string"
        +    },
        +    "signed_message": {
        +      "type": "string"
        +    },
        +    "spec": {
        +      "type": "string"
        +    },
        +    "verifier": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "rule",
        +    "spec"
        +  ],
        +  "type": "object"
        +}
    • Changedreceipts.seal1 field changed
      • addedOutput schema / properties / canonicalization
        Added value: +{
        +  "description": "The serialisation rule these bytes were produced with, named in the receipt itself so a later verifier can recompute them without consulting our repository. Frozen as gblin-canonical-json/1.",
        +  "properties": {
        +    "frozen_since": {
        +      "type": "string"
        +    },
        +    "leaf": {
        +      "type": "string"
        +    },
        +    "node": {
        +      "type": "string"
        +    },
        +    "rule": {
        +      "const": "gblin-canonical-json/1",
        +      "type": "string"
        +    },
        +    "signed_message": {
        +      "type": "string"
        +    },
        +    "spec": {
        +      "type": "string"
        +    },
        +    "verifier": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "rule",
        +    "spec"
        +  ],
        +  "type": "object"
        +}
  4. 1 tool update
    • Changedreceipts.seal6 fields changed
      • changedInput schema / additionalProperties
        Previous value: -falseNew value: +true
      • changedInput schema / properties / input_hash / description
        Previous value: -"sha256 of the input/prompt, 64 hex chars"New value: +"sha256 of the input/prompt, 64 hex chars (0x prefix optional)"
      • changedInput schema / properties / input_hash / pattern
        Previous value: -"^[0-9a-fA-F]{64}$"New value: +"^\\s*(0x)?[0-9a-fA-F]{64}\\s*$"
      • changedInput schema / properties / output_hash / description
        Previous value: -"sha256 of the output, 64 hex chars (optional)"New value: +"sha256 of the output, 64 hex chars (optional; empty or blank = omitted)"
      • changedInput schema / properties / output_hash / pattern
        Previous value: -"^[0-9a-fA-F]{64}$"New value: +"^\\s*((0x)?[0-9a-fA-F]{64})?\\s*$"
      • changedInput schema / required
        Previous value: -[
        -  "mode",
        -  "action",
        -  "input_hash"
        -]New value: +[
        +  "action",
        +  "input_hash"
        +]
  5. 2 tool updates
    • Changedreceipts.get1 field changed
      • addedOutput schema / properties / payload / properties / by
        Added value: +{
        +  "description": "Present only when this server sealed its own action; set server-side, cannot be supplied by a caller",
        +  "enum": [
        +    "operator"
        +  ],
        +  "type": "string"
        +}
    • Changedreceipts.seal1 field changed
      • addedOutput schema / properties / payload / properties / by
        Added value: +{
        +  "description": "Present only when this server sealed its own action; set server-side, cannot be supplied by a caller",
        +  "enum": [
        +    "operator"
        +  ],
        +  "type": "string"
        +}
  6. 16 tool updates
    • Addedcoherence.report
    • Removedget_agent_economy_stats
    • Removedget_attestation_sample
    • Removedget_coherence_report
    • Removedget_market_risk_regime
    • Removedget_protocol_info
    • Removedget_receipt
    • Addedprotocol.info
    • Addedprotocol.stats
    • Addedreceipts.get
    • Addedreceipts.seal
    • Addedreceipts.verify
    • Addedrisk.attestation_sample
    • Addedrisk.regime
    • Removedseal_action
    • Removedverify_receipt
  7. 8 tool updates
    • Changedget_agent_economy_stats1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_attestation_sample1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_coherence_report1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_market_risk_regime1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_protocol_info1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_receipt11 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / index / description
        Previous value: -"Receipt index in the log"New value: +"Receipt index in the log (0-based; current size at GET /log/checkpoint)"
      • addedOutput schema / properties / anchor / properties / anchored_tree_size
        Added value: +{
        +  "type": [
        +    "integer",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / anchor / properties / covers_this_receipt / description
        Added value: +"deprecated alias of root_covers_this_receipt"
      • addedOutput schema / properties / anchor / properties / root_covers_this_receipt
        Added value: +{
        +  "description": "true iff index < anchored_tree_size: the anchored ROOT commits to this leaf via the inclusion proof",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / anchor / properties / what_is_anchored
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / anchor / required
        Previous value: -[
        -  "covers_this_receipt"
        -]New value: +[
        +  "root_covers_this_receipt",
        +  "anchored_tree_size",
        +  "what_is_anchored"
        +]
      • changedOutput schema / properties / provenance / properties / level / enum
        Previous value: -[
        -  "self-reported"
        -]New value: +[
        +  "self-reported",
        +  "server-observed",
        +  "externally-verified"
        +]
      • addedOutput schema / properties / provenance / properties / levels
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / provenance / properties / levels_meaning
        Added value: +{
        +  "type": "object"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "level"
        -]New value: +[
        +  "level",
        +  "levels"
        +]
    • Changedseal_action24 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / action / description
        Previous value: -"What the AI did, short label (<=128 chars)"New value: +"What the AI did, short label. PUBLISHED in the log."
      • addedInput schema / properties / action / maxLength
        Added value: +128
      • addedInput schema / properties / action / minLength
        Added value: +1
      • changedInput schema / properties / agent_id / description
        Previous value: -"Your agent identifier (optional, <=128)"New value: +"Your agent identifier (optional). PUBLISHED."
      • addedInput schema / properties / agent_id / maxLength
        Added value: +128
      • changedInput schema / properties / input_hash / description
        Previous value: -"sha256 hex (64 chars) of the input/prompt"New value: +"sha256 of the input/prompt, 64 hex chars"
      • addedInput schema / properties / input_hash / pattern
        Added value: +"^[0-9a-fA-F]{64}$"
      • changedInput schema / properties / meta / description
        Previous value: -"Extra JSON, <=512 chars (optional)"New value: +"Extra JSON object as a string (optional). PUBLISHED."
      • addedInput schema / properties / meta / maxLength
        Added value: +512
      • changedInput schema / properties / output_hash / description
        Previous value: -"sha256 hex of the output (optional)"New value: +"sha256 of the output, 64 hex chars (optional)"
      • addedInput schema / properties / output_hash / pattern
        Added value: +"^[0-9a-fA-F]{64}$"
      • changedInput schema / properties / tool / description
        Previous value: -"Tool/model used (optional, <=128)"New value: +"Tool/model used (optional). PUBLISHED."
      • addedInput schema / properties / tool / maxLength
        Added value: +128
      • changedInput schema / required
        Previous value: -[
        -  "action",
        -  "input_hash"
        -]New value: +[
        +  "mode",
        +  "action",
        +  "input_hash"
        +]
      • addedOutput schema / properties / anchor / properties / anchored_tree_size
        Added value: +{
        +  "type": [
        +    "integer",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / anchor / properties / covers_this_receipt / description
        Added value: +"deprecated alias of root_covers_this_receipt"
      • addedOutput schema / properties / anchor / properties / root_covers_this_receipt
        Added value: +{
        +  "description": "true iff index < anchored_tree_size: the anchored ROOT commits to this leaf via the inclusion proof",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / anchor / properties / what_is_anchored
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / anchor / required
        Previous value: -[
        -  "covers_this_receipt"
        -]New value: +[
        +  "root_covers_this_receipt",
        +  "anchored_tree_size",
        +  "what_is_anchored"
        +]
      • changedOutput schema / properties / provenance / properties / level / enum
        Previous value: -[
        -  "self-reported"
        -]New value: +[
        +  "self-reported",
        +  "server-observed",
        +  "externally-verified"
        +]
      • addedOutput schema / properties / provenance / properties / levels
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / provenance / properties / levels_meaning
        Added value: +{
        +  "type": "object"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "level"
        -]New value: +[
        +  "level",
        +  "levels"
        +]
    • Changedverify_receipt1 field changed
      • addedInput schema / additionalProperties
        Added value: +false

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.