Skip to main content
Glama
myfinancialria

MyFinancial Market Data MCP

Option IV History (ATM IV, IV rank, PCR series)

get_option_iv_history
Read-onlyIdempotent

Fetch historical option analytics (ATM IV, IV rank/percentile, realised vol, put-call ratio, max pain, 25-delta skew) for stocks and indices to evaluate volatility levels and trends.

Instructions

Get the HISTORICAL option-analytics time series for an underlying — ATM implied volatility, IV rank, IV percentile, realised vol, put-call ratio (OI and volume), max pain and 25-delta skew, one point per session. Use for 'is IV high right now', 'IV rank of RELIANCE', 'has volatility been rising', or any volatility-regime / IV-vs-realised comparison. Covers ~556 underlyings INCLUDING individual stocks (unlike get_option_chain, which is index-only). UNITS: every IV field is a PERCENT (10.55 means 10.55% annualised) — never multiply by 100 again. iv_rank_pct and iv_percentile_pct are percents too, not 0-1 scores, and they are DIFFERENT measures: rank is position in the trailing high-low band, percentile is the share of sessions below the current reading. Read bar_interval — ranges of 2y+ are rolled up WEEKLY, so counting points as trading days will be wrong; one call returns at most the 400 most recent bars, so quote the from_date/to_date returned rather than assuming full history. The response also states its own coverage and flags spot_is_proxy — respect both. Report the numbers and what they describe. Do NOT recommend a trade, a strike, or a volatility position.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rangeNoLookback window (default 1y). 2y and longer return WEEKLY bars — read `bar_interval`.
symbolNoREQUIRED. Underlying symbol — a stock like "RELIANCE" or an index like "NIFTY".
tickerNoAlias for `symbol`.
identifierNoAlias for `symbol`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description still adds substantial context beyond them: IV fields are percents that must never be re-scaled, iv_rank_pct and iv_percentile_pct are distinct measures, 2y+ ranges return weekly bars, a single call caps at 400 bars, and the response self-declares coverage and spot_is_proxy. It even adds a no-trade-recommendation guardrail. No contradiction with 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?

Long but zero-waste: the core payload list and the costliest trap (percent units) are front-loaded before use cases, and every subsequent sentence (weekly rollup, 400-bar cap, coverage/spot_is_proxy, no-trading guardrail) addresses a distinct failure mode. No filler, no repetition of schema content.

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?

With no output schema and no nested objects, the description carries the full burden of return semantics and meets it: fields enumerated, units specified, sampling and length limits stated, and response flags called out. Parameter and safety dimensions are covered by schema and annotations respectively, leaving no critical gap for a 4-param historical query tool.

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 100% — the schema already documents the range enum, marks symbol REQUIRED, and explains ticker/identifier aliases — so the baseline is 3. The description adds marginal meaning by bounding the symbol domain ('Covers ~556 underlyings INCLUDING individual stocks') and grounding the unit caveat to the returned fields that any range argument will produce.

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 precise verb and resource ('Get the HISTORICAL option-analytics time series') and enumerates the exact fields returned (ATM IV, IV rank, IV percentile, realised vol, PCR OI/volume, max pain, 25-delta skew). It explicitly differentiates from the closest sibling: 'unlike get_option_chain, which is index-only'. An agent cannot mistake this for any of the 60 sibling tools.

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?

Gives concrete user intents ('is IV high right now', 'IV rank of RELIANCE', 'has volatility been rising') plus a general applicability statement ('any volatility-regime / IV-vs-realised comparison'). It names the alternative (get_option_chain) and the condition that selects it (index-only vs ~556 underlyings including stocks), satisfying the explicit when/alternative bar.

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