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 — stock_ai_summary.py's own composite, same scale/band convention as signal_score but a distinct field/pipeline), 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 LIVE 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.)

  • 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. Recency-gated, not gated on whether Stocklake's own trading engine still holds the signal live — a signal it dropped or let expire is still a real, useful fact about what the pipeline found, so it stays in this list rather than disappearing the moment our own paper trader moves on.

  • 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 live AI calls on request. Pro tier only. For informational purposes only. Not financial advice.

Input Schema

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

Output Schema

TableJSON 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.4/5.0
Behavior5/5

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

Annotations already mark the tool as read-only and idempotent, but the description adds substantial behavioral detail beyond annotations: data is pre-computed with no live AI calls, null and fallback behavior is documented, signals are recency-gated rather than live-position-gated, and specific field semantics are clarified. No contradictions with annotations exist.

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

Conciseness4/5

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

The description is long but well-structured with a front-loaded summary and clearly delineated return blocks. Most sentences carry meaningful caveats or semantics that would otherwise be missing, though some asides could be tightened without losing value.

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?

For a complex bundle tool with one parameter and an existing output schema, the description is exceptionally complete: it explains return-field semantics, null behavior, score conventions, recency gating, legacy data fallbacks, and access restrictions. An agent has all the context needed to invoke it correctly and interpret its results.

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?

The schema already fully documents the only parameter, symbol, at 100% coverage. The description refers to fetching for 'a stock' and 'one symbol' but does not add new parameter-level meaning beyond the schema baseline.

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 description immediately identifies the tool as a comprehensive one-call research bundle for a stock, with a clear verb ('get') and resource ('full AI research bundle'). It explicitly names the four sibling tools it replaces, making differentiation trivial.

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

Usage Guidelines4/5

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

The description states this tool replaces get_stock, get_stock_news, get_insider_activity, and get_signals for one symbol, so an agent knows when to prefer it over these alternatives. It does not explicitly state exclusions like 'use the individual tools if you only need one data type,' but the context is clear enough.

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