# Stocklake — AI Stock Intelligence (remote · api.stocklake.dev)

AI stock intelligence: prices, fundamentals, technicals, news, macro regime, and sector signals.

- Trust score: 69/100 (medium)
- Change this week: +10
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `api.stocklake.dev`: 69/100 (this document), [markdown](https://verifymcp.io/servers/dev-stocklake-stocklake/api.md), [page](https://verifymcp.io/servers/dev-stocklake-stocklake/api)

## Channel facts

- Endpoint: `https://api.stocklake.dev/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 54/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 4441 tokens (~261/item across 17 items; 17 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http dev-stocklake-stocklake https://api.stocklake.dev/mcp
```

### Codex

```toml
[mcp_servers.dev-stocklake-stocklake]
url = "https://api.stocklake.dev/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dev-stocklake-stocklake": {
      "type": "remote",
      "url": "https://api.stocklake.dev/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add dev-stocklake-stocklake --url https://api.stocklake.dev/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  dev-stocklake-stocklake:
    url: "https://api.stocklake.dev/mcp"
```

### Other

```json
{
  "mcpServers": {
    "dev-stocklake-stocklake": {
      "type": "http",
      "url": "https://api.stocklake.dev/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 69, 0)

- [security] Tool “get_stock” rewrote its description, which is the text the model reads
- [security] Tool “get_stock_research” rewrote its description, which is the text the model reads

### 2026-08-02 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 68, +6)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 62, +2)

- [security improvement] HSTS header: fail → pass

### 2026-07-28 (score 60, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 59, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 58)

First indexed and scored.

## MCP tools (17)

### `get_stock` (~705 tokens)

Get Stock

Price, fundamentals, technical indicators, and company profile for a stock.
Returns all data needed to understand a stock in a single call.

Key fields:
\- price, change_pct, prev_close, week52_high/low, volume, avg_volume
\- market_cap, enterprise_value, beta
\- pe_trailing, pe_forward, price_to_book, dividend_yield, dividend_rate
\- debt_to_equity, profit_margins, return_on_equity, free_cashflow
\- revenue_growth, earnings_growth, revenue_ttm, gross_profit_ttm
\- analyst_rating: "strong_buy"|"buy"|"hold"|"sell"|"strong_sell" (analyst consensus)
\- analyst_rating_score: 1.0–5.0 mean analyst recommendation (1=strong_buy, 5=strong_sell)
\- analyst_target: mean analyst price target
\- analyst_count: number of analyst opinions
\- indicators: raw RSI, MACD, Bollinger Bands, SMA20/SMA200, EMA20/EMA200, ATR (ma_50 and ma_200 are top-level fields, not inside indicators)
\- description: company business description
\- website, employees, officers (top 5: name, title, total_pay)
\- updated_at: last data sync timestamp
Available to all tiers (raw indicator numbers, no interpretation).

Pro tier adds four interpreted blocks computed from the same indicators, no extra AI cost:
\- rating: {score 0-10, direction BULLISH/NEUTRAL/BEARISH, signals per-indicator breakdown}
  — composite technical score
\- signals: flat labeled signals (rsi/macd/bollinger/sma200/sma50/williams_r/ultimate_osc/
  vix_fix/williams_ad/td_sequential/elliott_wave, each with a value + plain-English label)
  — same indicators as 'indicators', pre-interpreted for programmatic use without parsing raw numbers
\- stance_signals: unified list of per-source directional calls (technical rating, AI summary
  near_term/longer_term, insider/institutional sentiment, analyst consensus, active discovery
  signals) — each entry {stance BULLISH/BEARISH/NEUTRAL, conviction 0-10, horizon
  INTRADAY/SWING/POSITION/LONG_TERM, edge_quality PROVEN/OBSERVATION/UNKNOWN (per-source
  signal_backtest track record), source, raw_label, as_of}. Same c…

Input parameters:

- `symbol` (string, required)

### `get_stock_news` (~185 tokens)

Get Stock News

AI-analysed news for a stock, newest first.
Only returns articles processed by our AI pipeline (sentiment, flag score, summary).
\- days: look-back window in days (default 30, max 30)
\- limit: max articles returned (default 10, max 10)
\- status: "ok" = articles returned | "empty" = no news in window
\- Per article: title, published_at, ai_sentiment, ai_flag_score (0-10),
  ai_summary (full text), ai_confidence (0-10)
Free tier: returns 1 article (with AI sentiment + flag score). Pro tier: up to 50 articles, 90-day window.
For informational purposes only. Not financial advice.

Input parameters:

- `days` (integer)
- `limit` (integer)
- `symbol` (string, required)

### `get_stock_history` (~80 tokens)

Get Stock Price History

Daily OHLCV price history for a stock.
\- days: number of trading days to return (default 90, max 365)
\- Returns: { symbol, days, count, history[] }
\- Per bar: date, open, high, low, close, volume

Input parameters:

- `days` (integer)
- `symbol` (string, required)

### `get_earnings_calendar` (~129 tokens)

Get Earnings Calendar

Upcoming earnings dates for stocks in the Stocklake universe.
\- days: look-ahead window in days (default 7, max 30)
\- Returns: { window_days, from_date, to_date, count, results[] }
\- Each result: symbol, name, sector, market_cap, price, rsi,
  earnings_date (ISO UTC), is_estimate, eps_trailing, eps_forward
\- Sorted by earnings_date ascending.
\- Dates sourced from market data — treat is_estimate=true dates as approximate.
Available to all tiers.

Input parameters:

- `days` (integer)

### `get_market_assessment` (~378 tokens)

Get Market Assessment

Combined AI market assessment: macro regime + market outlook in a single call.
Produced every ~4 hours by the market intelligence pipeline.

Two distinct perspectives returned together:
\- REGIME (RISK_OFF/CAUTIOUS/NEUTRAL/AGGRESSIVE): answers "how much equity risk to take"
  → use for position sizing and asset allocation decisions
\- OUTLOOK (BULLISH/NEUTRAL/BEARISH): answers "which direction and sectors to trade"
  → use for sector preference and directional bias

Both share the same pipeline run so they are always in sync.

\- history_count: include last N prior assessments for each (0-3, default 0)
\- regime_*: risk posture fields — regime, regime_bias, regime_confidence, regime_rationale,
  key_risks, watch_for, vix_at_assessment, regime_updated_at
\- indicators.macro_data: FRED macro data (yield curve, Fed funds, cpi_index, unemployment, M2)
\- indicators.volatility_term_structure: VIX spot/3M/6M term structure + contango signal
\- indicators.market_sentiment: CNN Fear & Greed value and label
\- market_context: price/RSI/SMA200/perf snapshot of SPY/QQQ/IWM/TLT/GLD/VIX/TNX + sectors
  NOTE: point-in-time snapshot recorded when AI ran — not live prices (use get_market_pulse for live)
\- outlook_*: directional fields — outlook, outlook_conviction, equity_view,
  preferred_sectors, avoided_sectors, catalyst, outlook_key_risk, outlook_rationale, outlook_updated_at

Pro tier only — AI pipeline cost attached.
For informational purposes only. Not financial advice.

Input parameters:

- `history_count` (integer)

### `get_sector_intelligence` (~245 tokens)

Get Sector Intelligence

AI-assessed sector intelligence: signal, cycle stage, rotation signal,
drivers, alerts, and computed statistics per sector (RSI distribution, breadth,
performance 1W/1M, top/bottom movers, historical percentiles).
Pass a sector name for a single sector, or omit the parameter (or pass None)
to get the latest assessment for all 11 sectors — the all-sectors call doubles as
the rotation view: use sort_by_strength to rank LEADING-first for finding leading
vs lagging sectors, and history_count for prior signal states per sector.

\- sort_by_strength: sort all-sectors output LEADING→LAGGING instead of alphabetical
  (all-sectors call only; ignored when a single sector is requested)
\- history_count: include last N prior signal states per sector, 0-3 (default 0;
  all-sectors call only)

Refreshed every ~4 hours by the market intelligence pipeline.
Available to pro tier only (AI pipeline costs).
For informational purposes only. Not financial advice.

Input parameters:

- `history_count` (integer)
- `sector`
- `sort_by_strength` (boolean)

### `get_insider_activity` (~99 tokens)

Get Insider Activity

Get AI-synthesized insider + institutional activity for a stock.
Returns combined signal (BULLISH/BEARISH/NEUTRAL etc.), flag_score (8+=notable),
confidence, per-source breakdown, and a human-readable summary.
Data covers insider transactions (SEC Form 4) and institutional holdings.
Pro tier only — AI pipeline cost attached.
For informational purposes only. Not financial advice.

Input parameters:

- `symbol` (string, required)

### `get_stocks` (~64 tokens)

Get Multiple Stocks

Batch stock data for up to 50 symbols in a single call.
Returns a dict keyed by symbol. Missing symbols are omitted from the result.
Each symbol in the batch counts as one call toward the daily limit.
Available to all tiers.

Input parameters:

- `symbols` (array, required)

### `get_market_pulse` (~168 tokens)

Get Market Pulse

Live market health snapshot in a single call.
Aggregates key market indicators without requiring multiple tool calls.
No AI cost — reads live data directly from the market data feed.

Returns:
\- vix: VIX level and change_pct (from live stocks data)
\- fear_greed: value (0-100) and label (e.g. "neutral", "greed", "fear")
\- breadth: market-wide RSI distribution — oversold_pct, overbought_pct, neutral_pct, universe_size
\- indices: SPY, QQQ, IWM prices + RSI + 1-week performance
\- bonds: TLT (long-duration bonds), GLD (gold)
\- updated_at: when the breadth/fear_greed snapshot was last recorded
Available to all tiers.

### `get_signals` (~274 tokens)

Get Signals

AI-screened stock signals actively flagged by the Stocklake pipeline.
These are stocks the pipeline's AI agents have identified as worth attention —
sourced from news analysis, sector screening, and sentiment signals.

Parameters:
\- direction: "LONG" | "SHORT" | "BOTH" (default: all)
\- min_conviction: minimum conviction score 0-10 (default 7)
\- min_flag_score: minimum flag score 0-10 (default 8; 9+ = high conviction)
\- source: filter by signal source — "news" | "screener" | "sentiment" | "social" (default: all)
\- limit: max results to return (default 25, max 50)

Returns:
\- count: number of signals returned
\- signals[]: each with symbol, direction, conviction (0-10), confidence (0-10),
             flag_score (0-10), source, rationale, expires
\- Note: signals expire daily — active signals represent the pipeline's current view.

Pro tier only — AI pipeline cost attached.
For informational purposes only. Not financial advice.

Input parameters:

- `direction`
- `limit` (integer)
- `min_conviction` (integer)
- `min_flag_score` (integer)
- `source`

### `get_watchlist` (~121 tokens)

Get Watchlist

The caller's Stocklake watchlist (starred symbols from the web dashboard),
enriched with live price, technicals, and AI verdict.

Returns:
\- count: number of symbols on the watchlist
\- items[]: each with symbol, name, sector, price, change_pct, rsi, atr_pct,
           ai_verdict, ai_flag_score, added_at, price_at_add
\- empty items[] if nothing is starred yet — star symbols at stocklake.dev/dashboard

Pro tier only.
For informational purposes only. Not financial advice.

### `get_news_feed` (~252 tokens)

Get Market News Feed

Top AI-flagged news across all tracked stocks — the market-wide news briefing.
Unlike get_stock_news (per-symbol), this scans the entire universe and returns
the most notable articles ranked by AI flag score, newest first within each score tier.

Use this for:
\- Morning briefing: "what happened in the market this week?"
\- Catalyst scanning: "what news is driving moves right now?"
\- Event monitoring: "which stocks have high-impact news today?"

\- min_flag_score: minimum AI flag score (default 8, min 5, max 10)
  8 = notable · 9 = high-impact · 10 = exceptional
\- days: look-back window in days (default 3, max 10)
\- limit: max articles returned (default 10, max 25)
\- Per article: symbol, title, published_at, ai_sentiment, ai_flag_score (0-10),
  ai_summary (full text), ai_confidence (0-10)

Pro tier only — AI pipeline cost attached.
For informational purposes only. Not financial advice.

Input parameters:

- `days` (integer)
- `limit` (integer)
- `min_flag_score` (integer)

### `get_screener` (~654 tokens)

Screen Stocks

Filter and rank stocks from the Stocklake universe — fundamentals, technicals, and AI signals in one tool.

Parameters:
\- sector: e.g. "Technology", "Healthcare", "Financial Services"
\- country: e.g. "United States", "Germany"
\- min_rsi / max_rsi: exact RSI bounds (e.g. max_rsi=30 = oversold, min_rsi=70 = overbought)
\- sma_trend: "above_200" (price above 200-day MA) | "below_200"
\- macd_signal: "bullish" (MACD line above signal) | "bearish"
\- min_perf_1d / max_perf_1d: 1-day performance % (e.g. min_perf_1d=2.0 = up 2%+ today)
\- min_volume: minimum daily volume (e.g. 1000000)
\- min_market_cap_b / max_market_cap_b: market cap in billions
\- max_pe_forward: maximum forward P/E (e.g. 20 = value screen)
\- analyst_rating: "strong_buy" | "buy" | "hold" | "sell" | "strong_sell"
\- min_flag_score: minimum AI flag score 0-10 (pro tier only — silently ignored for free)
\- preset: "oversold" | "overbought" | "momentum" | "high_conviction" (pro only)
  oversold = RSI≤35 + above SMA200 · overbought = RSI≥65
  momentum = RSI 50-70, above SMA200, up 0.5%+ today · high_conviction = flag_score≥7
\- sort_by: "market_cap" | "rsi" | "perf_1d" | "volume" | "analyst_rating" | "rating" | "flag_score" (pro)
\- sort_dir: "asc" | "desc" (default "desc")
\- limit: 1–50 (default 20)

Returns: { count, preset, filters, results[] } — each result includes symbol, name, sector,
industry, country, price, change_pct, volume, market_cap, pe_forward, rsi, macd_signal,
sma200_trend, analyst_rating, rating (0-10 composite score).
Pro tier: adds flag_score + ai_verdict to every result row, enables min_flag_score
filter and high_conviction preset. All other filters available to all tiers.

Input parameters:

- `analyst_rating`
- `country`
- `limit` (integer)
- `macd_signal`
- `max_market_cap_b`
- `max_pe_forward`
- `max_perf_1d`
- `max_rsi`
- `min_flag_score`
- `min_market_cap_b`
- `min_perf_1d`
- `min_rsi`
- `min_volume`
- `preset`
- `sector`
- `sma_trend`
- `sort_by` (string)
- `sort_dir` (string)

### `get_market_movers` (~170 tokens)

Get Market Movers

Top market movers from the Stocklake universe — gainers, losers, most active.

\- category: "gainers" | "losers" | "most_active" | "all" (default "all" = all 3 categories)
\- limit: results per category (default 10, max 20)
\- min_market_cap_b: filter to stocks above this market cap in billions (e.g. 1.0 = $1B+)

Returns per stock: symbol, name, sector, price, change_pct, volume, rsi, market_cap, atr_pct
(atr_pct omitted when the underlying volatility reading is missing or corrupted)
Available to all tiers.

Input parameters:

- `category` (string)
- `limit` (integer)
- `min_market_cap_b`

### `get_indicator_history` (~355 tokens)

Get Indicator History

Historical daily indicator snapshots for a stock — ideal for charting and trend detection.
Returns up to `days` days of data (max 730, default 90) from the stock_indicator_snapshots
collection which is populated daily by the indicator pipeline.

Each snapshot row contains:
\- recorded_at: ISO date string
\- price: closing price at snapshot time
\- rsi: RSI(14) value (0-100)
\- macd_histogram: MACD histogram value (positive = bullish momentum)
\- bb_pct: Bollinger Band % position (0 = at lower, 100 = at upper band)
\- sma20 / sma200: 20-day and 200-day simple moving averages
\- williams_r: Williams %R (0 to -100; >-20 overbought, <-80 oversold)
\- ultimate_osc: Ultimate Oscillator (0-100; >70 overbought, <30 oversold)
\- vix_fix_value: Williams VIX Fix synthetic fear gauge (higher = more fear)
\- williams_ad_trend: Accumulation/Distribution trend (rising/falling/flat)
\- td_signal: DeMark TD Sequential signal (BUY_SETUP/SELL_SETUP/BUY_COUNTDOWN/SELL_COUNTDOWN/null)
\- td_phase: DeMark phase (setup_active/setup_complete/countdown_active/countdown_done/null)
\- analyst_rating: analyst consensus (buy/outperform/hold/underperform/sell or null)
\- analyst_target: mean analyst price target or null

Returns {} if fewer than 3 snapshots found.
Pro tier only.
For informational purposes only. Not financial advice.

Input parameters:

- `days` (integer)
- `symbol` (string, required)

### `get_stock_research` (~323 tokens)

Get Stock Research

Full AI research bundle for a stock in one call — fundamentals, AI-generated
summary, recent AI-classified news, insider/institutional signal, and active
trade signal. Replaces 4 separate calls: get_stock + get_stock_news +
get_insider_activity + get_signals (for one symbol).

Returns:
\- stock: price, name, sector, rsi, pe_forward, market_cap, 52-week range, analyst data
\- ai_summary: verdict, confidence, flag_score, full summary, key_points, risks,
  price_at_generation, generated_at, headline (one-sentence plain-language take), near_term
  (stance/confidence over <4 weeks — technicals/momentum-weighted), longer_term
  (stance/confidence over a multi-month horizon — fundamentals/analyst/institutional-flow-weighted).
  headline/near_term/longer_term are null on summaries generated before this schema shipped —
  until that symbol's next regeneration, fall back to verdict/confidence.
\- news: last 3 high-relevance articles (title, published_at, ai_sentiment, ai_flag_score, ai_summary)
\- sentiment: signal, confidence, insider_trend (buying/selling/neutral), institutional_pct
\- signal: active trade signal for this symbol, if any (direction, conviction, rationale)

All data is pre-computed by the Stocklake AI pipeline — no live AI calls on request.
Pro tier only. For informational purposes only. Not financial advice.

Input parameters:

- `symbol` (string, required)

### `get_earnings_intelligence` (~239 tokens)

Get Earnings Intelligence

Upcoming earnings with AI context — flag scores, verdicts, and risk factors per stock.
Combines the earnings calendar with AI pipeline data to surface which upcoming
earnings events are worth monitoring.

Parameters:
\- days_ahead: look-ahead window in days (default 14, max 30)
\- sector: filter to one sector (e.g. "Technology")
\- min_flag_score: only return stocks with AI flag score >= this value (optional)

Returns per stock (sorted by earnings_date ascending):
\- earnings_date: ISO UTC timestamp · is_estimate: whether date is estimated
\- symbol, name, sector, price, rsi, market_cap
\- eps_trailing, eps_forward (earnings expectations context)
\- ai_verdict, ai_flag_score, ai_confidence (nightly AI pipeline)
\- ai_risks: top 2 AI-identified risk factors
\- analyst_rating, analyst_target

Pro tier only — AI pipeline cost attached.
For informational purposes only. Not financial advice.

Input parameters:

- `days_ahead` (integer)
- `min_flag_score`
- `sector`

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/dev-stocklake-stocklake/api#diagnostics

## Score history

- 2026-08-03: 69
- 2026-08-02: 69
- 2026-08-01: 68
- 2026-07-31: 68
- 2026-07-30: 62
- 2026-07-29: 62
- 2026-07-28: 60
- 2026-07-27: 59
- 2026-07-26: 58

## Links

- Remote endpoint: https://api.stocklake.dev/mcp
- Changelog RSS feed: https://verifymcp.io/servers/dev-stocklake-stocklake/api/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/dev-stocklake-stocklake/api/changelog.json
- HTML version of this page: https://verifymcp.io/servers/dev-stocklake-stocklake/api
