Skip to main content
Glama

Stocklake — AI Stock Intelligence

Get Stock Research

get_stock_research
Read-onlyIdempotent

Full AI research bundle for a stock in one call - fundamentals, AI-generated summary, recent AI-classified news, insider/institutional signal, and recent trade signal history. 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, ai_score (0-100)/ai_score_band (Weak/Moderate/Strong/ Very Strong - the AI research composite, same scale and bands as signal_score but a separate 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/ai_score.

  • news: last 3 high-relevance articles (title, published_at, ai_sentiment, ai_summary, signal_score [0-100]/signal_score_band - this symbol's current news-sourced signal score if one exists in the last 30 days [same number as the signals list below and get_signals()/get_stock_news(), kept in sync as it's re-scored], else a per-article magnitude computed from that article's own classification. One name, no separate "news_score" field. The 3 are distinct events: an article carries collapsed_count when several articles about the same event were merged into it.)

  • filings[]: the latest SEC 8-K filings of the last 30 days, up to 3 (date, title, headline, summary, sentiment, items, sec_url). Empty when none in the window; get_stock_filings has the full list.

  • earnings: {next, last_reported}. next = the coming report date (estimated_date says whether the date can still move) with the consensus; last_reported = the newest reported quarter in the last 100 days with revenue, EPS and, where available, the beat or miss (eps_surprise). null when neither is known.

  • analyst_change: how consensus moved over the last 30 days - rating and mean target at the start and end, rating_score_change, direction (upgrading / downgrading / steady), target_change_pct, analyst_count_change. null with fewer than two analyst snapshots in the window; get_analyst_trend has the daily series.

  • sentiment: signal, signal_score (0-100)/signal_score_band - one name, no separate "insider_score" field, same as the news block above - insider_trend (buying/selling/neutral, or null with no transactions in the window), institutional_pct

  • signals[]: up to the 3 most recent trade signals for this symbol in the last 30 days (direction, rationale, signal_score [0-100], signal_score_band [human-readable label - "Weak"/"Moderate"/"Strong"/"Very Strong" - or null alongside a null signal_score], source, expires, flagged_at). Empty if nothing in that window. Signals stay listed for the full window even after they expire.

  • forensic_scores: {altman_z, piotroski_f, beneish_m, computed_at} - three classic forensic-accounting formulas (Z-Score bankruptcy risk / F-Score fundamental quality / M-Score earnings-manipulation risk), computed from stocks.financials (GH #107). Omitted entirely if this symbol has no forensic_scores doc yet - not every symbol qualifies (financial-sector companies mostly return null on all three by construction, see the field's own note text). A withheld individual score always surfaces as {"score": null, "note": ""} - never a bare 0, never silently dropped from its own sub-block. Same shape get_stock()/get_stocks() already return.

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

Input Schema

NameRequiredDescriptionDefault
symbolYesStock ticker symbol to fetch the full AI research bundle for.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / symbol / description
      Added value: +"Stock ticker symbol to fetch the full AI research bundle for."
  2. Added

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only/idempotent/closed-world, and the description goes well beyond them: data is pre-computed with no AI call on request, results are windowed to 30/100 days, expired signals remain listed, and a stale-schema fallback is spelled out (headline/near_term/longer_term are null on older summaries — fall back to verdict/ai_score). It also discloses null/empty semantics per block and the 'never a bare 0, never silently dropped' contract for withheld forensic scores.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and sibling routing are correctly front-loaded in the opening sentences, and the sub-block breakdown is scannable. However, the bulk of the description re-enumerates return fields (price, rsi, pe_forward, direction, rationale, expires…) that the output schema already defines, making it far longer than an agent needs for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex — nine heterogeneous sub-blocks with windowing, nullability, and sync relationships — and the description covers every one of them, including the non-obvious cross-references (the news block's signal_score is the same number as the signals list and get_signals/get_stock_news). Nothing needed to call or interpret it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single required parameter at 100% schema coverage, so the schema already carries the documentation burden. The description adds only the loose framing 'for one symbol' and the implication that the symbol scopes every returned block; it adds no syntax, format, or validation detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first clause gives a specific verb+resource+scope: a full pre-computed AI research bundle for one stock symbol, in one call. It further distinguishes itself from siblings by naming exactly which four calls it consolidates (get_stock, get_stock_news, get_insider_activity, get_signals). An agent can place this tool in the catalog without reading any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit routing is stated: it replaces four named sibling calls for a single symbol, and it points to get_stock_filings and get_analyst_trend for the exhaustive versions of two sub-blocks. It also states a hard eligibility constraint (Pro tier only) that governs whether the agent should call it at all.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources