Skip to main content
Glama
kite-connect-mcp

kite-connect-mcp

Latest cached ticks

ticker_get_ticks
Read-onlyIdempotent

Retrieve cached market ticks for subscribed instruments, including prices, quotes, and depth; filter stale entries by age with max_age_s.

Instructions

The latest tick received for each subscribed instrument, from the server's cache (nothing is requested from Kite). Each tick has instrument (when known), instrument_token, mode, last_price and, for quote and full, last_traded_quantity, average_traded_price, volume_traded, total_buy_quantity, total_sell_quantity, ohlc {open, high, low, close} and change (% from the previous close); full adds oi, oi_day_high, oi_day_low, last_trade_time, exchange_timestamp and depth {buy, sell} (5 levels of {quantity, price, orders}). Prices are in rupees, times in IST. Every tick also has received_at and age_s (seconds since it arrived): ticks stop outside market hours or when the connection is down, so check age_s, or pass max_age_s to be told which instruments are stale. Instruments subscribed but without a tick yet are listed under no_tick_yet.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "ticker_get_ticks"
  }
}

Input Schema

NameRequiredDescriptionDefault
max_age_sNoleave out ticks older than this many seconds; they are listed under stale
instrumentsNowhich instruments (names and/or tokens); default: every subscribed instrument

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already establish read-only/idempotent/non-destructive, so the description's job is context, and it delivers: cache provenance, market-hours and connection-down caveats, freshness semantics via received_at/age_s, and explicit note that subscribed-but-unticked instruments appear under no_tick_yet. These are behaviors an agent cannot infer from the annotations or schema.

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 purpose and provenance, then the payload shape, then the freshness caveat — a logical order. The middle enumeration of tick fields is dense and long, but since there is no output schema it earns its place as return-value documentation.

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?

No output schema exists, so the description carries return documentation and does so thoroughly: per-mode field lists, units (rupees), timezone (IST), and the no_tick_yet/stale buckets. For a two-parameter read tool this leaves nothing an agent needs unanswered.

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?

With 100% schema description coverage the baseline is 3, and the description adds genuine meaning: max_age_s not only filters but routes rejected ticks into a 'stale' bucket, and instruments defaults to every subscribed instrument. The instruments list cap (3000) and name-vs-token mixing are left to the schema, keeping this below 5.

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-resource pair ('the latest tick received for each subscribed instrument') plus the crucial scope distinction: it comes from the server's cache and 'nothing is requested from Kite'. That separates it cleanly from the REST-style siblings get_ltp, get_quotes and get_ohlc without needing their schemas.

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 operating context (cache-only, ticks stop outside market hours or when the connection is down) and directs the agent to check age_s or pass max_age_s to detect staleness. It never names an alternative tool explicitly (e.g., 'use get_ltp for a fresh snapshot'), so the routing is implied rather than stated.

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