Stocklake — Stock Data & Market Intelligence MCP Server
Stock prices, technicals (RSI/MACD/Bollinger), AI sentiment, insider activity, earnings, sector intelligence, and market outlook for 1000+ stocks.
Documentation
Getting Started
- Overview
- Get your key
- Tiers & limits
- What can I ask?
Clients
- Tell your agent
- Claude
- Python (fastmcp)
- curl / raw HTTP
Reference
- OAuth 2.1
- Errors
- Tiers (home page)
- Tool reference →
- Changelog →
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 20 tools →
Tiers & limits
| Tier | Requests / day | Tools | Key expiry |
|---|---|---|---|
| guest (no key) | 25 | All 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) | — |
| free | 200 | Same 10 non-AI tools, stable account key | 30d |
| pro | 5,000 | All 20 tools incl. AI (news, AI summaries, symbol context, news feed, discovery ideas, sentiment, market assessment, sector intelligence, sector rotation, earnings intelligence) | None |
Exceeding the daily request limit returns HTTP 429. Limits reset at midnight UTC.
Every authenticated response includes these headers:
| Header | Description |
|---|---|
| X-RateLimit-Limit | Your daily request cap |
| X-RateLimit-Remaining | Requests remaining today |
| X-RateLimit-Reset | Unix timestamp when the counter resets (midnight UTC) |
| X-Key-Expires-At | ISO 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:
- "What's the current price, RSI, and analyst rating for AAPL?"
- "Show me oversold tech stocks with market cap over $10B"
- "What's the market sentiment right now? VIX and fear/greed index?"
- "What earnings are coming up this week?"
- "Summarise the latest news for NVDA with AI analysis" — Pro
- "Which sectors are leading the market right now?" — Pro
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, search_stocks, get_market_movers, get_earnings_calendar, 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.
- Go to claude.ai → Settings → Integrations → add MCP server.
- Enter URL: https://api.stocklake.dev/mcp
- Complete the sign-in — tools are available immediately.
Claude Desktop
Requires a free or pro key. Add to claude_desktop_config.json → mcpServers, 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 sessioncurl -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 toolcurl -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
| Endpoint | Purpose |
|---|---|
| GET /oauth/authorize | Authorization endpoint — shows consent screen (redirects to login if no session) |
| POST /oauth/token | Token endpoint — exchange code for access + refresh tokens (authorization_code and refresh_token grants) |
| POST /oauth/register | Dynamic Client Registration (RFC 7591) — register a new OAuth client |
| POST /oauth/revoke | Revoke 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 status | Meaning |
|---|---|
| 401 | Missing or invalid Authorization: Bearer token |
| 429 | Daily rate limit exceeded. Resets midnight UTC. |
| 200 + isError: true | Tool-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.