Skip to main content
Glama
Yahoo Finance MCP Server

Yahoo Finance MCP Server

get_options_chain

Read-onlyIdempotent

Retrieve available equity options expiration dates, then fetch a specific chain with strikes, bids/asks, volume, open interest, and implied volatility for pricing or volatility analysis.

Instructions

Equity options data for one underlying, in two modes: call with no expiration_date to LIST every available expiration date; call again with a specific 'YYYY-MM-DD' to get that expiration's chain (strike, bid/ask, last, volume, open interest, implied volatility).

Use for options pricing, implied volatility, or open-interest analysis. option_type selects 'calls', 'puts', or 'both'. Always discover the valid dates first (call with no date) before requesting a chain, since only listed expirations work.

Returns Markdown by default, or JSON when response_format='json'. A ticker with no listed options returns a short message.

Input Schema

NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., 'AAPL', 'SPY', 'TSLA')
option_typeNoWhich side of the chain to return: 'calls', 'puts', or 'both'both
expiration_dateNoOptions expiration date as 'YYYY-MM-DD'. Leave empty to list all available expiration dates instead.
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown

Output Schema

NameRequiredDescriptionDefault
noteNo
putsNo
callsNo
tickerNo
messageNoSet instead of data when there is nothing to return for this request (for example, no dividends on record).
truncatedNoTrue when only the strikes nearest the underlying price fit.
expirationDateNo
strikesPerSideNo
expirationDatesNoPresent when no expiration_date was given.
underlyingPriceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.6.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, open-world and non-destructive semantics, so the description wisely spends its budget elsewhere: the two-mode behavior, the default Markdown vs. response_format='json' switch, and the empty-result case ('A ticker with no listed options returns a short message'). It adds real operational context, though it says nothing about rate limits, data delay, or whether an invalid date errors versus returns empty.

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 the two-mode concept, then use cases, then the sequencing prerequisite, then return format — a logical order with short, scannable paragraphs. Minor redundancy in restating the option_type enum values and the response_format values that the schema already provides.

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 four-parameter read tool with an output schema, everything an agent needs is present: what it returns, how to pick a format, the discovery prerequisite that prevents failed calls, and the null-result behavior. Nothing material is left to inference.

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%, so baseline is 3; the description earns above that by explaining the semantics of expiration_date as a mode switch rather than just a filter, including the exact 'YYYY-MM-DD' format and the empty-leave-to-list behavior. It also names option_type's three values inline, though that largely repeats the schema enum.

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?

Names a specific resource (equity options data for one underlying) and a specific verb, and goes further by distinguishing two operational modes keyed on expiration_date. An agent can tell immediately this is the options-chain tool and not get_historical_prices or get_stock_quote.

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?

Explicitly states the use cases (options pricing, implied volatility, open-interest analysis) and gives a hard procedural rule: 'Always discover the valid dates first (call with no date) before requesting a chain, since only listed expirations work.' That is a when-and-how-to-sequence instruction most definitions omit entirely.

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