Skip to main content
Glama
rozkoduj

Rozkoduj MCP

Official
by rozkoduj

Instrument catalog and dossier

instrument
Read-only

List covered markets by asset class or status, or get a symbol's dossier with CAGR, volatility, drawdown, and market character. Answers 'which markets do you cover?' or 'what do you know about AAPL?'.

Instructions

The instrument catalog, or one instrument's dossier.

Without symbol: the catalog of covered markets - name, venue, asset class, status - filterable by asset_class (equity, crypto, index, commodity) or status. Use for "which markets do you cover?", "list your crypto instruments".

With symbol: the dossier - identity (name, venue, currency, sector) plus stats, the analytics summary: buy-and-hold facts (cagr, volatility_pct, max_drawdown, time_underwater_pct) and the six-axis character fingerprint (fingerprint_axes, with verdict). stats is null for freshly added instruments. Case-insensitive: aapl finds aapl-us; the full slug (ry-ca) pins one listing when a ticker trades in several markets. Use for "what do you know about AAPL?", "how volatile is BTC?".

For strategies backtested on the instrument, use leaderboard with the same symbol.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
statusNo
symbolNo
asset_classNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsNo
limitNo
statsNo
totalNo
offsetNo
sectorNo
statusNo
tickerNo
currencyNo
last_closeNo
prev_closeNo
asset_classNo
display_nameNo
listing_slugNo
exchange_labelNo
last_close_dateNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv2026.8.15
    • changedInput schema / properties / symbol / anyOf
      Previous value: -[
      -  {
      -    "maxLength": 20,
      -    "minLength": 1,
      -    "pattern": "^[A-Za-z0-9.^=-]+$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maxLength": 20,
      +    "minLength": 1,
      +    "pattern": "^[A-Za-z0-9][A-Za-z0-9-]*$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs
      Added value: +{
      +  "Instrument": {
      +    "additionalProperties": true,
      +    "description": "Catalog identity row.",
      +    "properties": {
      +      "asset_class": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Asset Class"
      +      },
      +      "currency": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Currency"
      +      },
      +      "display_name": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Display Name"
      +      },
      +      "exchange_label": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Exchange Label"
      +      },
      +      "last_close": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Last Close"
      +      },
      +      "last_close_date": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Last Close Date"
      +      },
      +      "listing_slug": {
      +        "title": "Listing Slug",
      +        "type": "string"
      +      },
      +      "prev_close": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Prev Close"
      +      },
      +      "sector": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Sector"
      +      },
      +      "status": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Status"
      +      },
      +      "ticker": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Ticker"
      +      }
      +    },
      +    "required": [
      +      "listing_slug"
      +    ],
      +    "title": "Instrument",
      +    "type": "object"
      +  },
      +  "InstrumentStats": {
      +    "additionalProperties": true,
      +    "description": "Buy-and-hold facts plus the six-axis character fingerprint.",
      +    "properties": {
      +      "asof_date": {
      +        "title": "Asof Date",
      +        "type": "string"
      +      },
      +      "cagr": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Cagr"
      +      },
      +      "fingerprint_axes": {
      +        "default": null,
      +        "title": "Fingerprint Axes"
      +      },
      +      "kaufman_er": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Kaufman Er"
      +      },
      +      "max_drawdown": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Max Drawdown"
      +      },
      +      "time_underwater_pct": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Time Underwater Pct"
      +      },
      +      "trend_share_pct": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Trend Share Pct"
      +      },
      +      "verdict": {
      +        "default": null,
      +        "title": "Verdict"
      +      },
      +      "volatility_pct": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Volatility Pct"
      +      }
      +    },
      +    "required": [
      +      "asof_date"
      +    ],
      +    "title": "InstrumentStats",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / description
      Added value: +"One response shape for both halves of the ``instrument`` tool.\n\nThe tool answers two questions behind one name - the catalog without\n``symbol``, one dossier with it - and the two payloads share no keys. The\nhonest type is a union, but the SDK wraps unions in ``{\"result\": ...}``,\nwhich would change what every existing client reads off the wire for a\npurely internal typing win. Splitting into two tools is the other clean\nanswer and was rejected for the same reason, plus one more: the published\nsurface is deliberately one tool per pillar.\n\nSo both groups live here as optional, and the discriminator is which group\nis populated: ``items`` for the catalog, ``listing_slug`` for the dossier.\nThat publishes every field name - the thing docstring-only fields could not\ndo - and accepts weaker per-field enforcement as the price of not moving\nthe wire."
    • addedOutput schema / properties
      Added value: +{
      +  "asset_class": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "title": "Asset Class"
      +  },
      +  "currency": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "title": "Currency"
      +  },
      +  "display_name": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "title": "Display Name"
      +  },
      +  "exchange_label": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "title": "Exchange Label"
      +  },
      +  "items": {
      +    "anyOf": [
      +      {
      +        "items": {
      +          "$ref": "#/$defs/Instrument"
      +        },
      +        "type": "array"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "title": "Items"
      +  },
      +  "last_close": {
      +    "anyOf": [
      +      {
      +        "type": "number"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "title": "Last Close"
      +  },
      +  "last_close_date": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "title": "Last Close Date"
      +  },
      +  "limit": {
      +    "anyOf": [
      +      {
      +        "type": "integer"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "title": "Limit"
      +  },
      +  "listing_slug": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "title": "Listing Slug"
      +  },
      +  "offset": {
      +    "anyOf": [
      +      {
      +        "type": "integer"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "title": "Offset"
      +  },
      +  "prev_close": {
      +    "anyOf": [
      +      {
      +        "type": "number"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "title": "Prev Close"
      +  },
      +  "sector": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "title": "Sector"
      +  },
      +  "stats": {
      +    "anyOf": [
      +      {
      +        "$ref": "#/$defs/InstrumentStats"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "status": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "title": "Status"
      +  },
      +  "ticker": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "title": "Ticker"
      +  },
      +  "total": {
      +    "anyOf": [
      +      {
      +        "type": "integer"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "title": "Total"
      +  }
      +}
    • changedOutput schema / title
      Previous value: -"instrumentDictOutput"New value: +"InstrumentResult"
  2. Addedv2026.7.11

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, and the description adds useful behavior beyond that: the catalog/dossier mode switch, case-insensitive symbol matching, full-slug disambiguation, and `stats` being null for newly added instruments. No contradiction exists between the description and 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 front-loaded with the core distinction—catalog vs. dossier—then organized by mode, with fields, examples, and edge cases in a logical order. Every section earns its place, and the closing `leaderboard` routing is useful without bloating the text.

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

Completeness5/5

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

For a read-only catalog/dossier tool with an output schema present, the description covers both operation modes, filter dimensions, symbol resolution edge cases, null stats behavior, and sibling routing. An agent has everything it needs to select and invoke the tool correctly.

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 description coverage is 0%, so the description carries the burden of explaining parameters. It thoroughly explains `symbol` (case-insensitive, slug pinning), `asset_class` (including enum values), and `status` as a filter. However, it does not explicitly describe `limit` or `offset`, though their names and schema defaults make them fairly obvious.

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 states what the tool does: it returns either the instrument catalog (when `symbol` is absent) or one instrument's dossier (when `symbol` is provided). It distinguishes itself from siblings by naming the `leaderboard` alternative and describing the exact fields returned in each mode.

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

Usage Guidelines5/5

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

The description gives explicit 'Use for...' examples for both modes, such as 'list your crypto instruments' and 'what do you know about AAPL?'. It also explicitly routes strategy backtest queries to the `leaderboard` sibling with the same symbol, providing clear when-to-use vs. when-not-to-use guidance.

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

Deploy Server

Other Tools