stocklake avatar

Stocklake — AI Stock Intelligence

dev.stocklake/stocklake

Connects Claude to Stocklake's financial data API over streamable HTTP. You get tools for pulling stock prices, fundamentals, technical indicators, news feeds, macro regime analysis, and sector rotation signals. Requires an API key from api.stocklake.dev/register, passed via Bearer token or X-API-Key header. Reach for this when you need Claude to analyze markets, screen stocks, or track portfolio positions without copy-pasting data from multiple sources. The MCP endpoint handles protocol version 2025-11-25, so you're working with current spec. Good fit for building investment research workflows or automating market monitoring tasks where you want natural language queries hitting live financial data.

tools
22
transport
HTTP
last updated
Jun 2, 2026

Install

From registry metadata
$ npx add-mcp https://api.stocklake.dev/mcp --name stocklake

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http stocklake https://api.stocklake.dev/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 22 tools

Verified live against the running server on Nov 6, 2026.

get_stockPrice, fundamentals, technical indicators, and company profile for a stock. Returns all data needed to understand a stock in a single call. Key fields: - price, change_pct, prev_close, week52_high/low, volume, avg_volume - market_cap, enterprise_value, beta - pe_trailing, pe_f...1 params

Price, fundamentals, technical indicators, and company profile for a stock. Returns all data needed to understand a stock in a single call. Key fields: - price, change_pct, prev_close, week52_high/low, volume, avg_volume - market_cap, enterprise_value, beta - pe_trailing, pe_f...

Parameters* required
symbol*string
Stock ticker symbol. Also accepts a company name as a fallback (e.g. "Apple") when it uniquely resolves to one symbol.
get_stock_newsRecent news articles for one stock, newest first. - symbol: ticker, e.g. "AAPL" or "SAP.DE". - days: look-back window in days. Values above the account's maximum are lowered to it (30 or 90 days, depending on the account). - limit: max articles returned. Values above the accou...3 params

Recent news articles for one stock, newest first. - symbol: ticker, e.g. "AAPL" or "SAP.DE". - days: look-back window in days. Values above the account's maximum are lowered to it (30 or 90 days, depending on the account). - limit: max articles returned. Values above the accou...

Parameters* required
daysinteger
Look-back window in days (default 30). Values above the account's maximum (30 or 90) are lowered to it.default: 30
limitinteger
Max articles returned (default 10). Values above the account's maximum (5 or 50) are lowered to it.default: 10
symbol*string
Stock ticker symbol. Also accepts a company name as a fallback when it uniquely resolves to one symbol.
get_stock_historyDaily OHLCV price history for a stock. - days: number of trading days to return (default 90). Guest/free: max 365. Pro: full history, up to 20,000 trading days (most established names go back decades; a full pull can be ~10,000+ bars, so request only what you need). - Returns:...2 params

Daily OHLCV price history for a stock. - days: number of trading days to return (default 90). Guest/free: max 365. Pro: full history, up to 20,000 trading days (most established names go back decades; a full pull can be ~10,000+ bars, so request only what you need). - Returns:...

Parameters* required
daysinteger
Number of trading days of daily OHLCV history to return (default 90). Max 365 for guest and free; Pro can request the full history (up to 20,000 trading days). A full-history call can be ~10,000+ b...default: 90
symbol*string
Stock ticker symbol. Also accepts a company name as a fallback when it uniquely resolves to one symbol.
get_earnings_calendarUpcoming earnings dates for stocks in the Stocklake universe. - days: look-ahead window in days (default 7, max 30) - limit: max companies to return. Free and guest get at most 5, whatever limit says: the companies with the largest market cap, listed by date, each counted as o...5 params

Upcoming earnings dates for stocks in the Stocklake universe. - days: look-ahead window in days (default 7, max 30) - limit: max companies to return. Free and guest get at most 5, whatever limit says: the companies with the largest market cap, listed by date, each counted as o...

