StockLens

AI Integrations

Access StockLens intelligence from the ChatGPT Plugin, the Claude Connector, or any MCP-compatible client. Protected tools sign in with OAuth.

Where StockLens runs

One protocol, the assistants you already use

StockLens exposes the same typed MCP tools to every compatible client, whether you connect through the ChatGPT Plugin, the Claude Connector, or your own MCP client.

ChatGPT Plugin

Ask StockLens for scores, analysis and screens inside ChatGPT.

View StockLens in the ChatGPT plugin directory

Claude Connector

Add StockLens to claude.ai and use the same tools in the conversation.

View StockLens in Claude's connector directory

Also use it as a direct MCP server

Point any MCP-compatible client at the StockLens server. Point it at https://mcp.stocklens.com/mcp, published in the Official MCP Registry as com.stocklens/stocklens.

Capability mirror

The tools your agent actually calls

The complete StockLens MCP surface has two public tools and seven OAuth-protected tools.

ping
Auth: none

Verify that the StockLens MCP connection is healthy without reading account or market data.

Outputstatus: ok, text: pong

get_market_summary
Auth: none

Retrieve the latest nightly analysis summary for a scored company: the score and rating, the domain breakdown, the drivers that shaped the reading, and the date it was computed. It needs no account; What StockLens scores states which companies it answers for, with and without one.

Inputs
tickerstring (e.g. AAPL, MSFT, TSLA)
exchange?string (e.g. NASDAQ, TSX, LSE). See full list below. Auto-resolved via autocomplete if omitted.
Outputstatus; when scored: composite_score, rating (nullable), domain_scores[], key_drivers[], lens, domain_coverage, analysis_date, freshness, config_context. Any other status is an answer carrying message and next_step

initiate_analysis
Auth: OAuth

Kick 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.

Inputs
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")
Outputanalysis_id, status, estimated_seconds, depth, credit_type, new_run_started, reused_existing
CreditsLENS_AILENS_AI_PLUS

fetch_analysis_result
Auth: OAuth

Check an analysis by id. Each call returns the current state and does not wait: progress while it runs, then the saved report as soon as it exists. The written summaries can arrive after the saved report, and the result says whether they are still being written, are ready, or could not be completed.

Inputs
analysis_idstring (id returned by initiate_analysis)
Outputstatus, progress_pct, retry_after_seconds -- or the saved report: result (symbol, display_composite_score, display_rating, evidence, domains, key_drivers, lens, domain_coverage), base_digest, report_url, narrative (status, revision) and message; synthesis_report, key_strengths, key_challenges and each domain's analysis are included once narrative.status is ready

get_portfolio_insights
Auth: OAuth

Read one of the authenticated user's StockLens portfolios, the default one unless a portfolio is named: every company in it, each marked holding or watching with its score and rating word, and the portfolio's average and rating word, its change over 7 and 30 nights, its largest sector share and its biggest movers over 7 nights. The whole portfolio is returned, up to the plan's capacity -- the read is not capped below what the plan lets the user follow.

Inputs
portfolio_id?string (from the portfolios list)
portfolio_name?string (exact name, case does not matter)
Outputstatus (ok, empty or portfolio_not_found), portfolio_id, portfolio_name, is_default, portfolio_count, portfolios[] (when there is more than one), caption, trust[], company_count, average_composite_score, rating, window_change (1w, 1m), concentration, top_movers[], companies[], tier_limited, as_of

add_to_watchlist
Auth: OAuth

Add one supported company to one of the authenticated user's StockLens portfolios, the default one unless a portfolio is named; the result names the portfolio that received it. Following only, one ticker per call: it records no ownership, writes no holding quantity or transaction, and places no trade. Free plans follow 10 stocks across Watchlist and Holdings; Pro and Max plans are unlimited. At the Free capacity nothing is added and the result states the limit.

Inputs
tickerstring (e.g. AAPL) -- one ticker, not a list
exchange?string (e.g. NASDAQ, TSX, LSE). See full list below. Auto-resolved via autocomplete if omitted.
portfolio_id?string (from the portfolios list)
portfolio_name?string (exact name, case does not matter)
Outputstatus (added, already_in_portfolio, over_capacity, ambiguous, not_found or portfolio_not_found), message, ticker, exchange, company_name, portfolio_id, portfolio_name, is_default, portfolio_count, company_count, plan_limit (absent when the plan is unlimited), scope: user_watchlist_update

remove_from_watchlist
Auth: OAuth

Remove one company from one of the authenticated user's StockLens portfolios, the default one unless a portfolio is named; the result names the portfolio. It removes that entry and nothing else; an entry that already carries transactions is refused rather than deleted, so transaction history is never discarded by an agent.

Inputs
tickerstring (e.g. AAPL) -- one ticker, not a list
exchange?string (e.g. NASDAQ, TSX, LSE). See full list below. Auto-resolved via autocomplete if omitted.
portfolio_id?string (from the portfolios list)
portfolio_name?string (exact name, case does not matter)
Outputstatus (removed, not_in_portfolio, has_transactions, ambiguous_listing or portfolio_not_found), message, ticker, exchange, portfolio_id, portfolio_name, is_default, portfolio_count, company_count, scope: user_watchlist_update

