optionslab
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@optionslabshow me SPY options chain with Greeks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Why optionslab
One model, three front doors — a typed Python library, a verb-per-task CLI, and an MCP server that any Claude client can talk to.
The math you'd derive on paper — vectorized Black-Scholes price + Greeks (Δ, Γ, Θ, V, ρ, vanna, vomma, charm), put-call parity checker, synthetic-position verifier. Every analytic Greek matches the
py_vollibreference to 1e-6.Position-first, not strategy-first — a
Positionis just a list of legs. Payoff, value, Greeks, scenario grids, and metrics (max P / max L / breakevens) are all the samePositionqueried different ways.Volatility as a market, not a number — RV estimator zoo (close-to-close, Parkinson, Garman-Klass, Rogers-Satchell, Yang-Zhang), VRP, VIX term structure + regime label, 25Δ Risk Reversal / Butterfly, model-free VIX strip, event-implied move.
A daily Vol Dashboard — five computed fields, two-year percentiles, one ritual.
Tested, typed, documented — 50 pytest cases pinning the math. Every result is a dataclass with
.to_dict()for clean JSON at the MCP/CLI edge.
Related MCP server: indian-option-mcp
Install
pip install optionslabOr, from source:
git clone https://github.com/pradhann/options-chain-mcp
cd options-chain-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"Quick start — Python
from optionslab import Position, MarketContext
from optionslab.analysis import expiration_payoff, position_metrics, greeks
pos = Position.from_dicts([
{"side": "long", "option_type": "call", "strike": 100, "premium": 6.0},
{"side": "short", "option_type": "call", "strike": 110, "premium": 2.5},
], name="bull-call-100-110")
expiration_payoff(pos, s_t=115).total_dollars # 650.0
position_metrics(pos).breakevens # [103.5]
market = MarketContext.explicit(spot=105, r=0.045)
greeks(pos, market, ivs=0.30).delta_dollars # ≈ $25 per +$1 in spotQuick start — CLI
# Live options chain with per-strike Greeks
optionslab chain --ticker SPY --near-money 6
# Closed-form metrics for an inline position
optionslab metrics --legs '[{"side":"long","option_type":"call","strike":100,"premium":6},
{"side":"short","option_type":"call","strike":110,"premium":2.5}]'
# The classic 2×2 payoff primitives chart
optionslab chart --kind primitives --strike 100 --premium 5 --save-plot primitives.png
# The daily Vol Dashboard
optionslab dashboard --save-plot dashboard.pngSee USAGE.md for the full one-page reference of every verb and chart kind.
Quick start — MCP (Claude Desktop / Claude Code)
optionslab ships an MCP server so any Claude client can call its 40+ tools — pulling chains, valuing positions, drawing charts as inline images.
Add to your Claude config:
{
"mcpServers": {
"optionslab": {
"command": "python",
"args": ["-m", "optionslab.mcp_server"]
}
}
}Or, from a terminal Claude Code session:
claude mcp add optionslab -s user -- python -m optionslab.mcp_serverRestart Claude and ask things like "pull the SPY chain at the nearest monthly and chart the 25Δ skew" or "build a bull call spread on AAPL and show me the P&L grid for ±20% over 30 days."
Screenshots
What's inside
Layer | Lives in | Purpose |
Pricing |
| Vectorized BS + all 8 Greeks + IV solver |
Core types |
|
|
Data |
| Quote, chain (with Greeks), events, vol fetchers |
Analysis |
| Payoff, valuation, metrics, scenario, parity, synthetics, vol/ (VRP, term, skew, strip, event, dashboard) |
Plotting |
| Returns Matplotlib |
Adapters |
| Thin CLI + MCP + interactive shells over the analysis layer |
Storage |
|
|
Strict dependency direction: pricing ← core ← analysis ← plotting ← adapters. No cycles.
Documentation
Full docs are published at https://pradhann.github.io/options-chain-mcp/ (built with MkDocs Material from the docs/ tree).
For a single-page reference of every verb, tool, and chart kind, see USAGE.md.
Contributing
Issues and PRs welcome. To set up a dev environment:
git clone https://github.com/pradhann/options-chain-mcp
cd options-chain-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest # 50 tests, ~1 secondIf you're fixing math, please add a test that pins the expected number. The repo's principle is "breaking the math should fail a test before it ships."
License
MIT © Nripesh Pradhan
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP for stocks, options, Greeks, brokers, order previews, alerts, and workflows.
Research-only MCP server: your AI as a quant research desk. 90 tools, no trades, no brokers.
Options analytics: 17 pricing models, 17 Greeks, GEX, IV, 23 screeners, unusual, dark pool, max pain
Live US options chains with Greeks and IV, a screener, SQL, and FMP fundamentals.
Related MCP Servers
- AlicenseAqualityDmaintenancePortfolio risk analytics MCP server — VaR, Monte Carlo simulation, stress testing, portfolio optimization, options Greeks, and correlation analysis. Real market data via Yahoo Finance. Free tier available, Pro at $29/mo.1073 npm2MIT
- AlicenseNot gradedqualityCmaintenanceMCP Server for Indian Options — Real-time option chains, Greeks, 34+ strategies, OI analysis, IV smile, Max Pain. Works with Claude Desktop. Replaces Sensibull.10 npm9MIT
- AlicenseAqualityFmaintenanceA comprehensive MCP server for stock analysis and trading insights, including stock screening, fundamental analysis, insider trading, options analysis, social media research, and news analysis.1075MIT
- AlicenseAqualityBmaintenanceComprehensive MCP server for real-time stock, cryptocurrency, options, and fundamental analysis, including SEC filings and insider trading data.2637 npmMIT