Parameters* required
daysinteger
Look-ahead window in days (default 7, max 30).default: 7
limitvalue
Max companies to return. Free and guest: at most 5 (the largest by market cap), each counted as one call toward your daily limit. Pro: up to 500 per call (default 100), one call each.
min_market_capvalue
Only companies with a market cap of at least this many US dollars (e.g. 10000000000 for $10B). Applied before limit.
offsetinteger
Pro only: skip this many companies (by date) to page through a long window. Use next_offset from the previous response. Ignored for Free and guest.default: 0
symbolsvalue
Only these tickers (up to 50), e.g. your holdings. Applied before limit.
get_market_assessmentCombined AI market assessment: macro regime + market outlook in a single call. Refreshed ~4x/day, weekdays only, during market hours (~2h apart) - dead overnight and on weekends, not a continuous 4-hourly cadence. Check regime_stale/outlook_stale below (which already account f...1 params

Combined AI market assessment: macro regime + market outlook in a single call. Refreshed ~4x/day, weekdays only, during market hours (~2h apart) - dead overnight and on weekends, not a continuous 4-hourly cadence. Check regime_stale/outlook_stale below (which already account f...

Parameters* required
history_countinteger
Include the last N prior assessments for each of regime and outlook (0-3, default 0).default: 0
get_sector_intelligenceAI-assessed sector intelligence: signal, cycle stage, rotation signal, drivers, alerts, and computed statistics per sector (RSI distribution, breadth, performance 1W/1M, top/bottom movers, historical percentiles). Pass a sector name for a single sector, or omit the parameter (...3 params

AI-assessed sector intelligence: signal, cycle stage, rotation signal, drivers, alerts, and computed statistics per sector (RSI distribution, breadth, performance 1W/1M, top/bottom movers, historical percentiles). Pass a sector name for a single sector, or omit the parameter (...

Parameters* required
history_countinteger
Include the last N prior signal states per sector, 0-3 (default 0). Only applies to the all-sectors call.default: 0
sectorvalue
Pass a sector name for a single sector's assessment, or omit (None) to get the latest assessment for all 11 sectors at once - the all-sectors call doubles as the rotation view.
sort_by_strengthboolean
Sort all-sectors output LEADING→LAGGING instead of alphabetical, for finding leading vs lagging sectors. Only applies to the all-sectors call; ignored when a single sector is requested.default: false
get_insider_activityGet insider transactions (regulatory insider filings for the US and several European markets) and, on Pro, the AI read plus institutional holdings for a stock. Every tier (guest/free/pro) gets the filing facts: insider_buys and insider_sells over the window (echoed as window_d...2 params

Get insider transactions (regulatory insider filings for the US and several European markets) and, on Pro, the AI read plus institutional holdings for a stock. Every tier (guest/free/pro) gets the filing facts: insider_buys and insider_sells over the window (echoed as window_d...

Parameters* required
daysinteger
Insider-transaction window in days (default 90, max 365 on Pro; free/guest calls are capped at 90). Applies to transactions, insider_buys and insider_sells.default: 90
symbol*string
Stock ticker symbol to fetch insider-filing and institutional-holdings activity for.
get_stocksBatch stock data for up to 25 symbols in a single call - the same fields get_stock returns for the same key/symbol, so this is a true batch version, not a thinned-down scan. Returns a dict keyed by symbol. Missing symbols are omitted from the result. Each symbol in the batch c...1 params

Batch stock data for up to 25 symbols in a single call - the same fields get_stock returns for the same key/symbol, so this is a true batch version, not a thinned-down scan. Returns a dict keyed by symbol. Missing symbols are omitted from the result. Each symbol in the batch c...

Parameters* required
symbols*array
List of stock ticker symbols, up to 25 per call. Each symbol counts as one call toward the daily limit. A request over 25 symbols is rejected outright (error: batch_too_large) rather than silently...
get_market_pulseMarket health snapshot in a single call. Aggregates key market indicators without requiring multiple tool calls. No AI cost. Index and bond/commodity prices are the latest available, delayed about 15 minutes; vix, fear_greed and breadth come from the latest market snapshot (se...

Market health snapshot in a single call. Aggregates key market indicators without requiring multiple tool calls. No AI cost. Index and bond/commodity prices are the latest available, delayed about 15 minutes; vix, fear_greed and breadth come from the latest market snapshot (se...

No parameters. Call it with no arguments.

get_signalsAI-screened stock signals recently surfaced by the Stocklake pipeline - sourced from news analysis, sector screening, and sentiment signals. Shows what the pipeline noticed in the last 24 hours (falling back to the most recent signals regardless of age if nothing has fired in...4 params

AI-screened stock signals recently surfaced by the Stocklake pipeline - sourced from news analysis, sector screening, and sentiment signals. Shows what the pipeline noticed in the last 24 hours (falling back to the most recent signals regardless of age if nothing has fired in...

Parameters* required
directionvalue
Filter by direction: "POSITIVE" | "NEGATIVE" | "NEUTRAL" (default: all). NEUTRAL covers both a flat/undecided read and a genuinely two-sided idea (see signal_score below).
limitinteger
Max results to return (default 25, max 50). Each returned signal counts as one call toward your daily limit.default: 25
min_signal_scoreinteger
Minimum signal score, 0-100 (default 60) - mainly how stretched the stock is in the signal's direction. This is the field to filter on.default: 60
sourcevalue
Filter by signal source: "news" | "screener" | "sentiment" (default: all).
get_watchlistThe caller's Stocklake watchlist (starred symbols from the web dashboard), enriched with latest price, technicals, and AI verdict. Returns: - count: number of symbols on the watchlist - items[]: each with symbol, name, sector, price, change_pct, rsi, market_cap, analyst_rating...

The caller's Stocklake watchlist (starred symbols from the web dashboard), enriched with latest price, technicals, and AI verdict. Returns: - count: number of symbols on the watchlist - items[]: each with symbol, name, sector, price, change_pct, rsi, market_cap, analyst_rating...

No parameters. Call it with no arguments.

get_news_feedMost notable recent news across all tracked stocks: a market-wide briefing. Unlike get_stock_news (one symbol), this scans every tracked stock and returns articles ranked by signal_score, newest first within each score. Use this for: - Morning briefing: "what happened in the m...3 params

Most notable recent news across all tracked stocks: a market-wide briefing. Unlike get_stock_news (one symbol), this scans every tracked stock and returns articles ranked by signal_score, newest first within each score. Use this for: - Morning briefing: "what happened in the m...

Parameters* required
daysinteger
Look-back window in days (default 3, max 10).default: 3
limitinteger
Max articles returned (default 10, max 25).default: 10
min_signal_scoreinteger
Minimum signal_score, 0-100 (default 60).default: 60
get_screenerFilter and rank stocks from the Stocklake universe - fundamentals, technicals, and AI signals in one tool. Parameters: - sector: e.g. "Technology", "Healthcare", "Financial Services" - country: e.g. "United States", "Germany" - min_rsi / max_rsi: exact RSI bounds (e.g. max_rsi...18 params

Filter and rank stocks from the Stocklake universe - fundamentals, technicals, and AI signals in one tool. Parameters: - sector: e.g. "Technology", "Healthcare", "Financial Services" - country: e.g. "United States", "Germany" - min_rsi / max_rsi: exact RSI bounds (e.g. max_rsi...

Parameters* required
analyst_ratingvalue
Filter by analyst consensus rating: "strong_buy" | "buy" | "hold" | "sell" | "strong_sell".
countryvalue
Filter by country, e.g. "United States", "Germany".
limitinteger
Max results to return, 1-25 (default 20). Each returned stock counts as one call toward your daily limit.default: 20
macd_signalvalue
"positive" (MACD line above signal) | "negative".
max_market_cap_bvalue
Maximum market cap in billions of US dollars (compared against market_cap_usd).
max_pe_forwardvalue
Maximum forward P/E, e.g. 20 for a value screen.
max_perf_1dvalue
Maximum 1-day performance %.
max_rsivalue
Maximum RSI bound (e.g. max_rsi=30 = oversold).
min_ai_scorevalue
Minimum AI score, 0-100 - pro tier only (silently ignored for free). Gates on the AI research composite ai_score, same 0-100 scale and bands as signal_score but a separate score (per-stock AI summa...
min_market_cap_bvalue
Minimum market cap in billions of US dollars (compared against market_cap_usd, so non-USD listings are converted first).
min_perf_1dvalue
Minimum 1-day performance %, e.g. min_perf_1d=2.0 = up 2%+ today.
min_rsivalue
Minimum RSI bound (e.g. min_rsi=70 = overbought).
min_volumevalue
Minimum daily volume, e.g. 1000000.
presetvalue
"oversold" | "overbought" | "momentum" | "high_conviction" (pro only). oversold = RSI<=35 + above SMA200; overbought = RSI>=65; momentum = RSI 50-70, above SMA200, up 0.5%+ today; high_conviction =...
sectorvalue
Filter by sector, e.g. "Technology", "Healthcare", "Financial Services".
sma_trendvalue
"above_200" (price above 200-day MA) | "below_200".
sort_byvalue
"market_cap" | "rsi" | "perf_1d" | "volume" | "analyst_rating" | "rating" | "ai_score" (pro). Defaults to "market_cap", except the "high_conviction" preset defaults to "ai_score" (the dimension it'...
sort_dirstring
Sort direction: "asc" | "desc" (default "desc").default: desc
get_market_moversTop market movers from the Stocklake universe - gainers, losers, most active. - category: "gainers" | "losers" | "most_active" | "all" (default "all" = all 3 categories) - limit: results per category (default 10, max 20). Each returned stock counts as one call toward your dail...3 params

Top market movers from the Stocklake universe - gainers, losers, most active. - category: "gainers" | "losers" | "most_active" | "all" (default "all" = all 3 categories) - limit: results per category (default 10, max 20). Each returned stock counts as one call toward your dail...

Parameters* required
categorystring
Which movers category to return: "gainers" | "losers" | "most_active" | "all" (default "all" = all 3 categories).default: all
limitinteger
Results per category (default 10, max 20). Each returned stock counts as one call toward your daily limit - a symbol appearing in more than one category (e.g. both "gainers" and "most_active") coun...default: 10
min_market_cap_bvalue
Filter to stocks above this market cap in billions of US dollars, e.g. 1.0 = $1B+ (compared against market_cap_usd).
get_indicator_historyHistorical daily indicator snapshots for a stock - ideal for charting and trend detection. Returns up to `days` days of data (max 730, default 90) from the stock_indicator_snapshots collection which is populated daily by the indicator pipeline. Every snapshot row contains: - r...3 params

Historical daily indicator snapshots for a stock - ideal for charting and trend detection. Returns up to `days` days of data (max 730, default 90) from the stock_indicator_snapshots collection which is populated daily by the indicator pipeline. Every snapshot row contains: - r...

Parameters* required
daysinteger
Number of days of historical daily indicator snapshots to return (max 730, default 90). Returns {} if fewer than 3 snapshots are found in the window.default: 90
fullboolean
False (default) returns only recorded_at/price/rsi/macd_histogram/bb_pct/sma20/sma200 per day - enough for most charting/trend use. True adds the specialized indicators (williams_r, ultimate_osc, v...default: false
symbol*string
Stock ticker symbol. Also accepts a company name as a fallback when it uniquely resolves to one symbol.
get_stock_financialsRaw financial statements - balance sheet, income statement, and cash flow line items. This is the underlying statement data itself, not a derived summary - for the forensic-accounting scores computed FROM these statements (Altman Z / Piotroski F / Beneish M), see get_stock()'s...3 params

Raw financial statements - balance sheet, income statement, and cash flow line items. This is the underlying statement data itself, not a derived summary - for the forensic-accounting scores computed FROM these statements (Altman Z / Piotroski F / Beneish M), see get_stock()'s...

Parameters* required
periodstring
'annual' (default; Pro: up to 5 fiscal years, free: the latest fiscal year), 'quarterly' (Pro: up to ~7-8 most recent quarters), or 'both' (Pro). Free/guest asking for 'quarterly' or 'both' gets th...default: annual
statementstring
'all' (default), 'balance_sheet', 'income_stmt', or 'cash_flow' - restricts which statement(s) are returned.default: all
symbol*string
Stock ticker symbol. Also accepts a company name as a fallback when it uniquely resolves to one symbol.
get_analyst_trendHow analyst consensus on a stock has moved over time - the trajectory of the rating and price targets, not just today's value. Answers "are analysts getting more or less positive on this name?", which get_stock's single current analyst_rating / analyst_target cannot. Returns o...2 params

How analyst consensus on a stock has moved over time - the trajectory of the rating and price targets, not just today's value. Answers "are analysts getting more or less positive on this name?", which get_stock's single current analyst_rating / analyst_target cannot. Returns o...

Parameters* required
daysinteger
Number of days of daily analyst snapshots to return (max 365, default 90). Returns an empty list with a note if fewer than 2 snapshots exist in the window.default: 90
symbol*string
Stock ticker symbol. Also accepts a company name as a fallback when it uniquely resolves to one symbol.
get_stock_activityEverything that happened to one stock over the last 90 days, in one timeline, newest first: news, SEC 8-K filings, insider clusters and large single trades, earnings dates and reported results, analyst target and rating changes, and screener setups. Answers "what has been goin...5 params

Everything that happened to one stock over the last 90 days, in one timeline, newest first: news, SEC 8-K filings, insider clusters and large single trades, earnings dates and reported results, analyst target and rating changes, and screener setups. Answers "what has been goin...

Parameters* required
daysinteger
Look-back window in days (default 90, max 90).default: 90
limitinteger
Items per page (default 25, max 50). The whole call counts as one call toward your daily limit.default: 25
pageinteger
Page number, starting at 1. `pages` in the response says how many there are.default: 1
symbol*string
Stock ticker symbol. Also accepts a company name as a fallback when it uniquely resolves to one symbol.
typesvalue
Which kinds of items to return: any of "news", "filing", "insider", "earnings", "analyst", "setup" (default: all). Unknown names are an error that lists the valid ones.
get_stock_filingsThe latest SEC 8-K filings of one company, newest first: when each was filed, what it reports and, on Pro, what it says. 8-Ks are how a US-listed company announces results, deals, financings, leadership changes and other material events. Free returns the 5 most recent filings...2 params

The latest SEC 8-K filings of one company, newest first: when each was filed, what it reports and, on Pro, what it says. 8-Ks are how a US-listed company announces results, deals, financings, leadership changes and other material events. Free returns the 5 most recent filings...

Parameters* required
limitinteger
Max filings returned (default 10, max 25; Free returns up to 5). The whole call counts as one call toward your daily limit.default: 10
symbol*string
Stock ticker symbol. Also accepts a company name as a fallback when it uniquely resolves to one symbol.
get_economic_calendarUpcoming and recently-released macro/economic events -- interest rate decisions, CPI, GDP, PMI, unemployment, payrolls, retail sales, and more. Two buckets: - released_recent: events with a real reported value, within the last `lookback_days` days. Every item here carries a re...5 params

Upcoming and recently-released macro/economic events -- interest rate decisions, CPI, GDP, PMI, unemployment, payrolls, retail sales, and more. Two buckets: - released_recent: events with a real reported value, within the last `lookback_days` days. Every item here carries a re...

Parameters* required
daysvalue
Look-ahead window in days for upcoming events. Default 1 for guest and free, 3 for Pro. Max 1 for guest and free, 14 for Pro.
key_events_onlyboolean
Restrict to the small subset of event types that reliably move markets on their own: interest rate/rate decisions, CPI, GDP, and headline Non-Farm Payrolls. Default false returns every event matchi...default: false
limitinteger
Max results per bucket, released_recent and upcoming each capped independently (default 20). Max 20 for guest and free, 50 for Pro.default: 20
lookback_daysinteger
Look-back window in days for recently-released events (default 2). Max 2 for guest and free, 7 for Pro. Actual values arrive with about a 1-day reporting lag, so a same-day-only window misses real...default: 2
major_onlyboolean
Restrict to the 8 largest economies (United States, Euro Area, United Kingdom, Japan, China, Germany, France, Canada). Default false returns all countries.default: false
get_stock_researchFull AI research bundle for a stock in one call - fundamentals, AI-generated summary, recent AI-classified news, insider/institutional signal, and recent trade signal history. Replaces 4 separate calls: get_stock + get_stock_news + get_insider_activity + get_signals (for one s...1 params

Full AI research bundle for a stock in one call - fundamentals, AI-generated summary, recent AI-classified news, insider/institutional signal, and recent trade signal history. Replaces 4 separate calls: get_stock + get_stock_news + get_insider_activity + get_signals (for one s...

Parameters* required
symbol*string
Stock ticker symbol to fetch the full AI research bundle for.
get_earnings_intelligenceUpcoming earnings with AI context - AI scores, verdicts, and risk factors per stock. Combines the earnings calendar with AI pipeline data to surface which upcoming earnings events are worth monitoring. Parameters: - days_ahead: look-ahead window in days (default 14, max 30) -...4 params

Upcoming earnings with AI context - AI scores, verdicts, and risk factors per stock. Combines the earnings calendar with AI pipeline data to surface which upcoming earnings events are worth monitoring. Parameters: - days_ahead: look-ahead window in days (default 14, max 30) -...

Parameters* required
days_aheadinteger
Look-ahead window in days (default 14, max 30).default: 14
limitinteger
Max results to return (default 25, max 25). Each returned ticker counts as one call toward your daily limit.default: 25
min_ai_scorevalue
Only return stocks with AI score >= this value, 0-100 (optional). Gates on the same ai_score field the response returns. Applied server-side before limit truncates the result, so a qualifying stock...
sectorvalue
Filter to one sector, e.g. "Technology".

Sponsors

Details

Transport
HTTP
Registry
MCP registry, active
Tools verified
Nov 6, 2026