StockLens exposes the same typed MCP tools to every compatible client, whether you connect through the ChatGPT App, claude.ai, or your own MCP client.
Query StockLens analysis inside the StockLens ChatGPT App.
Use StockLens tools in Claude Code or claude.ai.
Point any MCP-compatible client at the StockLens server.
The complete StockLens MCP surface has two public tools and three OAuth-protected tools.
pingVerify that the StockLens MCP connection is healthy without reading account or market data.
get_market_summaryRetrieve the latest nightly composite analysis summary for a supported ticker -- score, rating, domain breakdown, strengths, and challenges.
tickerstring (e.g. AAPL, MSFT, TSLA)exchange?string (e.g. NASDAQ, TSX, LSE). See full list below. Auto-resolved via autocomplete if omitted.initiate_analysisKick off a full StockLens AI analysis for a supported ticker. A new run may asynchronously consume one LENS_AI or LENS_AI_PLUS combined analysis credit.
tickerstring (e.g. AAPL)exchange?string (e.g. NASDAQ, TSX, LSE). See full list below. Auto-resolved via autocomplete if omitted.time_range?short_2_wk | medium_1_mo | medium_2_mo | long_1_yr | long_2_yr (default medium_1_mo)risk_tolerance?low | medium | high (default medium)depth?standard | plus (default standard) (FREE tier cannot use depth="plus")LENS_AILENS_AI_PLUSfetch_analysis_resultPoll progress or retrieve a completed analysis by id. Returns status plus full scored result on completion.
analysis_idstring (id returned by initiate_analysis)get_portfolio_insightsRetrieve composite scores for every stock in the authenticated user's watchlist. FREE tier capped at 3 holdings.
The Model Context Protocol is an open contract between an AI client and a tool server. StockLens implements it so any MCP-aware assistant -- ChatGPT, Claude, or a custom client -- can discover, call, and verify our analysis tools without bespoke glue code.
Together, these commitments define what each tool exposes, how calls are authorized, and which actions can change account state.
Tools declare their schema
Each StockLens tool publishes its name, input parameters, and output shape through MCP discovery. Clients see structured capabilities, not free-form prompts.
OAuth for account-scoped tools
Protected tools negotiate OAuth 2.0 Authorization Code with PKCE and run as the resolved StockLens user. Connectivity and the latest nightly market summary remain public.
Read-only, except for analysis initiation
Agents read pre-computed nightly scores, initiate credit-gated analyses, poll progress, and retrieve the authenticated user’s watchlist summaries. Analysis initiation is the only state-changing tool and may start private compute and consume a finite credit -- no portfolio mutation, no trade execution.
No PII, no cross-user access
Tool calls never carry personal identity -- handlers operate on your account and subscription tier alone, never your email or profile. Requests for analyses you cannot access return a generic not-found response, so the system never reveals another user’s activity.
MCP tool-call quotas are separate from your combined analysis credits and reset daily at 00:00 UTC.
10 standard tool calls/day · No plus-depth
50 standard + 25 plus-depth tool calls/day
Unlimited tool calls (subject to fair use)
A scripted AAPL transcript showing how an agent requests the latest nightly summary, then starts a separate full analysis.
What does the latest nightly AAPL summary show? Give me the composite and the domain breakdown.
get_market_summary({ ticker: "AAPL" }) -> composite_score: 78, rating: "Solid", domain_scores: [{ domain: "FUNDAMENTAL", display_name: "Fundamental Analysis", score: 82, grade: "B+" }, { domain: "TECHNICAL", display_name: "Technical Analysis", score: 74, grade: "B" }]In this illustrative transcript, the latest nightly AAPL summary is 78 (Solid). The displayed fundamental score leads the technical score. Want me to start a separate full analysis with a long horizon?
Yes -- long horizon, medium risk, standard depth.
initiate_analysis({ ticker: "AAPL", time_range: "long_1_yr", risk_tolerance: "medium", depth: "standard" }) -> analysis_id: "a_01HXYZ", status: "pending", credit_type: "LENS_AI", new_run_started: true, reused_existing: falseA new Analysis run started. Credit processing happens asynchronously, so this receipt does not claim that a charge has completed. I can check its status with fetch_analysis_result.
Connect from the ChatGPT App, claude.ai, or any MCP-compatible client. Protected tools use OAuth 2.0 Authorization Code with PKCE.
claude.ai
Open Settings → Connectors → Add custom connector in claude.ai
Point it at https://mcp.stocklens.com/mcp and sign in with OAuth (Pro, Max, Team, or Enterprise)
Enable StockLens from the + menu in any chat
Any MCP client
Point your MCP-compatible client at https://mcp.stocklens.com/mcp
Complete the secure OAuth sign-in when prompted
StockLens tools appear in your client
ChatGPT App
Install StockLens from the ChatGPT plugin directory
Sign in with secure OAuth on first use
Call StockLens tools from any ChatGPT conversation
After you sign in, Settings → AI Integrations has your endpoint and the exact setup steps for each client.