Connect your AI to live stock data

Real-time prices, technical indicators, AI-analysed news, and market intelligence — plug into Claude, Cursor, ChatGPT, or any AI agent in minutes.

Not financial advice. All data, ratings, signals, and AI assessments are for informational and research purposes only. Nothing here constitutes investment advice or a recommendation to buy or sell any security.

Get your key

Go to /login — enter your email, click the magic link, done. No password, no captcha. Your key appears on your dashboard immediately.

Free keys give you 200 calls/day and never expire as long as you log in occasionally. No key? You still get 25 free calls/day as a guest — enough to explore. See all 21 tools →

Tiers & limits

TierRequests / dayToolsKey expiry
guest (no key)25All 10 non-AI tools (get_stock, get_stocks, get_stock_history, get_stock_rating, get_technical_signals, get_screener, search_stocks, get_market_movers, get_market_pulse, get_earnings_calendar)
free200Same 10 non-AI tools, stable account key30d
pro5,000All 21 tools incl. AI (news, AI summaries, symbol context, news feed, discovery ideas, sentiment, market assessment, sector intelligence, sector rotation, earnings intelligence, indicator history)None

Exceeding the daily request limit returns HTTP 429. Limits reset at midnight UTC.

Every authenticated response includes these headers:

HeaderDescription
X-RateLimit-LimitYour daily request cap
X-RateLimit-RemainingRequests remaining today
X-RateLimit-ResetUnix timestamp when the counter resets (midnight UTC)
X-Key-Expires-AtISO 8601 timestamp when the key expires (free tier: rolling 30-day window, auto-renews on login). Not present on Pro keys.

What can I ask?

Once connected (see Clients below), ask your agent:

All 20 tools with full parameter docs and response examples: Tool reference →

Tell your agent

The fastest way — no config files needed. Paste into any chat, project instructions, or agent system prompt (works with Claude, Cursor, ChatGPT, Windsurf, or anything else):

You have access to real-time stock market data via the Stocklake MCP server. URL: https://api.stocklake.dev/mcp Authorization: Bearer sl_your_key_here Tools available: get_stock (price + fundamentals + indicators), get_screener (filter by RSI / sector / market cap), get_market_pulse (VIX, fear/greed, breadth), get_stock_news, get_technical_signals (RSI, MACD, Williams %R, DeMark TD Sequential, Elliott Wave), search_stocks, get_market_movers, get_earnings_calendar, get_indicator_history (90-day RSI/MACD/Williams history), and more. Save this server to your MCP config or project memory for persistent access.

Works with Claude projects, Cursor, Windsurf, Chatbase — any agent that accepts system prompts or MCP config. Replace sl_your_key_here with your key from the dashboard.

Claude

Also available on Smithery — one-click install for Claude Desktop and other MCP clients.

Claude.ai — no key needed

OAuth handles auth automatically.

  1. Go to claude.ai → Settings → Integrations → add MCP server.
  2. Enter URL: https://api.stocklake.dev/mcp
  3. Complete the sign-in — tools are available immediately.

Claude Desktop

Requires a free or pro key. Add to claude_desktop_config.jsonmcpServers, then restart Claude:

{ "mcpServers": { "stocklake": { "type": "http", "url": "https://api.stocklake.dev/mcp", "headers": { "Authorization": "Bearer sl_your_key_here" } } } }

Config location: macOS ~/Library/Application Support/Claude/claude_desktop_config.json · Windows %APPDATA%\Claude\claude_desktop_config.json

Claude Code (CLI)

claude mcp add stocklake \ --transport http \ --url https://api.stocklake.dev/mcp \ --header "Authorization: Bearer sl_your_key_here"

Python (fastmcp)

import asyncio from fastmcp import Client from fastmcp.client.transports import StreamableHttpTransport async def main(): transport = StreamableHttpTransport( url="https://api.stocklake.dev/mcp", headers={"Authorization": "Bearer sl_your_key_here"}, ) async with Client(transport) as mcp: rating = await mcp.call_tool("get_stock_rating", {"symbol": "NVDA"}) news = await mcp.call_tool("get_stock_news", {"symbol": "NVDA", "days": 7}) stock = await mcp.call_tool("get_stock", {"symbol": "NVDA"}) print(rating.data, news.data, stock.data) asyncio.run(main())

curl / raw HTTP

Endpoint: POST https://api.stocklake.dev/mcp — MCP Streamable HTTP transport, protocol version 2025-11-25.

# Initialize session curl -X POST https://api.stocklake.dev/mcp \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sl_your_key_here" \ -H "Accept: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}' # Call a tool curl -X POST https://api.stocklake.dev/mcp \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sl_your_key_here" \ -H "Accept: application/json" \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_stock_rating","arguments":{"symbol":"AAPL"}}}'

OAuth 2.1

Stocklake implements OAuth 2.1 with PKCE for agent and browser-based clients. The authorization server metadata is available at the standard discovery endpoint:

GET https://api.stocklake.dev/.well-known/oauth-authorization-server
EndpointPurpose
GET /oauth/authorizeAuthorization endpoint — shows consent screen (redirects to login if no session)
POST /oauth/tokenToken endpoint — exchange code for access + refresh tokens (authorization_code and refresh_token grants)
POST /oauth/registerDynamic Client Registration (RFC 7591) — register a new OAuth client
POST /oauth/revokeRevoke an access or refresh token

Pre-registered client: anthropic-claude is a trusted public client (PKCE-only, no secret required). Claude.ai uses this client ID automatically when you add the MCP server URL.

Token lifetimes: Access tokens expire after 1 hour. Refresh tokens expire after 30 days. All tokens are SHA-256 hashed in storage.

Scopes: mcp — access to all MCP tools permitted by your account tier.

For most users, the OAuth flow is fully automatic via Claude.ai. Direct OAuth integration (e.g. building your own client) should use the discovery document and Dynamic Client Registration.

Errors

HTTP statusMeaning
401Missing or invalid Authorization: Bearer token
429Daily rate limit exceeded. Resets midnight UTC.
200 + isError: trueTool-level error (e.g. ticker not found, tier required). Check the content[0].text field.

Full tier comparison — 10 free tools vs 20 Pro tools — is on the home page.