Free MCP server · No API key

Let your AI agent analyze an options trade

One URL turns Claude, OpenAI, or any MCP-capable assistant into a QQQ options trade analyzer: payoff and breakevens, market-implied odds, a 20-year empirical distribution matched to today's volatility, and a FAVORABLE / MARGINAL / UNFAVORABLE verdict. The same engine behind the Option Analyzer page, exposed as two read-only tools.

https://www.stashgamma.com/api/options-analyzer/mcp

1. Connect in one line

Claude Code

claude mcp add --transport http stashgamma-options https://www.stashgamma.com/api/options-analyzer/mcp

Or drop this into .mcp.json in your project (download):

{
  "mcpServers": {
    "stashgamma-options": {
      "type": "http",
      "url": "https://www.stashgamma.com/api/options-analyzer/mcp"
    }
  }
}

Claude.ai and Claude Desktop

Settings → Connectors → Add custom connector, paste the URL above, leave authentication empty.

OpenAI Responses API

from openai import OpenAI
client = OpenAI()
resp = client.responses.create(
    model="gpt-5",
    tools=[{
        "type": "mcp",
        "server_label": "stashgamma_options",
        "server_url": "https://www.stashgamma.com/api/options-analyzer/mcp",
        "require_approval": "never",
    }],
    input="Analyze selling the QQQ 700 put expiring 2026-10-16.",
)
print(resp.output_text)

Any MCP client, or plain curl

curl -X POST https://www.stashgamma.com/api/options-analyzer/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Streamable HTTP, stateless JSON responses. GET answers 405 on purpose; CORS is open.

2. Ask in plain English

  • “What expirations and strikes are available for QQQ right now?”
  • “Analyze selling the QQQ 700 put expiring 2026-10-16. Is it favorable?”
  • “Compare a 720/740 QQQ call debit spread against buying the 730 call outright for the same expiration.”
  • “Build an iron condor around the current QQQ price for the nearest monthly expiration and tell me the empirical win rate.”

The assistant reads the menu, picks legs that exist in the chain, runs the analysis, and explains the verdict and its reasons in its own words.

3. The two tools

get_options_trade_menu
Input:
none
Returns:
expirations (with days-to-expiry), strikes, underlying price, chain snapshot time

Call first so the agent proposes only expirations and strikes that exist in the latest chain.

analyze_options_trade
Input:
legs[1–4]: { action BUY|SELL, optionType CALL|PUT, strike, expiration YYYY-MM-DD, quantity?, price? }
Returns:
structure, net premium, greeks, payoff (breakevens, max profit/loss), implied (probability of profit, expected value, 1σ move), empirical (20-year win rate, EV with bootstrap CI, profit factor, percentiles, year consistency), context, research flags, verdict { FAVORABLE | MARGINAL | UNFAVORABLE, confidence, reasons }

One expiration per trade. Omit price to use the chain bid (sell) or ask (buy).

Limits and fair use

  • Anonymous: 60 calls per hour per IP (300 per day). Over the limit you get HTTP 429 with a Retry-After header.
  • Need more? The same two tools ship on the keyed Developer Data API MCP server at 300 calls per hour with a free key, next to daily OHLCV data for every U.S.-listed symbol.
  • QQQ only for now. The chain snapshot refreshes on trading days; each response states its own as-of time.

What it is, and is not

Both tools are read-only analysis. Nothing is traded, no account is touched, and no personal data is collected — the server does not even ask who you are. Output is for educational and learning purposes only and is not investment advice. Past empirical results do not guarantee future outcomes.

Try it without leaving your assistant

Paste the URL, ask for the menu, analyze a trade. No key, no sign-up.