UnusualWhales API

官方Unusual Whales API和MCP服务器提供100多个端点,涵盖期权流、暗池、国会交易、希腊字母敞口、波动率等。可通过REST、WebSocket、Kafka或MCP连接:使用npx -y @unusualwhales/mcp本地运行,或使用远程端点https://api.unusualwhales.com/api/mcp(Streamable HTTP,Bearer API密钥)。

文档

Unusual Whales MCP

Inspired by erikmaday/unusual-whales-mcp - the original community MCP server for Unusual Whales by Erik Maday.

npm License: MIT

The official Unusual Whales MCP server. Connect any MCP-compatible client to 200+ market data endpoints covering options flow, dark pool, congressional trading, Greek exposure, volatility, futures, and more.

Quick Start

1. Get an API Key

Get your key at unusualwhales.com/settings/api-dashboard.

2. Connect

Remote (recommended) — no install, connects to the hosted endpoint:

# Claude Code
claude mcp add --transport http unusualwhales \
  https://api.unusualwhales.com/api/mcp \
  --header "Authorization: Bearer YOUR_KEY"
// Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS)
{
  "mcpServers": {
    "unusualwhales": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.unusualwhales.com/api/mcp",
        "--header",
        "Authorization: Bearer YOUR_KEY"
      ]
    }
  }
}

Claude Desktop does not natively support remote MCP servers yet, so we use mcp-remote to bridge the connection. Requires Node.js 18+.

// Cursor (~/.cursor/mcp.json)
{
  "mcpServers": {
    "unusualwhales": {
      "type": "url",
      "url": "https://api.unusualwhales.com/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_KEY"
      }
    }
  }
}
// VS Code (.vscode/mcp.json) — uses "servers" instead of "mcpServers"
{
  "servers": {
    "unusualwhales": {
      "type": "url",
      "url": "https://api.unusualwhales.com/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_KEY"
      }
    }
  }
}
// Windsurf (~/.codeium/windsurf/mcp_config.json) — uses "serverUrl" instead of "url"
{
  "mcpServers": {
    "unusualwhales": {
      "serverUrl": "https://api.unusualwhales.com/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_KEY"
      }
    }
  }
}

After adding the config, fully quit and reopen your AI assistant. Just saving the file is not enough — the MCP server connects at startup.

Local — runs on your machine (Node.js 20+)
# Claude Code
claude mcp add unusualwhales -e UW_API_KEY=YOUR_KEY -- npx -y @unusualwhales/mcp
// Claude Desktop, Cursor
{
  "mcpServers": {
    "unusualwhales": {
      "command": "npx",
      "args": ["-y", "@unusualwhales/mcp"],
      "env": {
        "UW_API_KEY": "YOUR_KEY"
      }
    }
  }
}
// VS Code (.vscode/mcp.json)
{
  "servers": {
    "unusualwhales": {
      "command": "npx",
      "args": ["-y", "@unusualwhales/mcp"],
      "env": {
        "UW_API_KEY": "YOUR_KEY"
      }
    }
  }
}

Config file locations:

  • Claude Desktop (macOS): ~/Library/Application Support/Claude/claude_desktop_config.json
  • Claude Desktop (Windows): %APPDATA%\Claude\claude_desktop_config.json
  • Cursor: .cursor/mcp.json or ~/.cursor/mcp.json
  • VS Code: .vscode/mcp.json
  • Windsurf: ~/.codeium/windsurf/mcp_config.json

Troubleshooting

ProblemFix
Server not connectingMake sure the URL is exactly https://api.unusualwhales.com/api/mcp. Common mistake: using unusualwhales.com/public-api/mcp (that's the docs page, not the server).
Tools not appearingFully quit and reopen your client after adding the config. Verify your JSON has no trailing commas.
401 UnauthorizedCheck your API key is correct and active. Remote config needs "Authorization: Bearer YOUR_KEY" in the --header arg. Local config needs UW_API_KEY in env.
npx not found (nvm users)Claude Desktop doesn't inherit your shell PATH. Use the full path to npx in the command field (e.g. /Users/you/.nvm/versions/node/v20.x.x/bin/npx) and add "env": { "PATH": "/Users/you/.nvm/versions/node/v20.x.x/bin:/usr/local/bin:/usr/bin:/bin" }.

3. Ask Questions

Once connected, just ask about the market in natural language:

What's the options flow for AAPL today?
Show me the latest congressional trades
What's the dark pool activity for TSLA?
Get the max pain for SPY options expiring this Friday
Deep dive on NVDA - options, dark pool, insider activity

Tools

The server exposes tools across 16 data categories. Your MCP client will call them automatically based on your questions.

CategoryExamples
StockOptions chains, Greeks, IV rank, OHLC candles, max pain, OI, volatility, quotes
OptionsContract flow, historic prices, intraday data, volume profiles
FlowOptions flow alerts, the full trades tape, multi-leg strategies, net flow by expiry, sector flow
Dark PoolTransactions with NBBO context, price level filtering, volume by price level
Futures (Premium)CME contracts, cross-contract flow, time & sales, OHLCV candles, session stats — requires the Advanced tier or futures add-on
CongressCongressional trades, late filings, individual member activity
Politicians (Premium)Portfolios, recent trades, holdings by ticker — contact support to upgrade
InsiderInsider transactions, sector flow, ticker flow
Institutions13F filings, holdings, sector exposure, ownership changes
MarketMarket tide, sector tide, economic calendar, FDA calendar, correlations
EarningsPremarket and afterhours schedules, historical earnings
ETFHoldings, exposure, inflows/outflows, sector weights
ShortsShort interest, FTDs, short volume ratio, borrow rates
SeasonalityMonthly performers, yearly patterns, historical seasonality
ScreenerStock screener, options screener, unusual options activity, analyst ratings
NewsMarket news headlines

