alphavantage_daily
Get daily OHLCV price history from Alpha Vantage. Returns up to 100 most recent trading days. Rate limit: 25 calls/day, 5 calls/min (free tier).
Screen US stocks and crypto, read technicals and option Greeks, follow insider and 13F filings, and keep your own watchlists — most of it without signing up for anything.
LABSCO SUMMARY
The unusual part is how much works with no account at all: screening, filings, option Greeks, max pain, ECB rates and sentiment all come from sources that need no key, and the three optional keys are free and only widen the surface. Two things to decide up front — whether to run with the workspace, since that is what makes watchlists and thesis notes persist locally, and how hard to lean on Alpha Vantage, whose free tier stops at 25 calls a day.
A market data server assembled from many free sources: TradingView screening, SEC EDGAR filings, Yahoo options, CBOE, CoinGecko, FRED, ECB rates and Reddit chatter, plus an optional workspace that remembers your watchlists and thesis notes between sessions.
Nothing for most of it — the TradingView, EDGAR, options, CoinGecko, ECB, sentiment and Reddit modules need no account. Three free keys each switch on their own module: FINNHUB_API_KEY for real-time quotes, company news, the earnings calendar, analyst ratings and short interest; ALPHA_VANTAGE_API_KEY for daily price history, fundamentals and earnings and dividend history; FRED_API_KEY for economic indicators and the release calendar. Modules without their key are skipped rather than failing. It starts as npx -y stock-scanner-mcp, and --enable-workspace adds the stateful tools, which write to ~/.stock-scanner-mcp on your machine. Free-tier limits are worth planning around: Alpha Vantage allows 5 calls a minute and 25 a day, Finnhub 60 a minute. The same package also runs as an HTTP sidecar with an OpenAPI 3.1 spec for non-MCP clients.
One command — npx -y stock-scanner-mcp --enable-workspace
USE CASES
Screen on your own filter set, then cross-check against unusual volume and the day's gainers before looking at any one name.
Pull the latest filings and XBRL financials, then check whether executives have been buying or selling and which institutions moved in the last 13F.
Get the expected move priced into the at-the-money straddle, then read the chain with Greeks for the expiry you care about and check where max pain sits.
Check the VIX and index levels, see which sectors are leading, and read the Fear and Greed score and put/call ratio alongside breadth.
List upcoming US releases, then read the current level and history of the specific series — CPI, fed funds, unemployment — behind the next print.
Scan mention counts and sentiment across the main investing subreddits, one ticker at a time or a whole watchlist in a single pass.
Save the trading profile, keep watchlists on the server, and write the thesis for a symbol so the next session starts from what you already decided.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
alphavantage_dailyGet daily OHLCV price history from Alpha Vantage. Returns up to 100 most recent trading days. Rate limit: 25 calls/day, 5 calls/min (free tier).
alphavantage_dividend_historyGet historical dividend data for a specific ticker. Rate limit: 25 calls/day, 5 calls/min (free tier).
alphavantage_earnings_historyGet historical earnings data (EPS actual vs estimate) for a specific ticker. Rate limit: 25 calls/day, 5 calls/min (free tier).
alphavantage_overviewGet company fundamentals from Alpha Vantage. Includes PE ratio, market cap, beta, sector, industry, earnings, and analyst target price. Supports batch requests (limit 5). Rate limit: 25 calls/day, 5 calls/min (free tier).
alphavantage_quoteGet real-time stock quote from Alpha Vantage. Returns price, change, volume, and day range. Rate limit: 5 calls/min on free tier.
coingecko_coinGet detailed cryptocurrency info from CoinGecko. Use slug IDs (e.g. 'bitcoin', 'ethereum', 'solana'), NOT ticker symbols.
coingecko_globalGet global cryptocurrency market statistics: total market cap, 24h volume, BTC/ETH dominance.
coingecko_trendingGet trending cryptocurrencies on CoinGecko (top 7 by search popularity in last 24h).
crypto_quoteGet real-time quotes for specific crypto pairs. Supports 'BTCUSDT' (defaults to BINANCE) or 'BINANCE:BTCUSDT'.
crypto_scanScan cryptocurrency pairs using TradingView filters. Returns price, volume, and technical indicators.
crypto_technicalsGet technical analysis for crypto pairs. Supports 'BTCUSDT' or 'BINANCE:BTCUSDT'.
crypto_top_gainersGet top gaining cryptocurrency pairs by percentage change. Defaults to major exchanges and volume > $10k.
edgar_company_factsRetrieve high-fidelity financial metrics (Revenue, Net Income, EPS, Assets, Liabilities) directly from SEC XBRL data. This is more reliable than extracting numbers from text filings.
edgar_company_filingsRetrieve the most recent official filings for a specific company. Use this to find a company's latest 10-K (annual), 10-Q (quarterly), or 8-K (current events) reports.
edgar_insider_tradesMonitor legal stock trades made by company executives and directors (Forms 3, 4, 5). Returns detailed transaction data including insider names, titles, buy/sell type, share amounts, and prices.
edgar_institutional_holdingsTrack 'big money' moves by searching Form 13F filings. Use to find what hedge funds and institutional managers (e.g. 'Berkshire Hathaway') are holding or what firms own a specific ticker.
edgar_ownership_filingsMonitor significant changes in company ownership (5%+ stakes). Use 13D and 13G filings to identify activist investors (e.g. Carl Icahn, Ryan Cohen) entering or exiting a stock.
edgar_searchSearch SEC EDGAR filings by keyword. Best for finding mentions of specific trends, technologies, or events across all companies. Returns metadata including accession numbers, form types, and direct sec.gov links.
finnhub_analyst_ratingsGet analyst consensus recommendations for a stock. Returns counts of Strong Buy, Buy, Hold, Sell, Strong Sell ratings and the last 4 months of rating history. Rate limit: 60 calls/min (free tier).
finnhub_company_newsGet recent news for a specific company by ticker symbol. Rate limit: 60 calls/min (free tier).
finnhub_company_profileGet company profile: name, industry, market cap, IPO date, logo, website, share count, and exchange. Rate limit: 60 calls/min (free tier).
finnhub_earnings_calendarGet upcoming or historical earnings reports within a date range. Rate limit: 60 calls/min (free tier).
finnhub_market_newsGet latest market news by category (general, forex, crypto, merger). Rate limit: 60 calls/min (free tier).
finnhub_market_statusCheck if a stock exchange is currently open, and what session it is in (pre-market, regular, post-market). Rate limit: 60 calls/min (free tier).
finnhub_peersGet a list of peer/comparable companies in the same industry for a given stock. Rate limit: 60 calls/min (free tier).
finnhub_quoteGet a real-time stock quote from Finnhub (requires API key): current price, change, percent change, day high/low, open, and previous close. Preferred over tradingview_quote during market hours for live prices. Use tradingview_quote as a keyless fallback when Finnhub is unavailable. Rate limit: 60 calls/min (free tier).
finnhub_short_interestGet short interest and other key financial metrics for a stock. Rate limit: 60 calls/min (free tier).
frankfurter_convertConvert an amount between two currencies at the latest ECB daily reference rate. Updated once per business day — not suitable for intraday trading rates. Useful for cross-border stock valuation and currency exposure calculations.
frankfurter_currenciesList all 31 currencies supported by the Frankfurter API with their full names. Use to look up valid currency codes before calling other frankfurter tools.
frankfurter_historicalGet ECB forex exchange rates for a specific past date. Daily reference rates, not real-time trading rates. If the date is a weekend or holiday, returns the previous business day's rates. Data available from 1999-01-04 (Euro inception).
frankfurter_latestGet latest forex exchange rates from the European Central Bank. Returns daily reference rates for 31 major currencies. Updated once per business day at ~16:00 CET. These are reference rates, not real-time trading rates.
frankfurter_timeseriesGet daily ECB forex rate history for a date range (max 90 days). Daily reference rates, not real-time. Use for currency trend analysis. Only business days included (weekends/holidays omitted). Requires symbols filter to control response size.
fred_economic_calendarGet upcoming US economic release dates (FOMC, CPI, PPI, NFP, GDP, PCE, jobless claims, retail sales, ISM, treasury rates). Filters to high-impact releases only. Use this to identify macro catalysts that could move markets. Rate limit: 120 calls/min (free tier).
fred_indicatorGet the latest value of a US economic indicator from FRED. Accepts FRED series IDs (e.g. 'CPIAUCSL', 'DFF', 'UNRATE') or common aliases: cpi, core_cpi, ppi, gdp, unemployment, nonfarm_payrolls, fed_funds, treasury_10y, treasury_2y, initial_claims, core_pce. Returns the indicator metadata (title, frequency, units) and latest observation. Rate limit: 120 calls/min (free tier).
fred_indicator_historyGet historical values for a US economic indicator from FRED. Accepts same series IDs/aliases as fred_indicator. Supports units transformation: 'lin' (raw level), 'chg' (change), 'pc1' (% change from year ago — useful for YoY inflation), 'pch' (% change from prior period). Use 'pc1' with CPI/PPI to get YoY inflation rates directly. Rate limit: 120 calls/min (free tier).
fred_searchSearch FRED for economic data series by keyword. Returns series IDs that can be used with fred_indicator and fred_indicator_history. Results sorted by relevance. Use to discover series IDs for niche indicators. Rate limit: 120 calls/min (free tier).
market_breadthGet market breadth statistics for US equities (NYSE, NASDAQ, AMEX). Recommends default 'major_us' representing NYSE+NASDAQ+AMEX. Filters out ETFs, funds, and illiquid symbols (volume < 10k) by default to measure standard stock performance.
options_chainGet the full option chain (calls and puts) with calculated Greeks (Delta, Gamma, Theta, Vega). Use options_expirations first to find valid dates. If expiration is omitted, uses nearest date. By default, returns strikes within ±20% of current price to save tokens. Use strike_min/strike_max for custom range, or all_strikes=true for everything.
options_expirationsGet all available option expiration dates for a stock ticker. Call this first to discover valid dates, then pass one to options_chain or options_max_pain.
options_implied_moveCalculate the expected move implied by options pricing (ATM straddle). Essential for earnings plays — shows how much the market expects the stock to move. Compare implied vs historical moves to assess if premium is cheap or expensive.
options_max_painCalculate the max pain strike price — where cumulative option open interest expires worthless. This level often acts as a support/resistance zone near expiration.
options_put_call_ratioGet historical put/call ratio from CBOE (market-wide sentiment indicator). Ratio > 1.0 = more puts (bearish sentiment), < 0.7 = more calls (bullish/complacent). Types: 'total' (all options), 'equity' (stock options only), 'index' (index options only).
options_unusual_activityFind options contracts with unusually high volume relative to open interest (a common 'smart money' signal). Scans the nearest expiration and flags contracts where volume/OI exceeds a threshold.
reddit_mentionsGet mention count and top posts for a specific stock ticker across Reddit. Searches r/wallstreetbets, r/stocks, r/investing, and r/options. Returns total mentions, per-subreddit breakdown, and top 10 posts by score. Use this to check how much retail attention a ticker is getting.
reddit_sentimentGet sentiment analysis for a stock ticker from Reddit discussions. Searches r/wallstreetbets, r/stocks, r/investing, and r/options, then scores each post using keyword matching (bullish terms like 'moon', 'calls', 'breakout' vs bearish terms like 'crash', 'puts', 'dump'). Returns bullish/bearish/neutral counts, average sentiment score, and sample posts. Limitation: keyword-based scoring, not NLP — sarcasm and context may be missed.
reddit_trendingGet trending stock tickers from Reddit based on mention frequency. Scans r/wallstreetbets, r/stocks, r/investing, and r/options for posts mentioning tickers. Returns tickers sorted by mention count with per-subreddit breakdown. Limitation: uses keyword extraction (cashtags + uppercase words), not NLP — some false positives possible. Best for gauging retail buzz, not precise sentiment.
reddit_watchlist_scanBatch Reddit sentiment scan for a list of stock tickers in a single pass. Combines the tickers into one OR query per subreddit (r/wallstreetbets, r/stocks, r/investing, r/options), costing ceil(symbols/20)×4 requests instead of one call per ticker — prefer this over calling reddit_mentions or reddit_sentiment for each symbol in a watchlist. Returns, per ticker: mention count, bullish/bearish/neutral sentiment breakdown with an average score, the top post by upvotes, and a 'hot' flag (true when a ticker has 5 or more mentions in the period). Limitations: keyword-based scoring, not NLP (sarcasm/context may be missed); sentiment is scored per-post, not per-ticker, so a multi-ticker post applies the same score to each matched symbol; symbols that collide with common English words/finance acronyms (e.g. REAL, OPEN, HOLD, SELL) or fall outside 2–5 uppercase characters may report zero mentions even when discussed; and because each subreddit's combined query shares one 100-post cap, heavily-discussed tickers in a large batch can crowd out quieter ones, so counts may run lower than a single-ticker reddit_mentions query. Results cached for 5 minutes.
sentiment_crypto_fear_greedGet the Crypto Fear & Greed Index from Alternative.me. Returns a score (0-100) with rating (extreme fear/fear/neutral/greed/extreme greed). Based on Bitcoin volatility, market volume, social media, surveys, dominance, and trends. Use this alongside coingecko tools for crypto market context.
sentiment_fear_greedGet the CNN Fear & Greed Index for the US stock market. Returns a composite score (0-100) with rating (extreme fear/fear/neutral/greed/extreme greed) and 7 sub-indicators: S&P 500 momentum, stock price strength (52w highs vs lows), stock price breadth (McClellan), put/call ratio, VIX, junk bond demand, safe haven demand. Also includes previous close, 1-week, 1-month, and 1-year scores for trend context. Use this to gauge overall market sentiment before analyzing individual stocks.
tradingview_compare_stocksReturns price, change, market cap, P/E, EPS, revenue, dividend yield, RSI, and analyst recommendation rating (-1 sell to +1 buy) for 2-5 stocks. Revenue growth rate and analyst price targets are not available.
tradingview_market_indicesGet real-time values for major market indices: VIX (volatility), S&P 500, NASDAQ Composite, and Dow Jones. Essential for gauging broad market conditions, risk sentiment, and options pricing context.
tradingview_quoteGet a 15-minute delayed quote for one or more stock tickers (e.g. 'AAPL' or 'NASDAQ:AAPL'). Returns price, change, volume, market cap, and pre-market/after-hours data when available. Data is delayed ~15 minutes during market hours — use finnhub_quote for real-time prices if available. If a ticker returns empty results, retry with the correct exchange prefix (e.g. 'NYSE:CDE', 'AMEX:XYZ').
tradingview_scanScan US stocks with custom filters (price > X, RSI < 30, etc.). Returns up to limit rows with the requested columns.
tradingview_sector_performanceGet performance of S&P 500 sector ETFs (XLK, XLF, XLE, XLV, XLI, XLP, XLU, XLY, XLC, XLRE, XLB). Shows which sectors are leading or lagging today. Essential for sector rotation analysis.
tradingview_technicalsGet technical indicators (RSI, MACD, moving averages, pivot points, etc.) for one or more stock tickers. If a ticker returns empty results, retry with the correct exchange prefix (e.g. 'NYSE:CDE', 'AMEX:XYZ').
tradingview_top_gainersGet today's top gaining stocks by percentage change on a given exchange. Defaults to major US exchanges (NYSE, NASDAQ, AMEX) with market cap > $100M. OTC penny stocks excluded by default.
tradingview_top_losersGet today's top losing stocks by percentage change on a given exchange. Defaults to major US exchanges (NYSE, NASDAQ, AMEX) with market cap > $100M. OTC penny stocks excluded by default.
tradingview_top_volumeGet stocks with the highest trading volume today. Defaults to major US exchanges.
tradingview_volume_breakoutFind stocks with unusual volume (current volume significantly above average). Defaults to major exchanges.
workspace_create_watchlistCreate a new empty watchlist (max 50 per workspace).
workspace_get_profileGet the current user's trading profile and workspace settings.
workspace_get_thesisGet the saved global investment thesis for a specific symbol. Returns a stable JSON shape with a 'found' flag.
workspace_list_watchlistsList all watchlists and their instruments.
workspace_save_thesisSave or update the global investment thesis for a specific symbol (max 200 per workspace).
workspace_update_profileUpdate the user's trading profile (style, asset focus, review cadence).
workspace_update_watchlistReplace the instruments in a specific watchlist.
BEFORE YOU INSTALL
66 tools when we connected. The minimal config gives 42 tools with no API keys; --enable-workspace adds the workspace tools, and free Finnhub, Alpha Vantage and FRED keys unlock the rest.
npx on PATH
All 3 documented clients run the server on your machine.
CONTEXT COST
Rated by the size of the 66 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx -y stock-scanner-mcp --enable-workspace{
"mcpServers": {
"stock-scanner": {
"command": "npx",
"args": [
"-y",
"stock-scanner-mcp",
"--enable-workspace"
],
"env": {
"FINNHUB_API_KEY": "<YOUR_FINNHUB_API_KEY>",
"ALPHA_VANTAGE_API_KEY": "<YOUR_ALPHA_VANTAGE_API_KEY>",
"FRED_API_KEY": "<YOUR_FRED_API_KEY>"
}
}
}
}{
"mcpServers": {
"stock-scanner": {
"command": "npx",
"args": [
"-y",
"stock-scanner-mcp",
"--enable-workspace"
],
"env": {
"FINNHUB_API_KEY": "<YOUR_FINNHUB_API_KEY>",
"ALPHA_VANTAGE_API_KEY": "<YOUR_ALPHA_VANTAGE_API_KEY>",
"FRED_API_KEY": "<YOUR_FRED_API_KEY>"
}
}
}
}~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows). Restart Claude Desktop after saving.
{
"mcpServers": {
"stock-scanner": {
"command": "npx",
"args": [
"-y",
"stock-scanner-mcp"
]
}
}
}