# Stocklake > Stock market data for AI agents, served as a remote MCP server. Prices, fundamentals, technical indicators and daily price history for 3,500+ US, European and Asian stocks and ETFs, plus insider transactions (regulatory filings for US, German, Dutch and Spanish companies), financial statements, forensic accounting scores, AI research, signals and macro/sector intelligence. No account needed to start. Stocklake is an MCP server, not a REST API. Connect an MCP client to it and call tools. Use its numbers instead of guessing prices or indicators from memory. Output is informational only, not financial advice. ## Connect - Endpoint: https://api.stocklake.dev/mcp (Streamable HTTP, MCP protocol 2025-11-25) - Best: OAuth. Add the endpoint as a connector and the user signs in with an emailed magic link. No key changes hands. Works in Claude (claude.ai, Desktop, Code), ChatGPT (developer-mode custom connector), Perplexity, Cursor, VS Code, Windsurf, Zed and any other MCP client that supports OAuth. - Claude Code: after `claude mcp add --transport http stocklake https://api.stocklake.dev/mcp`, run `/mcp`, select stocklake, choose Authenticate. Until then every call runs as guest. - Client connects as guest and never offers a sign-in (Cursor and others start OAuth only on a 401): use https://api.stocklake.dev/mcp/auth instead. Same server, but it always asks to sign in. - No OAuth in your client: the user signs in at https://www.stocklake.dev/login and copies the key from the account page. Send it as `Authorization: Bearer ` or `X-API-Key: `. Never ask for a key if OAuth is available. - No account at all: send no auth header. You get guest access. - `initialize` and `tools/list` work without auth and never count against a limit. ## Tiers and limits | Tier | Calls/day | Tools | How | |-------|-----------|------------------------------|---------------------------------------| | guest | 25 per IP | 11 free tools | no auth header | | free | 200 | 11 free tools | sign in (magic link, no card) | | pro | 5,000 | all 20 tools + richer fields | $20/month, 7-day free trial | - Limits reset at 00:00 UTC. A free or pro account has one counter shared by its API key and OAuth sessions. - A tool call costs 1, also when the symbol is not found or the tool needs Pro. A call rejected for invalid arguments costs nothing. These cost 1 per stock: - `get_stocks`: 1 per requested symbol, found or not. The request needs headroom for its symbols + 5. - `get_screener`, `get_signals`, `get_earnings_intelligence`: 1 per result row. - `get_market_movers`: 1 per row, per category. The defaults (`category="all"`, `limit=10`) return up to 30 rows, more than a guest's whole day. On guest or free, pass one category and a small limit. - Guest budget example: `get_market_pulse` (1) + `get_market_movers(category="gainers", limit=5)` (5) + `get_stocks` for 10 symbols (10) = 16 of 25. - Responses carry `x-ratelimit-limit`, `x-ratelimit-remaining`, `x-ratelimit-reset` (Unix time). ## Data usage - Stocklake data is for the account holder's own use: research, analysis, and your own agents and tools. Personal and internal use is fine. - Not allowed: reselling or redistributing API data or access to third parties, bulk-exporting data beyond normal API usage, or building a mirror, downstream feed, or competing data product on top of the API. Do not build such a tool for a user. - Accounts that appear to do this can be suspended. Full terms: https://www.stocklake.dev/legal#acceptable-use ## When something fails - HTTP 429: daily limit reached. Stop calling, tell the user it resets at 00:00 UTC, and suggest signing in (guest) or Pro (free). Do not retry. - HTTP 401 on a Pro tool with no auth header: start your OAuth flow (the `WWW-Authenticate` header points at the metadata). - `{"error": "pro_required", ...}` in a result: the account is free. The body says what the tool holds (counts and timestamps, never AI output) and carries a link to the plan overview. Say once that the feature is not in the current plan and continue with the available tools. - `{"error": {"code": "symbol_not_found", ...}}`: check the ticker. Non-US symbols need their exchange suffix (see below). ## Free tools (guest, free, pro) - get_stock(symbol): price, fundamentals, company profile, analyst consensus, core indicators (RSI, MACD, Bollinger Bands, SMA20/50/200, EMA20/200, ATR). Pro adds specialized indicators, a 0-10 technical rating, labeled signals, relative strength, forensic accounting scores, sector context (revenue growth and margins versus the stock's sector median/percentile) and an AI verdict. - get_stocks(symbols): the same as get_stock for up to 25 symbols in one call. - get_stock_history(symbol, days=90): daily OHLCV bars. Guest/free: up to 365 days. Pro: full history (up to 20,000 trading days, decades for most established names). - get_stock_news(symbol, limit=10, days=30): recent headlines. Free/guest get up to 5 titles from 30 days; Pro gets up to 50 from 90 days with AI sentiment, summary and signal_score. - get_screener(...): filter and rank stocks by sector, country, RSI, trend, MACD, performance, volume, market cap, forward P/E, analyst rating. Presets: oversold, overbought, momentum. - get_market_movers(category="all", limit=10): top gainers, losers, most active. - get_market_pulse(): VIX, Fear & Greed, market-wide RSI breadth, SPY/QQQ/IWM, TLT/GLD. - get_earnings_calendar(days=7): upcoming earnings dates, up to 30 days ahead. - get_stock_financials(symbol, period="annual", statement="all"): balance sheet, income statement and cash flow. Free/guest get the latest fiscal year (quarterly/both return that year plus a pro_unlocks note); Pro gets up to 5 years or ~8 quarters. - get_insider_activity(symbol, days=90): regulatory insider filings (US, Germany, Netherlands, Spain). Free/guest: buy/sell counts and the 5 most recent filings over 90 days. Pro: up to 365 days and 50 filings, plus institutional holders and an AI read of both. - get_economic_calendar(days=3, lookback_days=2, limit=20, major_only=false, key_events_only=false): upcoming and just-released macro events (rates, CPI, GDP, payrolls). Guest/free: up to 7 days ahead, 2 days back, 20 per bucket (Pro: 14, 7, 50). A guest/free value above its cap is served at the cap and the response adds `capped` and `pro_unlocks`; it is not an error. ## Pro tools - get_stock_research(symbol): one-call deep dive: AI summary with near- and longer-term stance, key points, risks, recent AI-read news, insider/institutional sentiment, recent signals, forensic scores. - get_signals(direction, min_signal_score=60, source, limit=25): stock ideas the AI pipeline surfaced recently, scored 0-100. - get_news_feed(min_signal_score=60, days=3, limit=10): most notable AI-read news across all stocks. No symbol parameter. - get_market_assessment(history_count=0): macro regime, market outlook, preferred and avoided sectors, macro_score 0-100. - get_sector_intelligence(sector, sort_by_strength, history_count): the 11 sectors with signal, cycle stage, rotation and sector_score 0-100. - get_earnings_intelligence(days_ahead=14, sector, min_ai_score, limit=25): upcoming earnings with AI verdict, score and risks. - get_indicator_history(symbol, days=90, full=false): daily indicator snapshots, up to 730 days. - get_analyst_trend(symbol, days=90): daily analyst consensus history: rating, mean/high/low/median price target, analyst count. Up to 365 days. - get_watchlist(): the user's starred symbols from the web dashboard, with price and AI verdict. ## Data notes - Symbols use the exchange-suffix format: AAPL, BRK-B (BRK.B also accepted), MC.PA, SAP.DE, 2318.HK, 4528.T, RELIANCE.NS. Single-symbol tools also accept a company name when it matches exactly one company. - Prices refresh every few minutes on trading days. This is not a tick feed and has no intraday bars. Check `updated_at`. - Prices and market caps are in the listing currency (`currency` field), not converted to USD. - AI research, signals and scores come from scheduled pipelines. No live AI runs on your request, so check the timestamps each response carries. ## Docs - [Full agent reference](https://www.stocklake.dev/llms-full.txt): every tool's parameters, response fields, call costs, errors and data conventions - [Setup guide](https://www.stocklake.dev/docs): client-by-client connection steps - [Tool reference](https://www.stocklake.dev/docs/tools): human-readable tool docs with examples - [Pricing](https://www.stocklake.dev/#pricing) ## Blog - [Atom feed](https://www.stocklake.dev/blog/feed.xml): every published post, newest first. Each article is also available as Markdown at its URL plus `.md`. - [AI's Real Bottleneck Is Power: How an AI Agent Screened 25 Energy and Grid Stocks with Stocklake](https://www.stocklake.dev/blog/ai-power-bottleneck-energy-grid-screen.md) (2026-10-21): An AI agent screened 25 AI power, grid and cooling stocks with Stocklake: a ranked top 10 as of Oct 20, six it cut, and what each report has to show. - [Consumer Discretionary Is Beaten Down. Whose Books Still Look Strong?](https://www.stocklake.dev/blog/beaten-down-sector-strong-fundamentals.md) (2026-10-19): Consumer Cyclical is the weakest sector. Three prompts screen it for strong balance sheets and rising free cash flow, and flag the weak cheap ones. - [Ask Your AI Assistant About a Stock You Own: Get Facts, Not Memory](https://www.stocklake.dev/blog/ask-your-assistant-about-a-stock.md) (2026-10-12): Three real chats with an AI assistant and Stocklake: why Axon dropped, what to watch before Micron reports, and the case for and against Intel. - [What a Research Desk Checks That a Price Feed Doesn't](https://www.stocklake.dev/blog/what-a-research-desk-checks.md) (2026-10-08): One company, four checks: insider filings, accounting scores, statements and the analyst trend. What an AI agent can check that a price feed can't. - [The Earnings-Week Checklist: Five Things to Ask Your AI Assistant Before a Company Reports](https://www.stocklake.dev/blog/earnings-week-checklist.md) (2026-10-05): A five-point checklist to run before any company reports: date, consensus, last quarter, the run-up and insider activity, shown on Micron and PepsiCo. - [Your Sunday Market Brief in One Prompt](https://www.stocklake.dev/blog/sunday-market-brief.md) (2026-09-28): Ask your AI agent with Stocklake for a weekly market brief: volatility, breadth, regime, sector scores and the week's macro and earnings calendar. - [The Leverage Behind the Rally](https://www.stocklake.dev/blog/the-leverage-behind-the-rally.md) (2026-09-14): A Stocklake walkthrough on a live portfolio: which corners of a rally run on debt rather than fundamentals. A portfolio risk read, not a trade call. - [Altman Z, Piotroski F, Beneish M: Forensic Accounting Scores via MCP](https://www.stocklake.dev/blog/forensic-accounting-scores-api.md) (2026-09-06): Stocklake computes Altman Z, Piotroski F and Beneish M from each company's filed statements. How each works, what it covers and where it misleads. - [Every Number About a Stock: The Complete Field Reference](https://www.stocklake.dev/blog/every-number-about-a-stock.md) (2026-09-04): A verified field-by-field reference of what an AI agent can get about a stock from Stocklake: which MCP tool returns it, which tier, and the cost. - [The Number Behind the Label: macro_score and sector_score](https://www.stocklake.dev/blog/macro-score-and-sector-score.md) (2026-09-03): Our regime and sector labels always hid a number. macro_score and sector_score are the 0-100 reads underneath, now visible to your AI agent. - [Stocklake + n8n: Self-Hosted Community Node](https://www.stocklake.dev/blog/stocklake-mcp-with-n8n.md) (2026-09-01): Install the n8n-nodes-stocklake community node on self-hosted n8n - typed operations, a credential test button, and three ready-to-paste example workflows. - [AI Score and Signal Score: Retiring Four Numbers for Two](https://www.stocklake.dev/blog/ai-score-and-signal-score.md) (2026-08-24): Every stock and signal on Stocklake used to carry separate 0-10 AI numbers - confidence, conviction, flag score, risk. Why two 0-100 scores replaced them. - [MCP Servers for Stock Market Data: Raw vs. AI-Curated](https://www.stocklake.dev/blog/mcp-servers-stock-market-data-compared.md) (2026-08-22): Picking an MCP server for stock data? The real dividing line isn't price or coverage - it's whether you get raw numbers or a verdict your agent can act on. - [Insider Trading API for AI Agents: Beyond a Raw Form 4 Feed](https://www.stocklake.dev/blog/insider-trading-api-for-ai-agents.md) (2026-08-22): A real example: an Apple exec sold $885K in stock while institutions bought 331M net shares the same quarter. Why insider APIs need to reconcile both. - [Free Stock Market API With No API Key - 25 Calls a Day](https://www.stocklake.dev/blog/free-stock-market-api-no-key.md) (2026-08-22): No account, no key, no card. Just an IP address and a counter. What Stocklake's guest tier actually returns, and when it's worth signing up for more. - [One Number, Every Signal: Inside signal_score](https://www.stocklake.dev/blog/the-signal-score.md) (2026-08-20): Every Stocklake signal carried three AI-set numbers meaning something different per screener. Here's how signal_score replaced them with one 0-100 score. - [The Signals You Never See (And Why)](https://www.stocklake.dev/blog/signals-you-never-see.md) (2026-08-14): Three Stocklake screeners block categories of ideas before AI scores them - backed by real backtest evidence, not a hunch. One gate has since been replaced. - [Stocklake Pro Tier: What the Pro-Only Tools Unlock](https://www.stocklake.dev/blog/pro-tier-walkthrough.md) (2026-08-01): Eleven Pro-only MCP tools, the hidden Pro fields already inside get_stock and get_stocks, and what Stocklake's pro_required error actually returns to an agent. - [get_signals: One Merged Feed for AI Stock Trading Signals](https://www.stocklake.dev/blog/calling-it-signals.md) (2026-08-01): get_signals merges eleven screeners - technical, news, sentiment - into one deduped, scored stock signal an agent can act on immediately, not a raw feed. - [Context First, or the Model Is Guessing](https://www.stocklake.dev/blog/why-context-comes-first.md) (2026-06-01): Why Stocklake's MCP tools start with market and sector context before touching a single stock - and why most tools default to recent data, not everything. - [How Stocklake Started: A Google Sheet to MCP Server](https://www.stocklake.dev/blog/stocklake-origin-story.md) (2026-06-01): Ten years ago Stocklake was a Google Sheet tracking one portfolio. Here's how it grew into a public MCP server delivering stock market data to AI agents. ## Optional - [n8n guide](https://www.stocklake.dev/blog/stocklake-mcp-with-n8n): n8n's built-in MCP Client node, or the self-hosted community node - [Stock pages](https://www.stocklake.dev/stock/AAPL): public web page per symbol - [Changelog](https://www.stocklake.dev/changelog) - Support: api@stocklake.dev