add_to_watchlist_batch
Auth: OAuth

Add a list of companies the user gives, up to 100, to one of the authenticated user's StockLens portfolios, the default one unless a portfolio is named, in two calls: a preview that adds nothing and states every row's outcome, then a commit of only the rows the user approves, bound to that preview. Following only: it records no ownership, writes no holding quantity or transaction, and places no trade. Each row is held to the same portfolio capacity as add_to_watchlist.

Inputs
rowsarray of 1 to 100 { query, exchange } -- one company per row, a ticker or a name
confirmfalse previews and adds nothing | true adds the approved rows
preview_id?string (from the preview; needed when confirm is true)
confirmed_indexes?array of the row indexes the user approved (needed when confirm is true)
portfolio_id?string (from the portfolios list)
portfolio_name?string (exact name, case does not matter)
Outputstatus (previewed, committed, portfolio_not_found or preview_mismatch), preview_id, portfolio_id, portfolio_name, is_default, portfolio_count, company_count, summary, summary_line, capacity, message, rows[] (index, input, outcome, label, listing, candidates, message), scope: user_watchlist_batch

discover_stocks
Auth: OAuth

Screen the nightly-analyzed universe by macro region, exchange, sector, industry, market-cap band, and volume, then sort by 6 StockLens scores, market cap, volume or ticker. Popularity ordering is unavailable; retired sorts return VALIDATION_ERROR before a screen or quota use. FREE: browse the nightly-analyzed universe by market cap, volume or ticker with StockLens scores hidden and reach capped at 100; a score-sorted request returns market-cap browsing with the substitution disclosed. PRO: unlock StockLens scores -- sort the universe by 6 factors, reach capped at 6,000. MAX: screen the entire universe, unlimited.

Inputs
sort_by?composite_score | fundamental_score | technical_score | risk_score | sentiment_score | macro_score | ticker | market_cap | volume (default composite_score)
direction?top | bottom (default top)
market_cap_band?MEGA | LARGE | MID | SMALL | MICRO
volume_floor?100K | 500K | 1M | 5M
macro_in / exchange_in / sector_in / industry_in?arrays restricting the screen to these regions, exchanges, sectors, or industries
limit?1-100 (default 10)
Outputstatus, rows[] (scores present only when unlocked), scores_locked, access_tier, message, sort_substituted, reach_capped_at, rows_returned, effective_sort, effective_direction, as_of_date, data_source: nightly_scores
Coverage

What StockLens scores

StockLens scores listings nightly on 23 exchanges in North America, Europe and Asia-Pacific; not every listed company is scored, and macro context is drawn from the United States, Canada, the eurozone, the United Kingdom, Switzerland and Japan. It does not score ETFs, funds, indices, options or currencies. Scores answer for the 600 largest companies by market value with no account and on Free, the 6,000 largest on Pro and the whole scored universe on Max, plus any company in your own portfolios, however deep it ranks. Every score carries the date it was computed.

Protocol transparency

What MCP standardizes, and what StockLens commits to

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.

Typed tool registration

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.

User-scoped auth

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, for the companies What StockLens scores names, until an account widens that reach.

Capability surface

Reads, one analysis trigger, and portfolio edits

Agents read pre-computed nightly scores, check analysis progress, and read any one of the authenticated user’s portfolios. Four tools change state: initiating an analysis may start private compute and consume a finite credit, two portfolio tools add or remove one company, and one adds a list the user approves after a preview. Nothing writes a holding quantity, a transaction or broker data, and no tool places a trade.

Safety boundaries

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.

Fair use

Per-tier daily quotas

MCP tool-call quotas are separate from your combined analysis credits and reset daily at 00:00 UTC.

Free

10 standard tool calls/day · No Plus Analysis · 20 Discover Stocks calls/day

Pro

50 standard + 25 Plus Analysis tool calls/day · 200 Discover Stocks calls/day

Max

Unlimited tool calls (subject to fair use)

Access pathways

How to point your AI at StockLens

Connect from the ChatGPT Plugin, the Claude Connector, or any MCP-compatible client. Two tools answer with no account at all, for the companies What StockLens scores names, so you can ask for a score before you connect anything. The other seven tools use OAuth 2.0 Authorization Code with PKCE.

Claude Connector

  1. Open Customize → Connectors in Claude, select Discover and search for StockLens. Team and Enterprise owners add it for the organization first

  2. Select Connect to Claude and sign in with your StockLens email via Google, Apple, or an emailed code

  3. Enable StockLens from the + menu in any chat

Any MCP client

  1. Point your MCP-compatible client at https://mcp.stocklens.com/mcp

  2. Ask for a score straight away on the companies What StockLens scores names. Two tools need no account

  3. Sign in with your StockLens email via Google, Apple, or an emailed code when you first use a portfolio or analysis tool

ChatGPT Plugin

  1. Install StockLens from the ChatGPT plugin directory

  2. Ask about the companies What StockLens scores names straight away. Those scores need no account

  3. Sign in with your StockLens email via Google, Apple, or an emailed code when you first use a portfolio or analysis tool

After you log in, Settings → AI Integrations has your endpoint and the exact setup steps for each client.