{
  "markdown": "# TickerRisk MCP Server\n\n**Check an options trade for hidden catalysts before you sell premium — from inside Claude, ChatGPT, or Cursor.**\n\nAn [MCP](https://modelcontextprotocol.io) server that lets an AI assistant answer questions like\n*\"is it safe to sell a 30-day put on HPE?\"* with real event data instead of a guess.\n\nThe problem it solves: a fat option premium is usually the market pricing in a **known upcoming\nevent** — an earnings report, an FDA decision, a court date — not free money. Some screeners\nflag earnings; few check the wider event calendar. This one scores every candidate across\nearnings, FDA, legal, SEC and clinical events landing *inside the expiry window*, and filters\nout the traps.\n\n```\nYou:    Is it safe to sell a 4-week put on INTC?\n\nClaude: [calls scan_ticker]\n        INTC scores 100/100 (HIGH) over a 4-week window. Earnings land in 4 days,\n        inside your expiry. The premium is pricing that gap — 279% annualized on\n        the $88 put is compensation for event risk, not an edge.\n```\n\n## Why this is different\n\nRisk is **horizon-dependent**, and that is the whole point. The same stock:\n\n| Ticker | 1-week window | 4-week window | Why it changes |\n|---|---|---|---|\n| AAPL | 51 (MEDIUM) | 97 (HIGH) | Earnings sit in week 3 |\n| KO | 22 (LOW) | 62 (MEDIUM) | Earnings enter the window |\n\nSell a weekly and you are fine. Sell a monthly on the same ticker and you have sold\nstraight through an earnings report. A screener that shows one number cannot tell you that.\n\n## Install\n\n### Claude Desktop\n\nAdd to your `claude_desktop_config.json`:\n\n**macOS/Linux** — `~/Library/Application Support/Claude/claude_desktop_config.json`\n**Windows** — `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"tickerrisk\": {\n      \"command\": \"uvx\",\n      \"args\": [\"tickerrisk-mcp\"]\n    }\n  }\n}\n```\n\nRestart Claude Desktop. You should see the TickerRisk tools in the tool menu.\n\n### Claude Code\n\n```bash\nclaude mcp add tickerrisk -- uvx tickerrisk-mcp\n```\n\n### Cursor\n\nIn `~/.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"tickerrisk\": { \"command\": \"uvx\", \"args\": [\"tickerrisk-mcp\"] }\n  }\n}\n```\n\n### From source\n\n```bash\ngit clone https://github.com/Tickerrisk/tickerrisk-mcp\ncd tickerrisk-mcp\npip install -e .\ntickerrisk-mcp\n```\n\n## Tools\n\n| Tool | What it answers |\n|---|---|\n| `scan_ticker` | \"How risky is selling an option on X over the next N weeks?\" |\n| `find_wheel_candidates` | \"What cash-secured puts can I sell this week without an earnings trap?\" |\n| `find_covered_calls` | \"What calls can I sell against shares I already own?\" |\n| `compare_tickers` | \"Which of these stocks is safest to sell premium on right now?\" |\n\n### `scan_ticker(ticker, expiry_weeks=4)`\n\nReturns a 0–100 catalyst-risk score (higher = riskier) with the events driving it:\nearnings date and whether it falls in the window, FDA/clinical milestones, legal filings,\nSEC events, implied volatility, IV Rank, and the expected move.\n\nBands: **≥70 HIGH · 45–69 MEDIUM · <45 LOW**\n\n### `find_wheel_candidates(week, risk, max_risk, min_put_oi, sector, limit)`\n\nScans the S&P 500 for cash-secured puts and returns only names whose catalyst score over\nthe option's own expiry window is under `max_risk`. Flags any candidate whose earnings land\nbefore expiry.\n\n### `find_covered_calls(week, risk, max_risk, min_call_oi, sector, limit)`\n\nSame gating for the call side. Income is computed from **time value only**, so in-the-money\nstrikes do not show inflated yields.\n\n### `compare_tickers(tickers, expiry_weeks=4)`\n\nSide-by-side catalyst risk for up to 25 symbols on one horizon.\n\n## Access and authentication\n\nNo signup needed to start. Access follows tickerrisk.com's normal model:\n\n- **First 24 hours** — full access, no account, keyed to your IP\n- **After that** — a free account at [tickerrisk.com](https://tickerrisk.com) adds 14 days\n- The strategy scanners (`find_wheel_candidates`, `find_covered_calls`, `compare_tickers`)\n  read cached data and stay available\n\nTo authenticate an existing account, set a token:\n\n```json\n{\n  \"mcpServers\": {\n    \"tickerrisk\": {\n      \"command\": \"uvx\",\n      \"args\": [\"tickerrisk-mcp\"],\n      \"env\": { \"TICKERRISK_TOKEN\": \"your-jwt-here\" }\n    }\n  }\n}\n```\n\n### Environment variables\n\n| Variable | Default | Purpose |\n|---|---|---|\n| `TICKERRISK_TOKEN` | *(none)* | JWT for an existing account |\n| `TICKERRISK_BASE_URL` | `https://tickerrisk.com` | Override the API host |\n| `TICKERRISK_TIMEOUT` | `45` | Request timeout in seconds |\n\n## Data and limitations\n\nBeing straight about what this is and is not:\n\n- **Catalyst data** — earnings dates, SEC filings, court records (CourtListener),\n  ClinicalTrials.gov, and news. Public sources, so incomplete or delayed entries happen.\n- **Option premiums are indicative, not live NBBO.** Quotes are roughly 15 minutes delayed\n  and estimated where no bid exists (marked in the output). Always confirm in your broker\n  before trading.\n- **Outside US market hours** (9:30–16:00 ET) quotes go stale and candidate lists thin out.\n  This is upstream data reality, not a bug.\n- **The score is not a prediction.** It measures *scheduled event exposure* and volatility.\n  A LOW score does not mean a stock cannot drop; it means no known catalyst was found in\n  that window.\n\nNot financial advice. For research only.\n\n## How it compares\n\nBeing accurate about this, because the differentiator is narrower than most tools claim:\n\nEarnings-date checking is **not** unique. Barchart's options screener has a \"Flag Earnings\"\noption that marks contracts whose next earnings date falls on or before expiration.\nMarket Chameleon tracks biotech catalysts and links them to option chains. If earnings\nalone is what you need, those are mature tools with real-time data and far more filters —\nuse them.\n\nWhat this tool does differently is combine **five** event types — earnings, FDA decisions,\nlegal filings, SEC events and clinical milestones — into a single 0–100 score tied to your\nexpiry window, and filter on it by default rather than showing an optional flag column.\nCourt records as an options-risk input in particular is something we have not found\nelsewhere.\n\nSo: if you want the deepest screener, use Barchart or Option Samurai. If you want one\nnumber that answers \"is there anything scheduled inside this expiry\", that is what this is.\n\n## Links\n\n- Website — [tickerrisk.com](https://tickerrisk.com)\n- Wheel scanner — [tickerrisk.com/wheel](https://tickerrisk.com/wheel)\n- Covered calls — [tickerrisk.com/covered-calls](https://tickerrisk.com/covered-calls)\n\n## License\n\nMIT\n\n---\n\n<!-- Ownership marker required by the official MCP Registry: it verifies control of the\n     PyPI package by checking this exact string appears in the published README. Must match\n     the \"name\" field in server.json. Do not remove or reword. -->\n\nmcp-name: io.github.PasiutusVovere/tickerrisk-mcp\n",
  "bytes": 6877,
  "sha": "57cbaf2fbcd9b437a4d51ac9f44945aca87fd4c98856460aaaa06a66dc73cadf",
  "repo_slug": "tickerrisk/tickerrisk-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_pasiutusvovere_tickerrisk_mcp_435fbb54/readme"
}