Public Stock Fundamentals and Technicals

The MCP now includes public-style stock tools that map directly to the stock fundamentals and technical indicator endpoints.

ToolWhat it returns
get_fundamental_breakdownFiling-based fundamentals, revenue segmentation, EPS, dividends, and balance-sheet trends
get_stock_financialsCombined financials payload with income statements, balance sheets, cash flows, and earnings
get_income_statementsIncome statement history with optional report_type filter
get_balance_sheetsBalance sheet history with optional report_type filter
get_cash_flowsCash flow history with optional report_type filter
get_earnings_historyHistorical reported/estimated EPS and earnings surprises with optional report_type filter
get_technical_indicatorIndicator series for SMA, EMA, RSI, MACD, BBANDS, STOCH, ADX, ATR, OBV, VWAP, CCI, WILLR, AROON, and MFI

The grouped local-package tools uw_fundamentals and uw_technicals remain available for clients that prefer the existing action-based interface.

Prompts

The server includes 30+ ready-to-use analysis prompts. Ask to use any prompt by name.

Market Overview
PromptWhat it does
daily-summaryMarket overview with tide, sectors, flow, dark pool
morning-briefingMorning tide, earnings, and key activity
end-of-day-recapEOD top movers, sectors, and themes
weekly-expirationMax pain, gamma, and OI for weekly expiry
top-moversTop tickers by net premium and options impact
Ticker Analysis
PromptWhat it does
ticker-analysisDeep dive: options, dark pool, insiders, catalysts
options-setupIV rank, term structure, max pain analysis
pre-earningsHistorical moves, IV, positioning before earnings
greek-exposureGamma, delta, vanna exposure by strike
short-interestShort interest, FTDs, squeeze potential
option-contractDeep dive on a specific option contract
correlation-analysisCross-ticker correlation analysis
Flow & Activity
PromptWhat it does
unusual-flowScan for unusual options activity
dark-pool-scannerLarge dark pool prints and institutional activity
sector-flowOptions flow sentiment by sector group
Smart Money
PromptWhat it does
congress-trackerRecent congressional trading with patterns
politician-portfolioPortfolio holdings for a specific politician
insider-scannerInsider buying/selling patterns
institutional-activity13F filings, holdings changes, sector rotation
analyst-trackerAnalyst ratings with options flow correlation
Calendars & Events
PromptWhat it does
earnings-calendarEarnings with IV and expected moves
fda-calendarFDA events with biotech options activity
economic-calendarFOMC, CPI, jobs data with positioning
Screening & Discovery
PromptWhat it does
iv-screenerHigh/low IV rank stocks for options strategies
bullish-confluenceBullish flow + dark pool + insider buying
bearish-confluenceBearish flow + distribution + insider selling
news-scannerHeadlines with related options flow
seasonalityHistorical seasonal patterns
etf-flowETF inflows/outflows and exposure

Chain prompts for deeper analysis:

Use morning-briefing, then unusual-flow to dig into top movers
Use pre-earnings for NVDA, then greek-exposure to see dealer positioning
Use bullish-confluence to find candidates, then ticker-analysis on the top result

Configuration

All optional. The defaults work for most users.

VariableDefaultDescription
UW_API_KEYrequiredYour Unusual Whales API key
UW_RATE_LIMIT_PER_MINUTE120Max requests per minute
UW_MAX_RETRIES3Retry attempts for failed requests
UW_CIRCUIT_BREAKER_THRESHOLD5Failures before circuit opens
UW_CIRCUIT_BREAKER_RESET_TIMEOUT30000Ms before retrying after circuit opens
LOG_LEVELinfoLogging verbosity (debug, info, warn, error)
UW_ENABLE_PREMIUM_TOOLSunsetSet to 1/true to expose every premium tool and command
UW_PREMIUM_TOOLSunsetComma-separated allowlist of premium tools/commands to expose, e.g. uw_futures,uw_flow.full_tape

Endpoint Schema

Every endpoint the server exposes is published as machine-readable JSON, generated from the same catalog the server registers from:

FileContents
docs/endpoints.jsonFull JSON Schema for every command's parameters, plus route and query-param renames
docs/endpoints-compact.jsonOne row per endpoint — route, description, required/optional params. Use this to find an endpoint, then look it up in the full file

Both are regenerated with npm run docs and verified in CI, so they cannot drift from the server. To check the catalog against the live upstream API:

npm run fetch-spec   # download the current OpenAPI spec
npm run check-api    # report missing endpoints, unknown routes, and param drift

WebSocket channels (/api/socket/*) are intentionally not exposed: MCP is request/response. Use the REST endpoints directly for streaming.

Contributing

See CONTRIBUTING.md.

Acknowledgments

This project builds on the foundational work of Erik Maday, whose unusual-whales-mcp was the first community MCP server for Unusual Whales and demonstrated how to bring market data into the MCP ecosystem.

License

MIT - see LICENSE.


Originally inspired by the UW community MCP erikmaday/unusual-whales-mcp.