Skip to main content
Glama

screener_run

Read-onlyIdempotent

Scan the venue's listed instruments for ones matching conditions, instead of looking at the open chart. Rules combine price fields, any indicator plot, or a formula expression, with ALL/ANY matching. This is the tool for "which coins are doing X right now". It fetches history for every instrument in the universe, so use exactly the requested filters. For "5 coins with RSI above 50", call rules: [{left:{kind:"indicator",studyId:"rsi"},operator:"above",right:50}], limit:5. Use above for a current state; crossesAbove only for a fresh crossing. limit controls returned matches, universeSize controls how many markets are searched.

Input Schema

NameRequiredDescriptionDefault
nameNo
limitNoMatches to return. Default 25, max 60.
logicNoDefault all.
orderNoWith sortBy. Default desc; asc for the biggest losers.
quoteNoDefault USDC on Hyperliquid, USDT elsewhere.
rulesYes
marketNoDefaults to the chart. Perpetuals are futures.
sortByNoOrder the matches before the limit, e.g. change24h for top movers. Default: universe order (volume).
exchangeNoDefaults to the chart.
lookbackNoBars. Default 300.
timeframeNoDefaults to the chart.
universeSizeNoDefault 50.
manualSymbolsNoOptional symbols forced into the universe before current-volume ranking.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / quote / description
      Previous value: -"Default USDT."New value: +"Default USDC on Hyperliquid, USDT elsewhere."
    • addedInput schema / properties / rules / items / properties / left / properties
      Added value: +{
      +  "expression": {
      +    "type": "string"
      +  },
      +  "field": {
      +    "enum": [
      +      "open",
      +      "high",
      +      "low",
      +      "close",
      +      "volume",
      +      "quoteVolume",
      +      "trades",
      +      "change1",
      +      "change5",
      +      "rangePercent"
      +    ],
      +    "type": "string"
      +  },
      +  "kind": {
      +    "enum": [
      +      "field",
      +      "indicator",
      +      "formula",
      +      "strategy"
      +    ],
      +    "type": "string"
      +  },
      +  "name": {
      +    "type": "string"
      +  },
      +  "parameters": {
      +    "additionalProperties": {
      +      "type": "number"
      +    },
      +    "type": "object"
      +  },
      +  "params": {
      +    "additionalProperties": {
      +      "type": [
      +        "number",
      +        "string",
      +        "boolean"
      +      ]
      +    },
      +    "type": "object"
      +  },
      +  "plotKey": {
      +    "description": "Optional; defaults to the first indicator output.",
      +    "type": "string"
      +  },
      +  "strategyId": {
      +    "type": "string"
      +  },
      +  "studyId": {
      +    "description": "Indicator id, e.g. rsi or ema.",
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / rules / items / properties / right / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "properties": {
      +      "kind": {
      +        "enum": [
      +          "constant",
      +          "operand"
      +        ],
      +        "type": "string"
      +      },
      +      "operand": {
      +        "properties": {
      +          "expression": {
      +            "type": "string"
      +          },
      +          "field": {
      +            "type": "string"
      +          },
      +          "kind": {
      +            "enum": [
      +              "field",
      +              "indicator",
      +              "formula",
      +              "strategy"
      +            ],
      +            "type": "string"
      +          },
      +          "params": {
      +            "type": "object"
      +          },
      +          "plotKey": {
      +            "type": "string"
      +          },
      +          "strategyId": {
      +            "type": "string"
      +          },
      +          "studyId": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "value": {
      +        "type": "number"
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / rules / items / properties / right / description
      Previous value: -"A number, or another operand in the same form as left."New value: +"Use a number for a threshold: RSI >50 is {left:{kind:\"indicator\",studyId:\"rsi\"},operator:\"above\",right:50}. To compare with an indicator use {kind:\"operand\",operand:{kind:\"indicator\",studyId:\"ema\",params:{period:20}}}."
  2. Changed4 schema fields changed
    • addedInput schema / properties / exchange
      Added value: +{
      +  "description": "Defaults to the chart.",
      +  "enum": [
      +    "binance",
      +    "bybit",
      +    "okx",
      +    "hyperliquid"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / market
      Added value: +{
      +  "description": "Defaults to the chart. Perpetuals are futures.",
      +  "enum": [
      +    "spot",
      +    "futures"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / order
      Added value: +{
      +  "description": "With sortBy. Default desc; asc for the biggest losers.",
      +  "enum": [
      +    "desc",
      +    "asc"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / sortBy
      Added value: +{
      +  "description": "Order the matches before the limit, e.g. change24h for top movers. Default: universe order (volume).",
      +  "enum": [
      +    "change24h",
      +    "volume24h"
      +  ],
      +  "type": "string"
      +}
  3. Changed2 schema fields changed
    • changedInput schema / properties / rules / items / properties / right / description
      Previous value: -"{\"kind\":\"constant\",\"value\":30} or {\"kind\":\"operand\",\"operand\":{…}}"New value: +"A number, or another operand in the same form as left."
    • removedInput schema / properties / rules / items / properties / right / type
      Removed value: -"object"
  4. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive), so credit goes to what the text adds: a cost hint that it 'fetches history for every instrument in the universe', plus the note that several params default to the current chart's setting. It does not describe pagination or performance limits on large universes.

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?

Front-loaded with the core purpose and followed by progressively more specific guidance; each sentence carries information. Slightly padded by restating schema defaults ('Defaults to the chart') inline, which lengthens the prose without new meaning.

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?

For a 13-parameter tool with a nested rules grammar and no output schema, the description never says what a match actually contains (symbol + which values, how the matched rule is reported). Rules-construction and universe sizing are well covered, but the shape of results remains an inference for the agent.

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 85%, so the baseline would be 3, but the description adds real semantic value the schema lacks: the limit vs universeSize distinction ('limit controls returned matches, universeSize controls how many markets are searched') and a concrete worked example for rules with an indicator operand. The above/crossesAbove operator guidance also disambiguates an enum the schema leaves bare.

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

Purpose5/5

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

States a specific verb (scan) and resource (the venue's listed instruments), and explicitly contrasts scope with 'looking at the open chart', which separates it from the chart_* and indicator_compute siblings. The phrase 'which coins are doing X right now' nails the intent in an agent-legible way.

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?

Gives clear invocation context ('which coins are doing X right now') and a decision rule for the trickiest choice: 'Use above for a current state; crossesAbove only for a fresh crossing.' It never names a sibling alternative (e.g. screener_backtest, daytrade_opportunity_scan) or states when not to use it, so it stops short of a 5.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources