canli-mcp / Options chains

Is there an MCP server for options chains?

Yes. canli-mcp's options_chain tool returns calls and puts for a US stock or ETF with bid, ask, volume, open interest and implied volatility, for any listed expiration, with no API key. volatility_surface puts the whole chain on one surface.

Free and MIT-licensed. No account and no API key. Or run claude mcp add canli -- npx -y canli-mcp in Claude Code.

Ask it

Show me SPY's nearest option chain around the money.

The agent finds the tool through canli-mcp's find_tool and runs it through run_tool. This is the call:

{
  "name": "options_chain",
  "arguments": {
    "symbol": "SPY",
    "window": 0.03,
    "type": "both"
  }
}

What came back

Recorded from canli-mcp 0.11.1 on 2026-10-25, with no API key set. The model read 9,500 characters.

What options_chain returned, the first rows; the first columns
striketypebidaskmidlastivdelta
738call21.7323.0922.4122.080.9776
738put0.090.10.0950.10.1668-0.0224
739call20.7621.9821.3721.920.9754
739put0.10.110.1050.110.1628-0.0248
740call20.2720.8820.57520.340.9726
740put0.10.120.110.120.159-0.0273
741call18.820.1119.45519.420.9694
741put0.120.130.1250.140.1546-0.0306
The result options_chain sent back, in full form
{
  "ref": "r5",
  "underlying": {
    "symbol": "SPY",
    "price": 759.97,
    "change_pct": -0.00525,
    "iv30": 0.14862,
    "as_of": "2026-10-25 03:25:43"
  },
  "expiration": "2026-10-26",
  "days_to_expiration": 1,
  "summary": {
    "put_call_volume_ratio": 1.2095,
    "put_call_open_interest_ratio": 2.9077,
    "max_pain": 766,
    "atm_strike": 760,
    "atm_iv": 0.1097,
    "expected_move": {
      "dollars": 6.07,
      "fraction_of_price": 0.008,
      "from": "at-the-money straddle mid"
    }
  },
  "columns": [
    "strike",
    "type",
    "bid",
    "ask",
    "mid",
    "last",
    "…"
  ],
  "rows": [
    [
      738,
      "call",
      21.73,
      23.09,
      22.41,
      22.08,
      "…"
    ],
    [
      738,
      "put",
      0.09,
      0.1,
      0.095,
      0.1,
      "…"
    ],
    [
      739,
      "call",
      20.76,
      21.98,
      21.37,
      21.92,
      "…"
    ],
    [
      739,
      "put",
      0.1,
      0.11,
      0.105,
      0.11,
      "…"
    ],
    [
      740,
      "call",
      20.27,
      20.88,
      20.575,
      20.34,
      "…"
    ],
    [
      740,
      "put",
      0.1,
      0.12,
      0.11,
      0.12,
      "…"
    ],
    "…"
  ],
  "expirations": {
    "columns": [
      "expiration",
      "days",
      "contracts",
      "call_open_interest",
      "put_open_interest"
    ],
    "rows": [
      [
        "2026-10-26",
        1,
        298,
        102513,
        298082
      ],
      [
        "2026-10-27",
        2,
        298,
        60278,
        115074
      ],
      [
        "2026-10-28",
        3,
        302,
        47905,
        85578
      ],
      [
        "2026-10-29",
        4,
        298,
        34473,
        39266
      ],
      [
        "2026-10-30",
        5,
        498,
        586641,
        1456300
      ],
      [
        "2026-11-02",
        8,
        298,
        16541,
        24311
      ],
      "…"
    ]
  },
  "source": "https://www.cboe.com/delayed_quotes/spy/quote_table",
  "limits": [
    "Cboe's public delayed quotes (at least 15 minutes old) and its implied volatilities and greeks, as Cboe computes them; for personal use unde…",
    "Not investment advice.",
    "IV and greeks are per contract as Cboe publishes them (IV as a fraction a year; theta per day). Max pain and the expected move are computed …"
  ]
}

Prices, filings and statistics are as the sources published them on that day; run the call again for today's. Nothing here is investment advice.

The same answer as a view

In a host that draws MCP Apps, view: true shows the person the whole result and gives the model a summary. Watch it, then try it: below the clip is canli-mcp's real view, playing a recording.

Chart and options

The view loads here.

The tools behind the answer

From canli-mcp's tool index
ToolPackWhat it does
options_chainmarketsAn option chain from Cboe's delayed data for a stock, ETF or index (AAPL, SPY, SPX, VIX): bids, asks, implied volatility, greeks, open interest and volume by strike for one expiration, every expiration with its open interest, put/call ratios, max pain and the move the at-the-money straddle prices in.
volatility_surfacemarketsThe implied volatility surface from Cboe's delayed option data: at-the-money IV by expiration (term structure), 25-delta put and call IV with the risk reversal and butterfly (skew), and IV at fixed moneyness from 80 to 120 percent of the price (smile).

Add canli-mcp

Claude Code
claude mcp add canli -- npx -y canli-mcp
Cursor, Claude Desktop or any MCP client
{ "mcpServers": { "canli": { "command": "npx", "args": ["-y", "canli-mcp"] } } }
claude.ai, ChatGPT or any client that takes a URL
https://canlicapital.com/mcp/canli

Everything canli-mcp does · How it compares with other finance MCP servers

Related questions