unusual-whales-mcp
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., "@unusual-whales-mcp What's the options flow for AAPL today?"
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.
Unusual Whales MCP Server
An MCP server that provides access to Unusual Whales market data - options flow, dark pool activity, congressional trades, and more. Works with any MCP-compatible client (Claude, or any LLM/application that supports MCP).
What You Can Do
Ask about the market using 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"
"What are institutions buying in the tech sector?"
"Give me a daily market summary"
"Deep dive on NVDA - options, dark pool, insider activity"
Available Data
Category | What's Included |
Stock | Options chains, Greeks, IV rank, OHLC candles, max pain, open interest, volatility |
Options | Contract flow, historic prices, intraday data, volume profiles |
Flow | Options flow alerts, full tape, net flow by expiry, sector flow (mag7, semis, etc.) |
Dark Pool | Dark pool transactions with filtering |
Congress | Congressional trades, late reports, individual member activity |
Politicians | Portfolios, recent trades, holdings by ticker |
Insider | Insider transactions, sector flow, ticker flow |
Institutions | 13F filings, holdings, sector exposure, ownership |
Market | Market tide, sector tide, economic calendar, FDA calendar, correlations |
Earnings | Premarket and afterhours schedules, historical earnings |
ETF | Holdings, exposure, inflows/outflows, sector weights |
Shorts | Short interest, FTDs, short volume ratio |
Seasonality | Market seasonality, monthly performers, ticker patterns |
Screener | Stock screener, options screener, analyst ratings |
News | Market news headlines |
Built-in Analysis Prompts
The server includes many ready-to-use prompts. Just ask to use any prompt by name.
Market Overview
Prompt | Description | Example |
| Comprehensive market overview with tide, sectors, flow, dark pool | "Use the daily-summary prompt" |
| Start the day with tide, earnings, and key activity | "Use the morning-briefing prompt" |
| EOD summary with top movers, sectors, and themes | "Use end-of-day-recap" |
| Max pain, gamma, and OI for weekly expiration | "Use weekly-expiration for SPY, QQQ, IWM" |
| Top tickers by net premium and options impact | "Use top-movers" |
Ticker Analysis
Prompt | Description | Example |
| Deep dive on a stock with options, dark pool, insiders, catalysts | "Use ticker-analysis for NVDA" |
| IV rank, term structure, max pain - is premium cheap or expensive? | "Use options-setup for TSLA" |
| Historical moves, IV, positioning before earnings | "Use pre-earnings for AAPL" |
| Gamma, delta, vanna exposure by strike | "Use greek-exposure for SPY" |
| Short interest, FTDs, squeeze potential | "Use short-interest for GME" |
| Deep dive on a specific option contract | "Use option-contract for AAPL240119C00150000" |
| Analyze correlations between tickers | "Use correlation-analysis for NVDA,AMD,INTC" |
Flow & Activity
Prompt | Description | Example |
| Scan for unusual options activity across the market | "Use unusual-flow with min_premium 500000" |
| Find large dark pool prints and institutional activity | "Use dark-pool-scanner" |
| Options flow sentiment for sector groups (mag7, semi, bank, etc.) | "Use sector-flow for semi" |
Smart Money
Prompt | Description | Example |
| Recent congressional trading with pattern detection | "Use congress-tracker" |
| Portfolio holdings and trades for a specific politician | "Use politician-portfolio for Nancy Pelosi" |
| Scan for insider buying/selling patterns | "Use insider-scanner" |
| 13F filings, holdings changes, sector rotation | "Use institutional-activity for technology" |
| Analyst ratings with options flow correlation | "Use analyst-tracker" |
Calendars & Events
Prompt | Description | Example |
| Earnings with IV, expected moves, and positioning | "Use earnings-calendar for this week" |
| FDA events with biotech options activity | "Use fda-calendar" |
| FOMC, CPI, jobs data with market positioning | "Use economic-calendar" |
Screening & Discovery
Prompt | Description | Example |
| Find high or low IV rank stocks for options strategies | "Use iv-screener" |
| Stocks with bullish flow + dark pool + insider buying | "Use bullish-confluence" |
| Stocks with bearish flow + distribution + insider selling | "Use bearish-confluence" |
| Market news headlines with related flow | "Use news-scanner" or "Use news-scanner for TSLA" |
Other
Prompt | Description | Example |
| Historical seasonal patterns for a ticker or market | "Use seasonality for AAPL" |
| ETF inflows/outflows or find ETF exposure for a stock | "Use etf-flow for QQQ" |
Combining Prompts
Chain prompts together for comprehensive analysis:
Use morning-briefing, then use unusual-flow to dig into the top moversUse pre-earnings for NVDA, then use greek-exposure to see dealer positioningUse bullish-confluence to find candidates, then use ticker-analysis on the top resultRelated MCP server: quiver-quant-mcp
Getting Started
1. Get an API Key
Sign up at Unusual Whales and get your API key.
2. Install
Claude Code:
claude mcp add unusualwhales -e UW_API_KEY=your_api_key -- npx -y @erikmaday/unusual-whales-mcpClaude Desktop:
Add to your config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"unusualwhales": {
"command": "npx",
"args": ["-y", "@erikmaday/unusual-whales-mcp"],
"env": {
"UW_API_KEY": "your_api_key"
}
}
}
}3. Start Asking Questions
Once configured, just ask about the market. The Unusual Whales data will be used automatically.
Configuration (Optional)
The defaults work well for most users. All settings can be adjusted via environment variables:
Variable | Description | Default |
| Your Unusual Whales API key | Required |
| Max requests per minute |
|
| Retry attempts for failed requests |
|
| Failures before pausing requests |
|
| Milliseconds before retrying after failures |
|
The server automatically handles rate limiting, retries failed requests with backoff, and temporarily pauses requests if the API is having issues (circuit breaker). See CONTRIBUTING.md for technical details.
Contributing
See CONTRIBUTING.md for development setup, testing, and contribution guidelines.
License
MIT
Available Tools
16 toolsuw_alertsARead-onlyIdempotent
Access UnusualWhales user alerts and configurations.
Available actions:
alerts: Get triggered alerts for the user
configurations: Get alert configurations
Inputs: no named parameters.
uw_congressBRead-onlyIdempotent
Access UnusualWhales congress trading data including trades by congress members.
Available actions:
recent_trades: Get recent trades by congress members
late_reports: Get recent late reports by congress members
congress_trader: Get trades by a specific congress member (name required)
Inputs: no named parameters.
uw_darkpoolARead-onlyIdempotent
Access UnusualWhales darkpool trade data.
Available actions:
recent: Get recent darkpool trades across the market
ticker: Get darkpool trades for a specific ticker
Filtering options include premium range, size range, and volume range.
Inputs: no named parameters.
uw_earningsCRead-onlyIdempotent
Access UnusualWhales earnings data including premarket and afterhours earnings schedules.
Available actions:
premarket: Get premarket earnings for a date
afterhours: Get afterhours earnings for a date
ticker: Get historical earnings for a ticker (ticker required)
Inputs: no named parameters.
uw_etfBRead-onlyIdempotent
Access UnusualWhales ETF data including holdings, exposure, inflows/outflows, and weights.
Available actions:
info: Get ETF information (ticker required)
holdings: Get ETF holdings (ticker required)
exposure: Get ETFs that hold a ticker (ticker required)
in_outflow: Get ETF inflow/outflow data (ticker required)
weights: Get sector and country weights (ticker required)
Inputs: no named parameters.
uw_flowARead-onlyIdempotent
Access UnusualWhales options flow data including flow alerts, full tape, net flow, group flow, and lit exchange flow.
Available actions:
flow_alerts: Get flow alerts with extensive filtering options
full_tape: Get full options tape for a date (date required)
net_flow_expiry: Get net flow by expiry date (date optional)
group_greek_flow: Get greek flow (delta & vega) for a flow group (flow_group required; date optional)
group_greek_flow_expiry: Get greek flow by expiry for a flow group (flow_group, expiry required; date optional)
lit_flow_recent: Get recent lit exchange trades across the market
lit_flow_ticker: Get lit exchange trades for a specific ticker (ticker required)
Flow groups: airline, bank, basic materials, china, communication services, consumer cyclical, consumer defensive, crypto, cyber, energy, financial services, gas, gold, healthcare, industrials, mag7, oil, real estate, refiners, reit, semi, silver, technology, uranium, utilities
Flow alerts filtering options include: ticker, premium range, volume range, OI range, DTE range, and more. Lit flow filtering options include: premium range, size range, volume range, and timestamp filters.
Inputs: no named parameters.
uw_insiderBRead-onlyIdempotent
Access UnusualWhales insider trading data including transactions and flow.
Available actions:
transactions: Get insider transactions with filters. Use ticker_symbol for comma-separated tickers (e.g., AAPL,INTC)
sector_flow: Get aggregated insider flow for a sector (sector required)
ticker_flow: Get aggregated insider flow for a ticker (ticker required)
insiders: Get all insiders for a ticker (ticker required)
Inputs: no named parameters.
uw_institutionsCRead-onlyIdempotent
Access UnusualWhales institutional holdings and ownership data.
Available actions:
list: List institutions with filters
holdings: Get holdings for an institution (name required)
activity: Get trading activity for an institution (name required)
sectors: Get sector exposure for an institution (name required)
ownership: Get institutional ownership of a ticker (ticker required)
latest_filings: Get latest institutional filings
Inputs: no named parameters.
uw_marketDRead-onlyIdempotent
Access UnusualWhales market-wide data including market tide, sector ETFs, economic calendar, FDA calendar, and more.
Available actions:
market_tide: Get market tide data showing net premium flow (date optional; otm_only, interval_5m optional)
sector_tide: Get sector-specific tide (sector required; date optional)
etf_tide: Get ETF-based tide (ticker required; date optional)
sector_etfs: Get SPDR sector ETF statistics
economic_calendar: Get economic calendar events
fda_calendar: Get FDA calendar (announced_date_min/max, target_date_min/max, drug, ticker, limit optional)
correlations: Get correlations between tickers (tickers required; interval, start_date, end_date optional)
insider_buy_sells: Get total insider buy/sell statistics (limit optional)
oi_change: Get top OI changes (date, limit, order optional)
spike: Get SPIKE values (date optional)
top_net_impact: Get top tickers by net premium (date, issue_types, limit optional)
total_options_volume: Get total market options volume (limit optional)
Inputs: no named parameters.
uw_newsCRead-onlyIdempotent
Access UnusualWhales news headlines.
Available actions:
headlines: Get news headlines with optional filters (ticker, sources, search_term, major_only, page)
Inputs: no named parameters.
uw_optionsARead-onlyIdempotent
Access UnusualWhales option contract data including flow, historic prices, intraday data, and volume profiles.
Available actions:
flow: Get option contract flow (id required; side, min_premium, limit, date optional)
historic: Get historic option contract data (id required; limit optional)
intraday: Get intraday option contract data (id required; date optional)
volume_profile: Get volume profile for option contract (id required; date optional)
The 'id' parameter is the option contract symbol (e.g., AAPL240119C00150000).
Inputs: no named parameters.
uw_politiciansARead-onlyIdempotent
Access UnusualWhales politician portfolio and trading data.
Available actions:
people: List all politicians
portfolio: Get a politician's portfolio (politician_id required; optional: aggregate_all_portfolios)
recent_trades: Get recent politician trades (optional: date, ticker, politician_id, filter_late_reports, disclosure_newer_than, disclosure_older_than, transaction_newer_than, transaction_older_than)
holders: Get politicians holding a ticker (ticker required; optional: aggregate_all_portfolios)
disclosures: Get annual disclosure file records (optional: politician_id, latest_only, year)
Inputs: no named parameters.
uw_screenerBRead-onlyIdempotent
Access UnusualWhales screeners for stocks, options, and analysts.
Available actions:
stocks: Screen stocks with various filters
option_contracts: Screen option contracts with filters
analysts: Screen analyst ratings
Inputs: no named parameters.
uw_seasonalityCRead-onlyIdempotent
Access UnusualWhales seasonality data showing historical performance patterns.
Available actions:
market: Get market-wide seasonality data
performers: Get top/bottom performers for a month (month required, 1-12) Optional filters: min_years, ticker_for_sector, s_p_500_nasdaq_only, min_oi, limit, order, order_direction
monthly: Get monthly seasonality for a ticker (ticker required)
year_month: Get year-month breakdown for a ticker (ticker required)
Inputs: no named parameters.
uw_shortsARead-onlyIdempotent
Access UnusualWhales short selling data including short interest, FTDs, and volume.
Available actions:
data: Get short data for a ticker (ticker required)
ftds: Get failure to deliver data (ticker required)
interest_float: Get short interest as percent of float (ticker required)
volume_ratio: Get short volume and ratio (ticker required)
volumes_by_exchange: Get short volumes by exchange (ticker required)
Inputs: no named parameters.
uw_stockCRead-onlyIdempotent
Access UnusualWhales stock data including options chains, greeks, IV, OHLC candles, open interest, and more.
Available actions:
info: Get stock information (ticker required)
ohlc: Get OHLC candles (ticker, candle_size required; date, timeframe, end_date, limit optional)
option_chains: Get option chains (ticker required; date optional)
option_contracts: Get option contracts (ticker, expiry required; option_type, filters, limit optional)
greeks: Get greeks data (ticker, expiry required; date optional)
greek_exposure: Get gamma/delta/vanna exposure (ticker required; date, timeframe optional)
greek_exposure_by_expiry: Get greek exposure by expiry (ticker required; date optional)
greek_exposure_by_strike: Get greek exposure by strike (ticker required; date optional)
greek_exposure_by_strike_expiry: Get greek exposure by strike and expiry (ticker, expiry required; date optional)
greek_flow: Get greek flow (ticker required; date optional)
greek_flow_by_expiry: Get greek flow by expiry (ticker, expiry required; date optional)
iv_rank: Get IV rank (ticker required; date, timespan optional)
interpolated_iv: Get interpolated IV (ticker required; date optional)
max_pain: Get max pain (ticker required; date optional)
oi_change: Get OI change (ticker required; date, limit, page, order optional)
oi_per_expiry: Get OI per expiry (ticker required; date optional)
oi_per_strike: Get OI per strike (ticker required; date optional)
options_volume: Get options volume (ticker required; limit optional)
volume_oi_expiry: Get volume/OI by expiry (ticker required; date optional)
atm_chains: Get ATM chains for given expirations (ticker, expirations required)
expiry_breakdown: Get expiry breakdown (ticker required; date optional)
flow_per_expiry: Get flow per expiry (ticker required)
flow_per_strike: Get flow per strike (ticker required; date optional)
flow_per_strike_intraday: Get intraday flow per strike (ticker required; date, filter optional)
flow_recent: Get recent flow (ticker required; side, min_premium optional)
net_prem_ticks: Get net premium ticks (ticker required; date optional)
nope: Get NOPE data (ticker required; date optional)
stock_price_levels: Get stock price levels (ticker required; date optional)
stock_volume_price_levels: Get volume price levels (ticker required; date optional)
spot_exposures: Get spot exposures (ticker required; date optional)
spot_exposures_by_expiry_strike: Get spot exposures by expiry/strike (ticker, expirations required; date, filters optional)
spot_exposures_by_strike: Get spot exposures by strike (ticker required; date, filters optional)
spot_exposures_expiry_strike: Get spot exposures for specific expiry (ticker, expirations required; date, strike filters optional)
historical_risk_reversal_skew: Get risk reversal skew (ticker, expiry, delta required; date, timeframe optional)
volatility_realized: Get realized volatility (ticker required; date, timeframe optional)
volatility_stats: Get volatility stats (ticker required; date optional)
volatility_term_structure: Get term structure (ticker required; date optional)
stock_state: Get stock state (ticker required)
insider_buy_sells: Get insider buy/sells for stock (ticker required; limit optional)
ownership: Get ownership data (ticker required; limit optional)
tickers_by_sector: Get tickers in sector (sector required)
ticker_exchanges: Get mapping of all tickers to their exchanges (no params required)
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 16 tools
The tools are grouped into distinct categories (alerts, congress, darkpool, etc.), but some overlap exists between uw_flow, uw_options, and uw_stock regarding options data, which could cause misselection by an agent.
All tool names follow a consistent 'uw_<category>' pattern with lowercase nouns, making it predictable and easy to understand.
With 16 tools covering a wide range of financial data, the count is well-scoped for the server's purpose, providing comprehensive coverage without being excessive.
The server covers a comprehensive set of financial data domains (alerts, congress, darkpool, earnings, ETFs, flow, insider, institutions, market, news, options, politicians, screener, seasonality, shorts, stocks), leaving no obvious gaps for its intended use.
Maintenance
Related MCP Connectors
Scan options flow, analyze real-time market data, and build investing and trading workflows.
Ask your AI about the markets: filings, insider & congress trades, fund flows, options, macro
US options flow & stock data: unusual activity, gamma levels, IV, earnings. OAuth sign-in or keys.
Stocks, options flow, SEC filings, earnings, GPU prices, supply chain and macro data for agents
Related MCP Servers
- AlicenseCqualityDmaintenanceProvides access to the Unusual Whales API for real-time financial data, options flow analysis, dark pool activity, and congressional trading tracking. It enables users to perform comprehensive market intelligence and stock analysis across 33 different tools.3346 npm4MIT
- FlicenseNot gradedqualityDmaintenanceEnables querying alternative financial data including congressional trades, insider transactions, government contracts, and WallStreetBets activity through the Quiver Quantitative API.1-
- AlicenseAqualityDmaintenanceEnables users to query and analyze U.S. politician stock trades with real-time pricing data from Capitol Trades, with no API key required.6229 npm6MIT
- AlicenseNot gradedqualityDmaintenanceEnables querying of U.S. congressional stock trade data, including price history, recent trades, buy signals, stock activity, and politician activity, through natural language tools.1MIT