Skip to main content
Glama

tickerbot_list_signals

Every signal you can name in a query — the built-in signals and your own custom signals, in one catalog. Use to discover the signal names and q vocabulary before composing a scan; custom signals appear with kind: custom.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNoFilter by kind (`expression` accepted as a legacy alias for `custom`). Omit to return both.
limitNoPage size for the custom-signal slice. Max 200.
cursorNoOpaque cursor from a prior response.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
as_ofYesServer time this response was assembled (ISO 8601).
countYesRows in this page — the canonical count, equal to `count_builtin` + `count_custom`.
signalsYesThe catalog, your custom signals first, then built-ins. Built-ins carry `kind: builtin` plus their taxonomy membership — `category`/`category_label`/`group`/`group_label` (slugs are stable, switch on those; labels are display strings) — yours carry `kind: custom` with the `expr`.
taxonomyNoAbsent when the page holds no built-ins (`kind=custom`). The signal taxonomy tree, once per response: `groups[]` in derivation-ladder order (record → behavior → indicator → company side), each with `slug`, `label`, `derivation`, `description`, and its `categories[]` (`slug`, `label`, `description`). Definitions live here and only here — rows carry pointers, never the descriptions. Omitted on `kind=custom`.
next_cursorYesOpaque token for the next page; `null` on the last page. Pass it back as `cursor`.
count_customYesYour custom signals.
count_builtinYesBuilt-in signals in the catalog.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "as_of": {
      +      "description": "Server time this response was assembled (ISO 8601).",
      +      "type": "string"
      +    },
      +    "count": {
      +      "description": "Rows in this page — the canonical count, equal to `count_builtin` + `count_custom`.",
      +      "type": "number"
      +    },
      +    "count_builtin": {
      +      "description": "Built-in signals in the catalog.",
      +      "type": "number"
      +    },
      +    "count_custom": {
      +      "description": "Your custom signals.",
      +      "type": "number"
      +    },
      +    "next_cursor": {
      +      "description": "Opaque token for the next page; `null` on the last page. Pass it back as `cursor`.",
      +      "type": "string"
      +    },
      +    "signals": {
      +      "description": "The catalog, your custom signals first, then built-ins. Built-ins carry `kind: builtin` plus their taxonomy membership — `category`/`category_label`/`group`/`group_label` (slugs are stable, switch on those; labels are display strings) — yours carry `kind: custom` with the `expr`.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "taxonomy": {
      +      "description": "Absent when the page holds no built-ins (`kind=custom`). The signal taxonomy tree, once per response: `groups[]` in derivation-ladder order (record → behavior → indicator → company side), each with `slug`, `label`, `derivation`, `description`, and its `categories[]` (`slug`, `label`, `description`). Definitions live here and only here — rows carry pointers, never the descriptions. Omitted on `kind=custom`.",
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "as_of",
      +    "count",
      +    "count_builtin",
      +    "count_custom",
      +    "next_cursor",
      +    "signals"
      +  ],
      +  "type": "object"
      +}
  2. Added

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It adds useful context by noting that custom signals appear with 'kind: custom' and that the result is a single combined catalog, but it does not explicitly state non-mutating behavior or pagination semantics.

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

Conciseness4/5

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

The description is two sentences and front-loads the main purpose before the usage guidance. The first phrase is slightly stylized and partially redundant with 'built-in signals and custom signals', but overall it is compact and not padded.

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?

This is a simple list tool with an output schema and fully documented optional parameters. The description adds the essential use case and the kind-labeling behavior, making it complete enough for an agent to call correctly without further inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no significant parameter-level meaning beyond what the schema already provides; mentioning 'kind: custom' merely reflects the existing enum description.

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

Purpose5/5

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

The description clearly identifies the tool as a catalog of every queryable signal, both built-in and custom, which distinguishes it from single-signal tools like tickerbot_get_signal. The phrase 'use to discover the signal names and q vocabulary before composing a scan' gives a specific purpose and resource scope.

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

Usage Guidelines4/5

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

It explicitly states when to use the tool: before composing a scan, to discover signal names and the q vocabulary. It does not explicitly exclude alternatives or mention when not to use it, but the context is clear enough for an agent to select it appropriately.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.