Skip to main content
Glama

DAMO Market State

Server Details

Crypto market state, 44 assets: 4 states x 10 timeframes. Recorded, never recomputed, verifiable.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 27 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
ChatGPT
–
Claude
DAMO Market State

TDQS

A3.9/5.0

Scored across 4 tools

Disambiguation4/5

The four tools split cleanly into single-symbol state, batched state, definitions, and symbol discovery, and each description states its use case explicitly. The only friction point is get_market_state vs get_market_states, whose names differ by a single character and whose output shape is otherwise identical, so a rushed agent could pick the wrong one.

Naming Consistency4/5

All names follow a snake_case verb_noun pattern (get_*, list_*) that is readable and predictable. The singular/plural pair get_market_state / get_market_states is technically consistent but visually near-identical, which is a minor deviation from ideal distinctiveness.

Tool Count4/5

Four tools is on the lean side but each maps to a genuine need: fetch one, fetch many, explain codes, discover symbols. There is no filler, though the surface is thin enough that batch behavior is folded into a near-duplicate tool rather than a parameter.

Completeness4/5

The read-only market-state domain is well covered: single and bulk retrieval, symbol discovery, and semantic definitions of states/codes/layers. Minor gaps remain around historical state lookup or a timeframe/layer listing beyond what the definitions tool implies, but core workflows have no dead ends.

Available Tools

4 tools
get_market_stateGet DAMO market stateA
Read-onlyIdempotent
Inspect

Use when the user asks about the current market state (trend or momentum) of a crypto asset on any timeframe from 1 minute to 1 month. Returns state data only: no prices, forecasts or trade signals. Current DAMO market state of one symbol across 10 timeframes: state name and permanent code per timeframe, plus a 10-value vector in fixed timeframe order. as_of is when DAMO last wrote the record; each timeframe's candle close is in states[tf].candle_close (live: candle_close_expected).

NameRequiredDescriptionDefault
layerNoverified = closed candles (recorded, never changed); live = forming candles (provisional)verified
proofNoAlso put DAMO's Ed25519 signature in the result body as 'proof'.
formatNocompact = symbol, layer, time, vector, short citation and remaining quota only. full = per-timeframe state, seq, hash and engine version (for citing and checking).full
symbolYesTicker, e.g. BTCUSDT. BTC, btc, BTC/USDT, BTC-PERP and coin names like Bitcoin are also accepted. Not a sentence: on a wrong symbol the error lists did_you_mean.
timeframesNoOptional. Only these timeframes are returned and counted against the quota (case-sensitive: 1m = minute, 1M = month). Omit for all 10.

Output Schema

NameRequiredDescription
as_ofNoverified: when DAMO last wrote this record (UTC). Each timeframe's own close time is states[tf].candle_close
layerYes
proofNoEd25519 signature when proof=true
quotaNo
staleNo
statesNofull format: per-timeframe state, code, candle status and record fields
symbolYes
vectorYesState codes in timeframe order (1 bull_momentum, 2 weakening, 3 bear_momentum, 4 recovery); null = not requested or not available
citationYes
chain_headNo
observed_atNolive: when DAMO observed the forming candles (UTC)
vector_orderNo
engine_versionNo
quota_remainingNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish this as a safe, idempotent read, and the description adds real behavioral context that goes beyond them: verified candles are recorded and never change, live candles are provisional, and the record carries DAMO's write timestamp. It does not discuss quota or error behavior in depth (though the schema notes did_you_mean on bad symbols), which keeps it just under 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.

Conciseness5/5

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

Front-loaded with the triggering condition, then a scope disclaimer, then return-shape details, in three tight sentences with no filler. Each sentence carries distinct information: when to use, what it does not return, and how to interpret the payload.

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?

With an output schema present and 100% parameter coverage, the description covers the remaining ambiguity: verified vs live semantics, timestamp meaning, and vector ordering. The main remaining gap is that it does not route the agent to the sibling tools for multi-symbol or definition lookups.

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 a baseline of 3 applies, but the description adds meaning beyond the schema: it explains that as_of is DAMO's write time and that live-layer candles expose candle_close_expected while verified uses states[tf].candle_close. It also clarifies the fixed timeframe ordering of the returned vector, which the schema cannot express.

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?

States a specific verb and resource: returns the current DAMO market state of one symbol across 10 timeframes, with an explicit scope disclaimer ('state data only: no prices, forecasts or trade signals'). The 'one symbol' phrasing implicitly separates it from the plural sibling get_market_states, but that sibling is never named, 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 Guidelines4/5

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

'Use when the user asks about the current market state (trend or momentum) of a crypto asset on any timeframe from 1 minute to 1 month' gives a clear trigger condition and acceptable timeframe range. No exclusions or named alternatives (e.g. when to prefer get_market_states or get_state_definitions) are provided.

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

get_market_statesGet DAMO market state for several symbolsA
Read-onlyIdempotent
Inspect

Use when the user asks about several crypto assets at once. Same as get_market_state for up to 50 symbols in one call.

NameRequiredDescriptionDefault
layerNoverified = closed candles (recorded, never changed); live = forming candles (provisional)verified
proofNoAlso put DAMO's Ed25519 signature in the result body as 'proof'.
formatNocompact = symbol, layer, time, vector, short citation and remaining quota only. full = per-timeframe state, seq, hash and engine version (for citing and checking).full
symbolsYes
timeframesNoOptional. Only these timeframes are returned and counted against the quota (case-sensitive: 1m = minute, 1M = month). Omit for all 10.

Output Schema

NameRequiredDescription
countNo
layerYes
proofNo
quotaNo
errorsNo
resultsYes
citationNo
quota_remainingNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world behavior, so the safety profile is covered. The only real addition is the claim of behavioral equivalence to get_market_state, plus the 50-symbol cap (which repeats maxItems from the schema). Nothing is said about quota consumption per symbol, partial failures across a batch, or whether the whole call fails if one symbol is bad — meaningful gaps for a batch tool whose schema notes a per-timeframe quota.

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, front-loaded with the triggering situation and then the equivalence and batch limit. Every clause earns its place and there is no filler.

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?

Output schema exists and annotations are rich, so return values and safety need no explanation. However, the description defines the tool entirely by reference to get_market_state, forcing the agent to read another definition to understand the response shape, and it omits batch-specific behavior (per-symbol quota cost, mixed valid/invalid symbol handling) that matters at 50 items.

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 80%, so the schema already explains layer, proof, format, symbols (with accepted ticker variants and did_you_mean errors) and timeframes quota accounting. The description adds no parameter-level meaning beyond the 50-symbol limit already encoded as maxItems, so baseline 3 applies.

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?

States a clear capability: batch retrieval of DAMO market state for several crypto assets, up to 50 per call. It explicitly ties itself to the sibling get_market_state as the multi-symbol form, so an agent can distinguish it from the single-symbol tool. No verb is spelled out, but 'Same as get_market_state ... in one call' makes the resource and operation 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?

'Use when the user asks about several crypto assets at once' gives a clear selection condition, and 'Same as get_market_state for up to 50 symbols' implicitly routes single-symbol requests to the sibling. It stops short of any explicit exclusion or mention of list_symbols/get_state_definitions, so the routing picture is not fully closed.

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

get_state_definitionsDAMO state definitionsA
Read-onlyIdempotent
Inspect

Use when the user asks what DAMO's states, codes or layers mean. The 4 permanent DAMO states and codes, timeframe order, the verified/live layers and what DAMO outputs (state data only).

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
statesYes
timeframesNo
codes_are_permanentNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds that the content is fixed reference material (the 4 permanent states, the layer taxonomy), which tells the agent results are static and not user-specific. It says nothing about size or format of the returned reference, which is the remaining behavioral gap.

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?

Two sentences, with the usage trigger front-loaded ahead of the content inventory. The second sentence is a fragmentary list rather than a clause, but every element in it (states, codes, order, layers, output scope) maps to something the agent would otherwise have to guess.

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?

