gblin-treasury-risk-regime
Server Details
Risk regime + treasury for AI agents on Base: free regime reads, signed attestations, idle USDC.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- gblinproject/gblin-treasury-risk-regime
- GitHub Stars
- 1
- Server Listing
- @gblin-protocol/mcp-server
Available Tools
8 toolscoherence.reportARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| method | No | |
| subject | Yes | Observed subject |
| promises | Yes | |
| observing_since | No |
TDQS
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.
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.
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.
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.
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.
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.
protocol.infoARead-onlyIdempotentInspect
GBLIN llms.txt as plain text: contract addresses, endpoints, prices, payment flow, field contract of the attestation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| llms_txt | Yes | The full llms.txt document (plain text) |
TDQS
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.
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.
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.
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.
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.
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.statsARead-onlyIdempotentInspect
Cumulative public counters of GBLIN's x402 endpoints: paid calls, unique payer wallets, USDC earned, with methodology disclosure. Cached 5 min.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| _source | No | Provenance and disclosure of the counters |
| total_paid_calls | Yes | Settled x402 calls, cumulative |
| total_usdc_earned | Yes | USDC received, cumulative |
| total_unique_agents | Yes | Distinct payer wallets, cumulative (our own wallets excluded) |
TDQS
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.
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.
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.
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.
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.
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.getARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | Receipt index in the log (0-based; current size at GET /log/checkpoint) |
Output Schema
| Name | Required | Description |
|---|---|---|
| leaf | Yes | base64 SHA256(0x00 || canonical) |
| root | Yes | base64 Merkle root at tree_size |
| index | Yes | |
| anchor | Yes | Latest daily EAS anchor of the tree root on Base and whether it already covers this receipt |
| format | Yes | |
| payload | Yes | The signed, canonicalized record (gblin-canonical-json/1) |
| signature | Yes | base64 Ed25519 over 'gblin-receipt/v1\n' + canonical |
| tree_size | Yes | |
| checkpoint | Yes | C2SP signed note (origin, size, root) |
| provenance | Yes | What the receipt does and does not prove |
| verifier_key | Yes | C2SP note verifier key: origin+hash+base64(0x01||pub) |
| inclusion_proof | Yes | |
| canonicalization | No | 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. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| meta | No | Extra JSON object as a string (optional). PUBLISHED. | |
| mode | No | Only 'demo' is available over MCP (5/day/IP). Paid seals go through x402 HTTP. | demo |
| tool | No | Tool/model used (optional). PUBLISHED. | |
| action | Yes | What the AI did, short label. PUBLISHED in the log. | |
| agent_id | No | Your agent identifier (optional). PUBLISHED. | |
| input_hash | Yes | sha256 of the input/prompt, 64 hex chars (0x prefix optional) | |
| output_hash | No | sha256 of the output, 64 hex chars (optional; empty or blank = omitted) |
Output Schema
| Name | Required | Description |
|---|---|---|
| leaf | Yes | base64 SHA256(0x00 || canonical) |
| root | Yes | base64 Merkle root at tree_size |
| index | Yes | |
| anchor | Yes | Latest daily EAS anchor of the tree root on Base and whether it already covers this receipt |
| format | Yes | |
| payload | Yes | The signed, canonicalized record (gblin-canonical-json/1) |
| signature | Yes | base64 Ed25519 over 'gblin-receipt/v1\n' + canonical |
| tree_size | Yes | |
| checkpoint | Yes | C2SP signed note (origin, size, root) |
| provenance | Yes | What the receipt does and does not prove |
| verifier_key | Yes | C2SP note verifier key: origin+hash+base64(0x01||pub) |
| inclusion_proof | Yes | |
| canonicalization | No | 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. |
TDQS
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.
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.
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.
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.
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.
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.verifyARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt | Yes | The receipt JSON as returned by receipts.seal / receipts.get / GET /v1/receipt/:i (bare or wrapped in {receipt}) |
Output Schema
| Name | Required | Description |
|---|---|---|
| index | No | |
| valid | Yes | |
| checks | Yes | |
| errors | Yes | |
| format | No | |
| reminder | No | |
| tree_size | No |
TDQS
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.
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.
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.
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.
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.
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_sampleARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | No | |
| eip712 | No | EIP-712 domain/types/message to recompute the digest |
| sample | Yes | Always true — never a live signal |
| signed | Yes | |
| verify | No | |
| attestor | No | |
| signature | No | |
| attestation | Yes | Same field contract as the paid attestation (regime, shield_active, severity_pct, defensive_cash_pct, expires_at, ...) |
| attestation_id | Yes | hashTypedData digest — recompute to verify |
TDQS
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.
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.
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.
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.
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.
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.regimeARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| assets | Yes | Per-risk-asset shield state |
| regime | Yes | Current risk regime |
| source | No | |
| chain_id | No | |
| contract | No | GBLIN contract on Base |
| regime_code | Yes | 0 calm, 1 elevated, 2 crash |
| risk_posture | No | Suggested posture |
| severity_pct | Yes | Max crash-shield weight cut across risk assets, percent |
| shield_active | Yes | True when any risk asset is currently slashed |
| defensive_cash_pct | Yes | USDC dynamic weight in the basket, percent |
TDQS
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.
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.
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.
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.
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.
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
- Changed
receipts.get1 field changed- added
Output schema / properties / canonicalizationAdded 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" +}
- Changed
receipts.seal1 field changed- added
Output schema / properties / canonicalizationAdded 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" +}
1 tool update
- Changed
receipts.seal6 fields changed- changed
Input schema / additionalPropertiesPrevious value: -falseNew value: +true - changed
Input schema / properties / input_hash / descriptionPrevious value: -"sha256 of the input/prompt, 64 hex chars"New value: +"sha256 of the input/prompt, 64 hex chars (0x prefix optional)" - changed
Input schema / properties / input_hash / patternPrevious value: -"^[0-9a-fA-F]{64}$"New value: +"^\\s*(0x)?[0-9a-fA-F]{64}\\s*$" - changed
Input schema / properties / output_hash / descriptionPrevious value: -"sha256 of the output, 64 hex chars (optional)"New value: +"sha256 of the output, 64 hex chars (optional; empty or blank = omitted)" - changed
Input schema / properties / output_hash / patternPrevious value: -"^[0-9a-fA-F]{64}$"New value: +"^\\s*((0x)?[0-9a-fA-F]{64})?\\s*$" - changed
Input schema / requiredPrevious value: -[ - "mode", - "action", - "input_hash" -]New value: +[ + "action", + "input_hash" +]
2 tool updates
- Changed
receipts.get1 field changed- added
Output schema / properties / payload / properties / byAdded value: +{ + "description": "Present only when this server sealed its own action; set server-side, cannot be supplied by a caller", + "enum": [ + "operator" + ], + "type": "string" +}
- Changed
receipts.seal1 field changed- added
Output schema / properties / payload / properties / byAdded value: +{ + "description": "Present only when this server sealed its own action; set server-side, cannot be supplied by a caller", + "enum": [ + "operator" + ], + "type": "string" +}
16 tool updates
- Added
coherence.report - Removed
get_agent_economy_stats - Removed
get_attestation_sample - Removed
get_coherence_report - Removed
get_market_risk_regime - Removed
get_protocol_info - Removed
get_receipt - Added
protocol.info - Added
protocol.stats - Added
receipts.get - Added
receipts.seal - Added
receipts.verify - Added
risk.attestation_sample - Added
risk.regime - Removed
seal_action - Removed
verify_receipt
8 tool updates
- Changed
get_agent_economy_stats1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_attestation_sample1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_coherence_report1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_market_risk_regime1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_protocol_info1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_receipt11 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / index / descriptionPrevious value: -"Receipt index in the log"New value: +"Receipt index in the log (0-based; current size at GET /log/checkpoint)" - added
Output schema / properties / anchor / properties / anchored_tree_sizeAdded value: +{ + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / anchor / properties / covers_this_receipt / descriptionAdded value: +"deprecated alias of root_covers_this_receipt" - added
Output schema / properties / anchor / properties / root_covers_this_receiptAdded value: +{ + "description": "true iff index < anchored_tree_size: the anchored ROOT commits to this leaf via the inclusion proof", + "type": "boolean" +} - added
Output schema / properties / anchor / properties / what_is_anchoredAdded value: +{ + "type": "string" +} - changed
Output schema / properties / anchor / requiredPrevious value: -[ - "covers_this_receipt" -]New value: +[ + "root_covers_this_receipt", + "anchored_tree_size", + "what_is_anchored" +] - changed
Output schema / properties / provenance / properties / level / enumPrevious value: -[ - "self-reported" -]New value: +[ + "self-reported", + "server-observed", + "externally-verified" +] - added
Output schema / properties / provenance / properties / levelsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenance / properties / levels_meaningAdded value: +{ + "type": "object" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "level" -]New value: +[ + "level", + "levels" +]
- Changed
seal_action24 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / action / descriptionPrevious value: -"What the AI did, short label (<=128 chars)"New value: +"What the AI did, short label. PUBLISHED in the log." - added
Input schema / properties / action / maxLengthAdded value: +128 - added
Input schema / properties / action / minLengthAdded value: +1 - changed
Input schema / properties / agent_id / descriptionPrevious value: -"Your agent identifier (optional, <=128)"New value: +"Your agent identifier (optional). PUBLISHED." - added
Input schema / properties / agent_id / maxLengthAdded value: +128 - changed
Input schema / properties / input_hash / descriptionPrevious value: -"sha256 hex (64 chars) of the input/prompt"New value: +"sha256 of the input/prompt, 64 hex chars" - added
Input schema / properties / input_hash / patternAdded value: +"^[0-9a-fA-F]{64}$" - changed
Input schema / properties / meta / descriptionPrevious value: -"Extra JSON, <=512 chars (optional)"New value: +"Extra JSON object as a string (optional). PUBLISHED." - added
Input schema / properties / meta / maxLengthAdded value: +512 - changed
Input schema / properties / output_hash / descriptionPrevious value: -"sha256 hex of the output (optional)"New value: +"sha256 of the output, 64 hex chars (optional)" - added
Input schema / properties / output_hash / patternAdded value: +"^[0-9a-fA-F]{64}$" - changed
Input schema / properties / tool / descriptionPrevious value: -"Tool/model used (optional, <=128)"New value: +"Tool/model used (optional). PUBLISHED." - added
Input schema / properties / tool / maxLengthAdded value: +128 - changed
Input schema / requiredPrevious value: -[ - "action", - "input_hash" -]New value: +[ + "mode", + "action", + "input_hash" +] - added
Output schema / properties / anchor / properties / anchored_tree_sizeAdded value: +{ + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / anchor / properties / covers_this_receipt / descriptionAdded value: +"deprecated alias of root_covers_this_receipt" - added
Output schema / properties / anchor / properties / root_covers_this_receiptAdded value: +{ + "description": "true iff index < anchored_tree_size: the anchored ROOT commits to this leaf via the inclusion proof", + "type": "boolean" +} - added
Output schema / properties / anchor / properties / what_is_anchoredAdded value: +{ + "type": "string" +} - changed
Output schema / properties / anchor / requiredPrevious value: -[ - "covers_this_receipt" -]New value: +[ + "root_covers_this_receipt", + "anchored_tree_size", + "what_is_anchored" +] - changed
Output schema / properties / provenance / properties / level / enumPrevious value: -[ - "self-reported" -]New value: +[ + "self-reported", + "server-observed", + "externally-verified" +] - added
Output schema / properties / provenance / properties / levelsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenance / properties / levels_meaningAdded value: +{ + "type": "object" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "level" -]New value: +[ + "level", + "levels" +]
- Changed
verify_receipt1 field changed- added
Input schema / additionalPropertiesAdded value: +false
7 tool updates
- Changed
get_agent_economy_stats4 fields changed- removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / descriptionRemoved value: -"Observatory payload from gblin.digital/api/agent-stats — cumulative x402 call and payer counters with methodology notes" - added
Output schema / propertiesAdded value: +{ + "_source": { + "description": "Provenance and disclosure of the counters", + "properties": { + "data_endpoint": { + "type": "string" + }, + "disclosure": { + "type": "string" + }, + "docs": { + "type": "string" + }, + "license": { + "type": "string" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "total_paid_calls": { + "description": "Settled x402 calls, cumulative", + "type": "integer" + }, + "total_unique_agents": { + "description": "Distinct payer wallets, cumulative (our own wallets excluded)", + "type": "integer" + }, + "total_usdc_earned": { + "description": "USDC received, cumulative", + "type": "number" + } +} - added
Output schema / requiredAdded value: +[ + "total_paid_calls", + "total_unique_agents", + "total_usdc_earned" +]
- Changed
get_receipt15 fields changed- added
Input schema / properties / index / minimumAdded value: +0 - added
Output schema / properties / anchorAdded value: +{ + "description": "Latest daily EAS anchor of the tree root on Base and whether it already covers this receipt", + "properties": { + "chain": { + "type": "string" + }, + "covers_this_receipt": { + "type": "boolean" + }, + "eas_schema_uid": { + "type": "string" + }, + "explorer": { + "type": "string" + }, + "last_anchor": { + "properties": { + "day": { + "type": "string" + }, + "root": { + "type": "string" + }, + "tree_size": { + "type": "integer" + }, + "tx": { + "type": "string" + } + }, + "type": [ + "object", + "null" + ] + }, + "method": { + "type": "string" + }, + "promise_id": { + "type": "string" + } + }, + "required": [ + "covers_this_receipt" + ], + "type": "object" +} - added
Output schema / properties / checkpoint / descriptionAdded value: +"C2SP signed note (origin, size, root)" - added
Output schema / properties / formatAdded value: +{ + "const": "gblin-receipt/v1", + "type": "string" +} - added
Output schema / properties / indexAdded value: +{ + "type": "integer" +} - added
Output schema / properties / leafAdded value: +{ + "description": "base64 SHA256(0x00 || canonical)", + "type": "string" +} - added
Output schema / properties / payload / descriptionAdded value: +"The signed, canonicalized record (gblin-canonical-json/1)" - added
Output schema / properties / payload / propertiesAdded value: +{ + "action": { + "type": "string" + }, + "agent_id": { + "type": [ + "string", + "null" + ] + }, + "demo": { + "type": "boolean" + }, + "index": { + "type": "integer" + }, + "input_hash": { + "type": "string" + }, + "log": { + "type": "string" + }, + "meta": {}, + "output_hash": { + "type": [ + "string", + "null" + ] + }, + "tool": { + "type": [ + "string", + "null" + ] + }, + "ts": { + "type": "string" + }, + "v": { + "type": "integer" + } +} - added
Output schema / properties / payload / requiredAdded value: +[ + "v", + "log", + "index", + "ts", + "action", + "input_hash" +] - added
Output schema / properties / provenanceAdded value: +{ + "description": "What the receipt does and does not prove", + "properties": { + "level": { + "enum": [ + "self-reported" + ], + "type": "string" + }, + "meaning": { + "type": "string" + } + }, + "required": [ + "level" + ], + "type": "object" +} - added
Output schema / properties / rootAdded value: +{ + "description": "base64 Merkle root at tree_size", + "type": "string" +} - added
Output schema / properties / signatureAdded value: +{ + "description": "base64 Ed25519 over 'gblin-receipt/v1\\n' + canonical", + "type": "string" +} - added
Output schema / properties / tree_sizeAdded value: +{ + "type": "integer" +} - added
Output schema / properties / verifier_keyAdded value: +{ + "description": "C2SP note verifier key: origin+hash+base64(0x01||pub)", + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "payload", - "checkpoint" -]New value: +[ + "format", + "payload", + "leaf", + "index", + "tree_size", + "root", + "signature", + "verifier_key", + "inclusion_proof", + "checkpoint", + "anchor", + "provenance" +]
- Removed
how_to_buy_live_attestation - Removed
how_to_seal_paid - Added
seal_action - Removed
seal_action_demo - Added
verify_receipt
3 tool updates
- Added
get_receipt - Added
how_to_seal_paid - Added
seal_action_demo
6 tool updates
- First observed
get_agent_economy_stats - First observed
get_attestation_sample - First observed
get_coherence_report - First observed
get_market_risk_regime - First observed
get_protocol_info - First observed
how_to_buy_live_attestation
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Non-custodial USDC yield vaults on Base mainnet with 9 MCP tools for AI agent treasury.
Agent credit issuance and scoring — programmable credit lines on Base L2
USDC treasury vaults, streaming payments, and DeFi yield for AI agents
On-chain security and market intelligence for trading agents on Base.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAgent equity markets, credit markets, and capability staking using USDC on Base L2.MIT
- AlicenseNot gradedqualityCmaintenanceUndercollateralized credit lines for autonomous agents based on trust scoring, enabling on-chain credit scoring, agent-to-agent loans, and USDC settlement on Base L2.MIT
- AlicenseNot gradedqualityCmaintenanceEnables agents to assess counterparty risk, token danger, and wallet creditworthiness on Base by analyzing contract powers and controlling wallet reputation.MIT
- FlicenseAqualityFmaintenanceDeFi execution and agent-to-agent economy tools for AI agents — swaps, yield, transfers, policy enforcement, trust scoring, A2A jobs, and P\&L across Ethereum, Base, Arbitrum, and Polygon.311-
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool has a distinct purpose: coherence.report for metrics, protocol.info/stats for protocol data, receipts.get/seal/verify for receipt lifecycle, risk.regime for live risk, and risk.attestation_sample for testing. No two tools overlap in functionality.
The dot-separated prefix pattern is consistent, but the second part mixes verbs (report, get, seal, verify) with nouns (info, stats, attestation_sample, regime). This inconsistency could confuse agents expecting a uniform verb-object structure.
With 8 tools, the server covers its stated domain (risk regime, protocol info, receipts) without bloat. Each tool serves a clear, non-redundant role, fitting the typical 3-15 tool range.
The toolkit covers all core operations: querying risk, retrieving protocol info/stats, managing receipts (create, retrieve, verify), and providing a test sample. No essential functionality appears missing for the described free-tier scope.