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 90 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.)

  • 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 5 most recent trade signals for this symbol in the last 90 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.2/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/closed-world safety, and the description adds genuinely new behavior: all data is pre-computed with no AI calls on request (latency and cost implication), Pro-tier gating, sync semantics between the news signal_score and get_signals, and the null/omission rules for headline, near_term, longer_term and forensic_scores. These are real operational disclosures beyond the structured fields, though they are buried in dense return-value prose rather than surfaced up front.

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?

The purpose line is correctly front-loaded and the Returns section is bulleted, but the block runs roughly 450 words for a one-parameter tool, with nested parentheticals about score naming and field provenance that read as schema commentary. Since an output schema already exists, much of the Returns enumeration is redundant and dilutes the operative content.

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

Completeness4/5

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

Given a single-symbol read tool with an output schema, the definition covers everything an agent needs: scope, tier gating, pre-computation, null-handling, and the multi-symbol alternative path. It slightly overshoots by re-documenting return fields the output schema already exposes, so it is complete but not efficiently so.

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 only one parameter and schema description coverage is 100%, so the schema already tells the agent everything about `symbol`. The description adds only a light scoping note ('for one symbol'), never stating single-symbol-only behavior in isolation (i.e. no batch or comma-separated input). Baseline 3 is appropriate.

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 sentence names a specific verb+resource (a composite research bundle for a single stock) and enumerates the five data blocks it returns. It then explicitly names the four sibling tools it consolidates (get_stock, get_stock_news, get_insider_activity, get_signals) 'for one symbol', which makes it distinguishable from every sibling at a glance.

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?

Usage is pinned down as 'one call replaces these 4 calls for one symbol', which scopes it to single-symbol aggregation versus the granular tools, and 'Pro tier only' plus 'not financial advice' set invocation prerequisites. An agent knows both the selecting condition and the access constraint without inference.

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