For a zero-parameter reference tool with an output schema present, the description covers the trigger and the scope of returned knowledge, which is enough to select and call it. The only thing an agent might still want — an explicit pointer to the sibling that returns actual state values — is absent.

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 takes zero parameters, so the baseline of 4 applies and there is no parameter surface requiring explanation. The description correctly does not invent any input dimensions.

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 (DAMO's states, codes, timeframe order, verified/live layers) and frames it as a glossary/reference lookup rather than data retrieval. It implicitly separates itself from get_market_state/get_market_states by scoping the answer to 'what DAMO outputs (state data only)', though it never names those siblings as the alternative for actual 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 opening clause 'Use when the user asks what DAMO's states, codes or layers mean' is an explicit, actionable trigger condition. It stops short of a when-not statement or naming get_market_state as the path for live state values, so routing for the adjacent case is left to inference.

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

list_symbolsList DAMO symbolsA
Read-onlyIdempotent
Inspect

Use to check whether DAMO covers an asset and which symbol name to use. Symbols covered by DAMO, with available layers and any timeframe not yet available.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
countYes
symbolsYes

TDQS

A4.1/5.0
Behavior4/5

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

The annotations already declare read-only, idempotent, non-destructive behavior, so the description does not need to restate safety. It adds useful behavioral context by noting that results include available layers and 'any timeframe not yet available,' which discloses coverage limitations 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 tight sentences, with the usage guidance front-loaded before the output content. Every phrase contributes to helping an agent decide when to call it and what it returns.

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?

For a zero-parameter, read-only listing tool with an output schema and clear annotations, the description is nearly complete: it says when to use it and summarizes the returned coverage details. It could be fuller only by mentioning sibling-tool alternatives, which is already a usage-guideline gap.

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 there are no parameter semantics to explain. Per the rubric, a zero-parameter schema establishes a baseline of 4.

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 states a clear purpose: check DAMO coverage and identify the symbol name to use, and it specifies that results include covered symbols, available layers, and unavailable timeframes. It does not explicitly differentiate itself from the sibling state-related tools, so it falls short of a 5.

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 opening phrase 'Use to check whether DAMO covers an asset and which symbol name to use' gives clear usage context. It does not state when not to use this tool or name alternatives such as get_state_definitions, so it lacks the explicit routing needed for a 5.

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. 2 tool updates
    • Changedget_market_state2 fields changed
      • changedInput schema / properties / symbol / description
        Previous value: -"Symbol, e.g. BTCUSDT (Binance USDⓈ-M perpetual naming)"New value: +"Ticker, e.g. BTCUSDT. BTC, btc, BTC/USDT, BTC-PERP and coin names like Bitcoin are also accepted. Not a sentence: on a wrong symbol the error lists did_you_mean."
      • addedInput schema / properties / symbol / maxLength
        Added value: +40
    • Changedget_market_states2 fields changed
      • changedInput schema / properties / symbols / items / description
        Previous value: -"Symbol, e.g. BTCUSDT (Binance USDⓈ-M perpetual naming)"New value: +"Ticker, e.g. BTCUSDT. BTC, btc, BTC/USDT, BTC-PERP and coin names like Bitcoin are also accepted. Not a sentence: on a wrong symbol the error lists did_you_mean."
      • addedInput schema / properties / symbols / items / maxLength
        Added value: +40
  2. 2 tool updates
    • Changedget_market_state2 fields changed
      • changedOutput schema / properties / as_of / description
        Previous value: -"verified: time of the latest closed candle (UTC)"New value: +"verified: when DAMO last wrote this record (UTC). Each timeframe's own close time is states[tf].candle_close"
      • changedOutput schema / properties / observed_at / description
        Previous value: -"live: observation time (UTC)"New value: +"live: when DAMO observed the forming candles (UTC)"
    • Changedget_market_states2 fields changed
      • changedOutput schema / properties / results / items / properties / as_of / description
        Previous value: -"verified: time of the latest closed candle (UTC)"New value: +"verified: when DAMO last wrote this record (UTC). Each timeframe's own close time is states[tf].candle_close"
      • changedOutput schema / properties / results / items / properties / observed_at / description
        Previous value: -"live: observation time (UTC)"New value: +"live: when DAMO observed the forming candles (UTC)"
  3. 4 tool updates
    • Changedget_market_state1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of": {
        +      "description": "verified: time of the latest closed candle (UTC)",
        +      "type": "string"
        +    },
        +    "chain_head": {
        +      "type": "object"
        +    },
        +    "citation": {
        +      "type": "string"
        +    },
        +    "engine_version": {
        +      "type": "string"
        +    },
        +    "layer": {
        +      "enum": [
        +        "verified",
        +        "live"
        +      ],
        +      "type": "string"
        +    },
        +    "observed_at": {
        +      "description": "live: observation time (UTC)",
        +      "type": "string"
        +    },
        +    "proof": {
        +      "description": "Ed25519 signature when proof=true",
        +      "type": "object"
        +    },
        +    "quota": {
        +      "type": "object"
        +    },
        +    "quota_remaining": {
        +      "type": "integer"
        +    },
        +    "stale": {
        +      "type": "boolean"
        +    },
        +    "states": {
        +      "additionalProperties": {
        +        "type": "object"
        +      },
        +      "description": "full format: per-timeframe state, code, candle status and record fields",
        +      "type": "object"
        +    },
        +    "symbol": {
        +      "type": "string"
        +    },
        +    "vector": {
        +      "description": "State codes in timeframe order (1 bull_momentum, 2 weakening, 3 bear_momentum, 4 recovery); null = not requested or not available",
        +      "items": {
        +        "maximum": 4,
        +        "minimum": 1,
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "type": "array"
        +    },
        +    "vector_order": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "symbol",
        +    "layer",
        +    "vector",
        +    "citation"
        +  ],
        +  "type": "object"
        +}
    • Changedget_market_states1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "citation": {
        +      "type": "string"
        +    },
        +    "count": {
        +      "type": "integer"
        +    },
        +    "errors": {
        +      "items": {
        +        "properties": {
        +          "error": {
        +            "type": "string"
        +          },
        +          "message": {
        +            "type": "string"
        +          },
        +          "symbol": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "layer": {
        +      "enum": [
        +        "verified",
        +        "live"
        +      ],
        +      "type": "string"
        +    },
        +    "proof": {
        +      "type": "object"
        +    },
        +    "quota": {
        +      "type": "object"
        +    },
        +    "quota_remaining": {
        +      "type": "integer"
        +    },
        +    "results": {
        +      "items": {
        +        "properties": {
        +          "as_of": {
        +            "description": "verified: time of the latest closed candle (UTC)",
        +            "type": "string"
        +          },
        +          "chain_head": {
        +            "type": "object"
        +          },
        +          "citation": {
        +            "type": "string"
        +          },
        +          "engine_version": {
        +            "type": "string"
        +          },
        +          "layer": {
        +            "enum": [
        +              "verified",
        +              "live"
        +            ],
        +            "type": "string"
        +          },
        +          "observed_at": {
        +            "description": "live: observation time (UTC)",
        +            "type": "string"
        +          },
        +          "proof": {
        +            "description": "Ed25519 signature when proof=true",
        +            "type": "object"
        +          },
        +          "quota": {
        +            "type": "object"
        +          },
        +          "quota_remaining": {
        +            "type": "integer"
        +          },
        +          "stale": {
        +            "type": "boolean"
        +          },
        +          "states": {
        +            "additionalProperties": {
        +              "type": "object"
        +            },
        +            "description": "full format: per-timeframe state, code, candle status and record fields",
        +            "type": "object"
        +          },
        +          "symbol": {
        +            "type": "string"
        +          },
        +          "vector": {
        +            "description": "State codes in timeframe order (1 bull_momentum, 2 weakening, 3 bear_momentum, 4 recovery); null = not requested or not available",
        +            "items": {
        +              "maximum": 4,
        +              "minimum": 1,
        +              "type": [
        +                "integer",
        +                "null"
        +              ]
        +            },
        +            "type": "array"
        +          },
        +          "vector_order": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "symbol",
        +          "layer",
        +          "vector"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "layer",
        +    "results"
        +  ],
        +  "type": "object"
        +}
    • Changedget_state_definitions1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "codes_are_permanent": {
        +      "type": "boolean"
        +    },
        +    "states": {
        +      "items": {
        +        "properties": {
        +          "code": {
        +            "type": "integer"
        +          },
        +          "state": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "code",
        +          "state"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "timeframes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "states"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_symbols1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "count": {
        +      "type": "integer"
        +    },
        +    "symbols": {
        +      "items": {
        +        "properties": {
        +          "layers": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "symbol": {
        +            "type": "string"
        +          },
        +          "timeframes": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "symbol"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "count",
        +    "symbols"
        +  ],
        +  "type": "object"
        +}
  4. 2 tool updates
    • Changedget_market_state2 fields changed
      • addedInput schema / properties / format
        Added value: +{
        +  "default": "full",
        +  "description": "compact = symbol, layer, time, vector, short citation and remaining quota only. full = per-timeframe state, seq, hash and engine version (for citing and checking).",
        +  "enum": [
        +    "full",
        +    "compact"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / proof
        Added value: +{
        +  "default": false,
        +  "description": "Also put DAMO's Ed25519 signature in the result body as 'proof'.",
        +  "type": "boolean"
        +}
    • Changedget_market_states2 fields changed
      • addedInput schema / properties / format
        Added value: +{
        +  "default": "full",
        +  "description": "compact = symbol, layer, time, vector, short citation and remaining quota only. full = per-timeframe state, seq, hash and engine version (for citing and checking).",
        +  "enum": [
        +    "full",
        +    "compact"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / proof
        Added value: +{
        +  "default": false,
        +  "description": "Also put DAMO's Ed25519 signature in the result body as 'proof'.",
        +  "type": "boolean"
        +}
  5. 2 tool updates
    • Changedget_market_state1 field changed
      • addedInput schema / properties / timeframes
        Added value: +{
        +  "description": "Optional. Only these timeframes are returned and counted against the quota (case-sensitive: 1m = minute, 1M = month). Omit for all 10.",
        +  "items": {
        +    "enum": [
        +      "1m",
        +      "5m",
        +      "15m",
        +      "1h",
        +      "4h",
        +      "12h",
        +      "1d",
        +      "3d",
        +      "1w",
        +      "1M"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array",
        +  "uniqueItems": true
        +}
    • Changedget_market_states1 field changed
      • addedInput schema / properties / timeframes
        Added value: +{
        +  "description": "Optional. Only these timeframes are returned and counted against the quota (case-sensitive: 1m = minute, 1M = month). Omit for all 10.",
        +  "items": {
        +    "enum": [
        +      "1m",
        +      "5m",
        +      "15m",
        +      "1h",
        +      "4h",
        +      "12h",
        +      "1d",
        +      "3d",
        +      "1w",
        +      "1M"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array",
        +  "uniqueItems": true
        +}
  6. 4 tool updates
    • First observedget_market_state
    • First observedget_market_states
    • First observedget_state_definitions
    • First observedlist_symbols

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Read-only crypto perps microstructure for AI agents: normalized cross-exchange market state (funding + multi-year percentile, OI, volume, CVD, order-book imbalance, liquidations, basis), OHLCV, 15-min state history, and measured conditional outcomes (historical base rates, not predictions) — 6 assets across Binance, Bybit, OKX and Hyperliquid, every metric with self-declared coverage and freshness
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Delivers real-time crypto market microstructure, derivatives, order flow CVD/OI regime classification, fear & greed sentiment, and whale tracking context, enabling traders to assess market regimes and complement charting tools.
    42 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Deterministic market-state engine for trading agents — zero LLM in the signal path. 8 tools: structural market state & phase, action gate (GO/WATCH/HOLD), entry/target/invalidation coordinates, bar-by-bar state timeline, composed view cards, and pre-trade intent validation. Every output traces to a bar-stamped ledger with a public daily self-scoring track record.
    3
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources