Skip to main content
Glama

instrument_state

Read-only

The live state of each instrument: mark, index, basis in bps, funding rate and next funding time, top of book spread, 24h volume, feed health and age, and reference: the spot token of the same name on BNB Chain (CRCLB, SPCXB) priced from its PancakeSwap v3 USDT pool with the mark against it in bps, and the US equity session of the underlying now (open, weekend, holiday, early close) from the Pyth feed schedule. Optional instrument id. Carries meta (contentHash, validUntil) so freshness can tell you when nothing changed. Price: 1 cent per call.

Input Schema

NameRequiredDescriptionDefault
instrumentNoInstrument id, one of the listed values; absent = every instrument. Example: spcx

Output Schema

NameRequiredDescriptionDefault
dataGapsNoPresent only when the window of the answer overlaps a recorded data gap. Figures inside each listed period are incomplete. periods are the recorded gaps (end null while still open); atCall is measured against the window of this call and is left out of meta.contentHash.
checkedAtNo
instrumentsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / instrument / description
      Added value: +"Instrument id, one of the listed values; absent = every instrument. Example: spcx"
    • changedInput schema / properties / instrument / enum
      Previous value: -[
      -  "spcx",
      -  "crcl"
      -]New value: +[
      +  "spcx"
      +]
  2. Changed1 schema field changed
    • changedInput schema / x-lexicon / bundleSha256
      Previous value: -"670f7504e3de5031beccee25a2d24e4515f68b893295f6d5b0d3a0665498b2c9"New value: +"25cc80db6d8e9eac73d47a50f7ad6333a21f1972d008a8fed0159de8bfb4b519"
  3. Changed2 schema fields changed
    • changedInput schema / x-lexicon / bundleSha256
      Previous value: -"e5b4290024a229f2bdf97f8fc6a0079c3fe13b77267f41fdcffeb8b26aa1c41e"New value: +"670f7504e3de5031beccee25a2d24e4515f68b893295f6d5b0d3a0665498b2c9"
    • changedInput schema / x-lexicon / version
      Previous value: -"0.1.0"New value: +"0.2.0"
  4. Changed5 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedOutput schema / properties / dataGaps
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Present only when the window of the answer overlaps a recorded data gap. Figures inside each listed period are incomplete. periods are the recorded gaps (end null while still open); atCall is measured against the window of this call and is left out of meta.contentHash.",
      +  "properties": {
      +    "gaps": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "atCall": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "note": {
      +                "type": "string"
      +              },
      +              "periodsInWindow": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "end": {
      +                      "type": "number"
      +                    },
      +                    "ongoing": {
      +                      "type": "boolean"
      +                    },
      +                    "start": {
      +                      "type": "number"
      +                    }
      +                  },
      +                  "required": [
      +                    "start",
      +                    "end"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "shareOfWindowPct": {
      +                "type": "number"
      +              },
      +              "windowEnd": {
      +                "type": "number"
      +              },
      +              "windowStart": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "windowStart",
      +              "windowEnd",
      +              "periodsInWindow",
      +              "shareOfWindowPct",
      +              "note"
      +            ],
      +            "type": "object"
      +          },
      +          "chain": {
      +            "type": "string"
      +          },
      +          "data": {
      +            "type": "string"
      +          },
      +          "periods": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "end": {
      +                  "type": [
      +                    "number",
      +                    "null"
      +                  ]
      +                },
      +                "ongoing": {
      +                  "type": "boolean"
      +                },
      +                "start": {
      +                  "type": "number"
      +                }
      +              },
      +              "required": [
      +                "start",
      +                "end"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "records": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "lost": {
      +                  "type": [
      +                    "number",
      +                    "null"
      +                  ]
      +                },
      +                "lostUnit": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "record": {
      +                  "type": "string"
      +                },
      +                "source": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "source",
      +                "record"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "section": {
      +            "type": "string"
      +          },
      +          "window": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "section",
      +          "chain",
      +          "data",
      +          "window",
      +          "periods",
      +          "records",
      +          "atCall"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "statement": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "statement",
      +    "gaps"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / instruments / items / properties / reference
      Added value: +{
      +  "additionalProperties": true,
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / meta
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "contentHash": {
      -      "type": "string"
      -    },
      -    "generated": {
      -      "type": "number"
      -    },
      -    "priceUsd": {
      -      "type": "number"
      -    },
      -    "validUntil": {
      -      "type": "number"
      -    }
      -  },
      -  "type": "object"
      -}
    • removedOutput schema / properties / receipt
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "bytes": {
      -      "type": "number"
      -    },
      -    "covers": {
      -      "type": "string"
      -    },
      -    "issuedAt": {
      -      "type": "number"
      -    },
      -    "lookup": {
      -      "type": "string"
      -    },
      -    "network": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "nonce": {
      -      "type": "string"
      -    },
      -    "seq": {
      -      "type": "number"
      -    },
      -    "settleTx": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "sha256": {
      -      "type": "string"
      -    },
      -    "tool": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    }
      -  },
      -  "type": "object"
      -}
  5. Changed1 schema field changed
    • addedInput schema / properties / instrument / enum
      Added value: +[
      +  "spcx",
      +  "crcl"
      +]
  6. Changed1 schema field changed
    • changedInput schema / x-lexicon / bundleSha256
      Previous value: -"a1c2e10fd3177d6b4d59ca78693e8fb36880165cf0f735f680dd86a510411178"New value: +"e5b4290024a229f2bdf97f8fc6a0079c3fe13b77267f41fdcffeb8b26aa1c41e"
  7. Changed1 schema field changed
    • changedInput schema / x-lexicon / bundleSha256
      Previous value: -"1eeb782ee15fe69fc80776948e0556fa6b795e210e6305935b2c97b73d955cda"New value: +"a1c2e10fd3177d6b4d59ca78693e8fb36880165cf0f735f680dd86a510411178"
  8. Changed1 schema field changed
    • changedInput schema / x-lexicon / bundleSha256
      Previous value: -"c014292cad7497ce9fd68c33345ac32cb42b672c8e77d6c749c26e162cc207e4"New value: +"1eeb782ee15fe69fc80776948e0556fa6b795e210e6305935b2c97b73d955cda"
  9. Changed2 schema fields changed
    • addedInput schema / x-lexicon
      Added value: +{
      +  "bundleSha256": "c014292cad7497ce9fd68c33345ac32cb42b672c8e77d6c749c26e162cc207e4",
      +  "name": "ChainHelix Agentic Lexicon",
      +  "resolve": "lexicon_resolve",
      +  "spec": "lexicon_spec",
      +  "version": "0.1.0"
      +}
    • addedInput schema / x-vocab
      Added value: +{
      +  "instrument": "market.instrument"
      +}
  10. Added

TDQS

A3.5/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true, so the description adds real behavioral value: it discloses cost ('1 cent per call'), the presence of contentHash/validUntil meta enabling staleness detection, and that feed health and age are part of the payload (i.e., data may be stale). It does not cover auth/paid-access mechanics or error behavior, keeping it short of a 5.

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

Conciseness3/5

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

It is front-loaded with the returned fields, which is the right ordering, and every clause conveys substance. But it is delivered as one dense run-on with nested colons that is hard to parse, and the heavy field enumeration partially duplicates the output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Since an output schema exists, the long field inventory is somewhat redundant, while things an agent genuinely needs—how this differs from instruments/market_state/prices, and the payment/auth path implied by '1 cent per call'—are absent. Cost and freshness-meta disclosure are good additions, so it is adequate but with clear gaps.

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 single parameter carries an enum and an 'absent = every instrument' explanation in the schema, so the baseline of 3 applies. The description's 'Optional instrument id' merely restates the schema without adding syntax, defaults, or examples.

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 names a specific resource (per-instrument state) and enumerates exactly what it contains: mark, index, basis in bps, funding rate and next funding time, spread, 24h volume, feed health/age, plus reference spot pricing and US equity session. An agent can tell this is a live snapshot tool rather than a historical or signal tool. However it never names or contrasts the near-duplicate siblings (market_state, prices, instruments, instrument_signals), so differentiation is left to inference.

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?

Usage is only implied: 'Optional instrument id' signals you may scope to one instrument or fetch all, and the note that it 'carries meta (contentHash, validUntil) so freshness can tell you when nothing changed' hints at a poll/conditional-refresh workflow with the freshness tool. There is no explicit when-to-use vs. market_state/prices/instruments guidance and no exclusions or prerequisites.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources