Skip to main content
Glama

BotSpot: AI Trading, Backtests and Bots

Get broker quotes

get_broker_quotes
Read-onlyIdempotent

Read-only: fetches current quote/last-price data from the signed-in user's saved broker connection. Pass brokerCredentialId, or omit it only when the user has exactly one active saved broker connection. Ask once: put up to 20 symbols of one assetType in one call. Use quoteSymbol only for crypto or forex. For options use assetType option with one complete OCC symbol per contract (e.g. NVDA261218C00170000; the padded broker form with spaces is accepted), different strikes or expirations in one batch; or one underlying plus expiration, strike, and right. The underlying alone does not identify a contract. For dated futures pass assetType future plus expiration and exchange. Never pass raw broker credentials, API keys, account tokens, broker_config, bot_config, code, or env vars.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "symbols": "<symbols>"
    },
    "name": "get_broker_quotes"
  }
}

Input Schema

NameRequiredDescriptionDefault
rightNo
marketNo
strikeNo
outcomeNoSelected prediction contract outcome; Kalshi uses yes or no.
symbolsYes
exchangeNo
assetTypeNo
expirationNo
quoteSymbolNo
brokerCredentialIdNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • removedInput schema / properties / quoteSymbol / $ref
      Removed value: -"#/properties/symbols/items"
    • addedInput schema / properties / quoteSymbol / maxLength
      Added value: +256
    • addedInput schema / properties / quoteSymbol / minLength
      Added value: +1
    • addedInput schema / properties / quoteSymbol / pattern
      Added value: +"^[A-Za-z0-9./:_-]+$"
    • addedInput schema / properties / quoteSymbol / type
      Added value: +"string"
    • changedInput schema / properties / symbols / items / pattern
      Previous value: -"^[A-Za-z0-9./:_-]+$"New value: +"^[A-Za-z0-9./:_ -]+$"
  2. Changed1 schema field changed
    • changedInput schema / properties / symbols / items / maxLength
      Previous value: -64New value: +256
  3. Changed2 schema fields changed
    • changedInput schema / properties / assetType / enum
      Previous value: -[
      -  "stock",
      -  "option",
      -  "future",
      -  "crypto_future",
      -  "cont_future",
      -  "forex",
      -  "crypto",
      -  "index"
      -]New value: +[
      +  "stock",
      +  "option",
      +  "future",
      +  "crypto_future",
      +  "cont_future",
      +  "forex",
      +  "crypto",
      +  "index",
      +  "prediction_contract"
      +]
    • addedInput schema / properties / outcome
      Added value: +{
      +  "description": "Selected prediction contract outcome; Kalshi uses yes or no.",
      +  "maxLength": 64,
      +  "minLength": 1,
      +  "type": "string"
      +}
  4. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered; the description reinforces 'Read-only' and adds real behavioral context beyond that – the single-connection fallback for brokerCredentialId, the one-assetType-per-call batching constraint, and a prohibition on passing secrets. It does not cover rate limits, partial-failure behavior for bad symbols, or error modes, which keeps it from 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.

Conciseness4/5

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

The lead sentence establishes read-only and the data source before the long conditional rules, so it is well front-loaded and each clause carries operational meaning. It is dense and clause-heavy, with some redundancy ('Read-only' restating readOnlyHint), but nothing is genuinely wasted.

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?

No output schema exists, and the description discloses that results are current quotes/last prices without detailing response shape or field naming. For a 10-parameter, open-world, multi-asset quote tool the invocation rules are well covered; only return-format and error semantics are left implicit.

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

Parameters5/5

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

With only 10% schema description coverage across 10 parameters, the description carries the load and does so well: brokerCredentialId optionality, quoteSymbol restricted to crypto/forex, assetType option requiring full OCC symbols or underlying+expiration+strike+right, assetType future requiring expiration and exchange, and the warning that an underlying alone does not identify a contract. Only market and outcome are undocumented, and outcome is described in the schema itself.

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 states a specific verb and resource – 'fetches current quote/last-price data from the signed-in user's saved broker connection' – which cleanly separates it from siblings like get_broker_positions, get_broker_account_snapshot, and broker_orders. The scope (user's own saved broker connection) is explicit.

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 gives concrete invocation guidance: pass brokerCredentialId or omit it only when exactly one active connection exists, batch up to 20 symbols of one assetType in a single call, use quoteSymbol for crypto/forex, and never pass raw credentials or config blobs. What it lacks is any routing guidance relative to sibling tools (e.g. broker_markets or get_broker_positions), so it is strong on how to call but silent on when to prefer an alternative.

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.